How We Built a Profitable Photobooth System That Earned Hundreds of Millions of Rupiah
photobooth
fraud-prevention
kiosk-software
payment-systems

How We Built a Profitable Photobooth System That Earned Hundreds of Millions of Rupiah by Solving Payment Fraud (Part 1)
Stopping Fraud in a Manual Photobooth Setup
Before we built the payment app, we ran everything manually and it cost us.
At early events, Our photobooth relied on human operators and basic verification. Customers would make payments via cashier, then simply show a receipt to the booth staff and here’s where the problem started:
One successful payment could be reused 10 times
Many people abused this method because they believed they could retake photos endlessly until satisfied, for a business this was a disaster.
Each duplicate meant lost revenue, awkward confrontations, and long lines as staff check the session.
We needed a fix and fast.
From Manual to digital
The transition was to eliminate the human verification process entirely, by using this approaches:
- Integrate with third-party payment solution, we use Tripay
- Automatically generate a secure QR Code for limited time
- Build a payment app for photobooth to scan and verify the QR Code
- Integrate a payment app to DSLRBooth
Now each QR Code is tied to a signed, one time-use token, validated against a secret. That means:
- No duplicates
- No tampering
- No manually verification
High Level Architecture
To understand how we transitioned from a manual process to a secured automated one, here’s a simplified view of the system:

QR In, Photo Out
We have two different sides for running this business
A. Business User
From this perspective we will only do a simple tasks for booting up the machine (As of 2025, we run three booths concurrently using this setup)
- Turning on the computer
- Start the payment app (do a setting if necessary)
B. Customer
- 📲 QR In
The experience starts when a customer scans a QR Code displayed by the payment app, this QR is not just a random code. It’s secure, one-time-use token generated after a successful transaction request through Tripay. Each token signed and time-limited, ensuring every session is uniquely tied to a valid payment. This step removes the manual verification and eliminates abused reusing proof of payment. - ✅ Payment Confimation
Once the customer completes payment via Tripay Gateway, the confirmation is sent back to the local computer through a webhook tunnel powered by ngrok. The payment app listens for status update and immediately marks the session as paid. This step making fraud nearly impossible. - 📸 Photo Out
After the payment is confirmed, the payment app signals DSLRBooth to begin the photo session via REST to the start session, this also trigger the Server-Sent Events (SSE) or fallback webhooks. Ensuring the reliable system with limited connectivity. The process is seamless, fast, and fully automated. There’s no need for staff to step in the customer scans, pays, and gets their photo taken without delay.
Scan, pay, snap. done.
Final Thoughts: Talking is easy. We’ve had this running live for three years, battle-tested since 2022
This first step eliminating fraud in a manual photobooth workflow, was the foundation of everything that followed. What started as a patch to stop repeated photo sessions without payment became a complete, secure, and scalable on KIOSK system.

In the next part, I’ll walk you through the engineering behind the scenes:
- Handled Async Communication with Server Sent Events (SSE).
- Designed State-Machines to manage app flow reliably.
- W32 gave us an edge, a native DLL that quietly enforced protection from user tampering.
- Internet down? No worries — just switch to offline mode.
