Blog · Terbit · Diperbarui

Menerima pembayaran usaha photobox dan photobooth: QR per sesi di layar booth, sesi yang baru dimulai setelah webhook masuk, dan DP sewa photobooth acara lewat Virtual Account

Photobox swalayan dan photobooth sewaan terlihat seperti usaha yang sama, tetapi menagihnya berbeda sama sekali. Photobox di mal atau kafe menjual sesi Rp 25.000 sampai Rp 100.000 tanpa kasir, jadi layar booth menampilkan satu QRIS dinamis per sesi dengan nominal terkunci, dan sesi baru dimulai saat catatan Kasera Pay berkata succeeded, bukan saat pembeli menunjukkan layar ponselnya. Photobooth sewaan untuk pernikahan atau acara kantor menagih jutaan rupiah dalam dua kali bayar, DP dan pelunasan, dan untuk nominal sebesar itu, sejak 26 Oktober 2026, QRIS dan Virtual Account sama-sama kena 1% dari seluruh nominal.

Dua usaha, dua cara menagih

Photobox swalayanPhotobooth sewaan acara
Nominal (ilustrasi)Rp 25.000 sampai Rp 100.000 per sesiRp 2.000.000 sampai Rp 8.000.000 per acara
Kapan dibayarSebelum sesi, di depan layarDP saat booking, pelunasan sebelum hari acara
Metode yang paling hematQRIS, 0,7% + Rp 250Sama di kedua metode, 1% dari seluruh nominal di atas Rp 1.000.000; Virtual Account untuk klien yang membayar dari rekening
Yang menekan tombolSoftware booth lewat API, atau penjagaPemilik usaha dari dashboard

Biaya per sesi: satu tagihan, termasuk cetak tambahan

QRIS kena 0,7% + Rp 250 per pembayaran berhasil sampai Rp 1.000.000, dan setiap sesi photobox jauh di bawah batas itu. Bagian 0,7% dibulatkan ke atas ke rupiah berikutnya. Hitungan dengan harga paket yang umum:

Sesi (ilustrasi)Biaya QRISPorsi dari harga
Rp 25.000, satu stripRp 175 + Rp 250 = Rp 4251,7%
Rp 35.000, dua stripRp 245 + Rp 250 = Rp 4951,4%
Rp 50.000, plus file digitalRp 350 + Rp 250 = Rp 6001,2%
Rp 100.000, paket grupRp 700 + Rp 250 = Rp 9501%
Rp 120.000, paket grup plus bingkaiRp 840 + Rp 250 = Rp 1.0900,9%

Akibat praktisnya: cetak tambahan dipilih di layar sebelum QR dibuat, lalu masuk ke tagihan yang sama. Tambahan Rp 10.000 yang ditagih terpisah setelah sesi kena Rp 70 ditambah Rp 250, jadi Rp 320, atau 3,2% dari nilainya. Di tagihan yang sama, tambahan itu hanya menambah Rp 70. Rinciannya ada di halaman biaya.

Alur di booth yang tidak punya kasir

  1. Pembeli memilih paket dan cetak tambahan di layar sentuh. Software booth meminta server usaha membuat tagihan ke POST /v1/transactions dengan amount total, payment_methods: ["qris"], description berisi nomor booth dan paket, dan nomor sesi sebagai external_id. Kirim nomor sesi yang sama sebagai header Idempotency-Key: kalau Wi-Fi mal putus di tengah permintaan dan booth mengulanginya, yang kembali adalah tagihan yang sama, bukan QR kedua.
  2. Pendekkan masa berlakunya dengan expires_in_minutes. Default-nya 60 menit, terlalu panjang untuk orang yang berdiri di depan layar. Lima menit cukup untuk membuka aplikasi dan membayar, dan layar bisa menampilkan hitung mundur ke expires_at.
  3. Ubah payment.qr_string menjadi gambar QR di layar booth, seperti dijelaskan di dokumentasi QRIS Direct API.
  4. Mulai sesi hanya setelah server menerima event payment.paid yang tanda tangannya valid, atau setelah statusnya terbaca succeeded. Tanda berhasil di ponsel pembeli bukan bukti.

Webhook diterima server, bukan booth

Webhook dikirim ke alamat HTTPS publik. Booth yang tersambung ke Wi-Fi mal atau kafe berada di balik jaringan orang lain dan tidak punya alamat seperti itu, jadi yang menerima webhook adalah server kecil milik usaha: VPS murah atau layanan serverless sudah cukup. Booth lalu bertanya ke server itu setiap satu atau dua detik selama QR tampil.

Jangan biarkan setiap booth bertanya langsung ke Kasera Pay. Batasnya 300 request per menit per API key, dan lima booth yang masing-masing menanyakan status setiap detik sudah menghabiskan 300 request per menit sebelum satu tagihan pun dibuat. Server yang menerima webhook menjawab booth dari catatannya sendiri, dan hanya menanyakan ke Kasera Pay kalau webhook yang ditunggu belum datang. Pertimbangan keduanya dibahas di perbandingan webhook dan menanyakan status berkala.

QR yang kedaluwarsa atau dibatalkan, lalu tetap dibayar

Kasus ini pasti terjadi di booth yang ramai. Pembeli memindai QR di detik terakhir, atau menekan Batal di layar setelah aplikasinya sudah memproses pembayaran. Tagihan yang sudah expired atau dibatalkan masih bisa menjadi succeeded kalau uangnya masuk, dan event payment.paid tetap dikirim. Booth yang sudah kembali ke layar awal harus menangani ini, bukan mengabaikannya.

Cara paling sederhana: saat server menerima payment.paid untuk sesi yang sudah ditutup, booth menampilkan kode sesi di layar dan penjaga atau pembeli bisa memulainya dari menu “Sudah bayar”. Kalau pembeli sudah pergi, kodenya tercatat di server, dan uangnya dikembalikan dengan transfer dari rekening sendiri kalau pembeli menghubungi.

Booth berpenjaga tanpa software

Photobooth di acara hampir selalu dijaga orang, dan untuk itu integrasi tidak wajib. Buat halaman pembayaran di dashboard dengan sampai delapan pilihan nominal, satu per paket, lalu cetak display A5-nya untuk meja di samping booth. Penjaga melihat pembayaran masuk di dashboard, mencocokkan nominalnya, dan memulai sesi. Penjaga yang diundang sebagai Staf bisa membuat dan melihat permintaan pembayaran serta mengunduh CSV, tetapi tidak bisa mengubah rekening pencairan atau mencairkan saldo, seperti dirinci di dokumentasi tim.

Banyak booth, satu akun

Tulis nomor booth dan lokasinya di setiap tagihan, misalnya “Booth 2, mal lantai 3, dua strip”. Di akhir bulan, kolom deskripsi di CSV transaksi menunjukkan booth mana yang menghasilkan dan mana yang sebaiknya dipindah. Software booth yang memakai API cukup mengisi description dan external_id secara otomatis.

Sewa photobooth untuk acara: DP dan pelunasan

Paket sewa Rp 3.500.000 dengan DP 30% berarti dua tagihan: Rp 1.050.000 saat booking dan Rp 2.450.000 sebelum hari acara. Keduanya di atas Rp 1.000.000, jadi sejak 26 Oktober 2026 masing-masing kena 1% lewat Virtual Account maupun QRIS: DP Rp 10.500 dan pelunasan Rp 24.500, total Rp 35.000. Virtual Account membutuhkan nama pelanggan, tersedia untuk tujuh bank (BRI, BNI, Mandiri, Permata, CIMB Niaga, Danamon, dan Maybank), dengan nominal maksimum Rp 10.000.000 per pembayaran secara default. Maksimum Virtual Account bisa dinaikkan per akun lewat [email protected].

Tagihan dari dashboard berlaku 60 menit, jadi kirim tautannya saat klien sudah siap membayar, bukan malam sebelumnya. Tagihan yang dibuat lewat API bisa diberi masa berlaku lebih panjang.

Satu hal yang perlu ditanyakan dulu: kebijakan penggunaan Kasera Pay meminta persetujuan tertulis untuk “hal lain yang dibayar jauh sebelum diserahkan”. Pernikahan sering dipesan berbulan-bulan sebelumnya. Sebelum DP pertama untuk acara yang masih jauh, email [email protected] dengan bentuk paketnya, besar DP, dan rentang waktu antara booking dan acara, lalu tunggu jawabannya.

Ringkasnya

Biaya dipotong dari pembayaran yang berhasil, tanpa biaya bulanan, dan pencairan ke rekening kena Rp 3.000 per pencairan, bukan per sesi.

Pertanyaan yang sering muncul

Pembeli menunjukkan layar m-banking berisi tanda berhasil, tetapi booth belum mulai. Apa yang dilakukan penjaga?

Jangan memulai sesi dari layar pembeli. Buka transaksi itu di dashboard atau minta server booth menanyakan statusnya lewat GET /v1/transactions/:id. Kalau statusnya succeeded, mulai sesinya dari menu operator. Kalau masih pending, tunggu sebentar: konfirmasi QRIS biasanya masuk beberapa detik setelah di-scan, dan tampilan aplikasi pembeli bukan bukti bahwa uangnya diterima.

Apakah photobox yang belum punya software bisa langsung menerima QRIS?

Bisa, dengan penjaga. Buat halaman pembayaran di dashboard dengan pilihan nominal sesuai paket, cetak display A5-nya, dan letakkan di samping booth. Pembeli memilih paket dan membayar, penjaga melihat pembayarannya masuk di dashboard, lalu memulai sesi. Tanpa penjaga, booth membutuhkan integrasi API agar sesi dimulai otomatis.

Klien membatalkan sewa photobooth setelah membayar DP. Bisakah DP dikembalikan lewat Kasera Pay?

Tidak lewat Kasera Pay. Pembayaran QRIS dan Virtual Account dikembalikan dengan transfer dari rekening penjual sendiri, sebesar yang disepakati. Karena itu aturan pembatalan, misalnya DP hangus kalau batal kurang dari 14 hari sebelum acara, sebaiknya tertulis di penawaran sebelum DP ditagih.

Panduan per jenis usaha

Mulai sekarang

Terima pembayaran pertama minggu ini.

Daftar gratis, buat payment link atau pakai API, dan lihat statusnya berubah otomatis. Tanpa biaya bulanan, biaya transaksi hanya untuk pembayaran yang berhasil.

Dapatkan di Google PlayDownload di App Store