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

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:

  1. Integrate with third-party payment solution, we use Tripay
  2. Automatically generate a secure QR Code for limited time
  3. Build a payment app for photobooth to scan and verify the QR Code
  4. 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:

  1. No duplicates
  2. No tampering
  3. 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:

Figure 1: High-level component interaction between customer, kiosk system, and payment service.

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)

  1. Turning on the computer
  2. Start the payment app (do a setting if necessary)

B. Customer

  1. 📲 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.
  2. ✅ 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.
  3. 📸 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.

Figure 2: Sales Branch Yearly After Migrate to Photobooth Payment App

In the next part, I’ll walk you through the engineering behind the scenes:

  1. Handled Async Communication with Server Sent Events (SSE).
  2. Designed State-Machines to manage app flow reliably.
  3. W32 gave us an edge, a native DLL that quietly enforced protection from user tampering.
  4. Internet down? No worries — just switch to offline mode.
← Back to all postsRead on Medium →
Background Three

Something sparked in your mind?

My inbox is always open. Whether you have an interesting projects, a question or just want to say hi, I will try my best to get back to you! So send me a message or email me at [email protected]

Reach me through other network

Thanks for visiting and have a nice day!

Original made by Muhammad Wildan Aldiansyah