Panduan · 31 Agustus 2026
Jual tiket acara dengan QRIS: panduan panitia dari kuota sampai hari-H
Menjual tiket acara berbeda dari menjual barang, dan bedanya ada pada dua hal yang keduanya terjadi sebelum hari-H: uangnya diterima jauh sebelum apa pun diserahkan, dan jumlah yang bisa dijual dibatasi oleh kapasitas ruangan. Sistem pembayaran menyelesaikan penerimaan uangnya. Dua hal itu tidak diselesaikan olehnya, dan panduan ini menyusun apa yang harus disiapkan panitia untuk menutup keduanya.
Ringkasnya: urus persetujuan tertulis lebih dulu karena tiket termasuk kategori yang butuh izin, pilih satu dari tiga bentuk penjualan sesuai jumlah jenis tiket, jaga kuota kursi di luar sistem pembayaran karena tidak ada penahan kursi, dan siapkan daftar peserta untuk pintu masuk sejak awal karena tidak ada tiket yang diterbitkan dan tidak ada pemeriksaan di gerbang.
Satu izin yang harus diurus sebelum tautan pertama disebar
Ini bagian yang paling sering dilewatkan panitia, dan melewatkannya berisiko menghentikan penjualan di tengah jalan. Penjualan tiket masuk daftar kegiatan yang hanya diizinkan dengan persetujuan tertulis lebih dulu, bersama perjalanan dan hal lain yang dibayar jauh sebelum diserahkan. Alasannya lugas: uang yang sudah masuk adalah janji yang belum ditunaikan, dan kalau acaranya batal, kerugiannya menimpa para pembeli. Panitia yang memegang dana vendor juga masuk daftar yang sama, jadi acara yang menampung pembayaran untuk pihak ketiga perlu dikabarkan dengan jelas. Daftar lengkapnya ada di kebijakan penggunaan terlarang.
Urutan yang benar karena itu adalah mendaftar, menyelesaikan verifikasi identitas dan rekening pencairan, mengabarkan rencana acara beserta tanggal pelaksanaan dan perkiraan jumlah tiket, lalu menunggu jawaban. Mengabarkan sejak awal juga menyelesaikan urusan batas harian yang dibahas di bawah dalam satu percakapan yang sama.
Tiga bentuk penjualan, dan cara memilihnya
Pemilihannya ditentukan oleh satu pertanyaan: berapa banyak jenis tiket yang dijual, dan apakah harganya tetap.
| Bentuk | Cocok ketika | Kerja panitia |
|---|---|---|
| Halaman pembayaran permanen | Satu atau beberapa harga tiket yang tetap | Sebar satu alamat yang sama ke semua kanal promosi |
| Tautan pembayaran per pembeli | Harga dihitung per pesanan, rombongan, atau ada potongan | Buat satu tautan untuk tiap pembeli |
| Integrasi API pada formulir pendaftaran | Ada formulir pendaftaran sendiri dan kuota harus akurat | Sekali tulis, lalu berjalan sendiri |
Untuk acara komunitas, seminar, dan pentas sekolah, bentuk pertama hampir selalu jawabannya. Halaman pembayaran dinyalakan sekali dari dashboard dan menghasilkan satu alamat tetap berbentuk pay.kasera.id/pp/nama-acara yang bisa dipasang di poster, bio Instagram, dan pesan grup sekaligus. Nominalnya bisa dikunci pada satu angka, atau disediakan sebagai beberapa pilihan tetap untuk presale, reguler, dan pelajar. Halaman itu juga menyediakan QR siap cetak, yang berguna untuk penjualan di lokasi pada hari-H. Perbandingan ketiga jalur menerima pembayaran tanpa website ada di panduan menerima pembayaran QRIS tanpa website.
Metode yang bisa dipakai pembeli mengikuti apa yang aktif di akun: QRIS, Virtual Account dari delapan bank, dan kartu Visa, Mastercard, JCB, serta Amex. Daftar yang berlaku hari ini ada di dokumentasi metode pembayaran. Untuk penjualan tiket, bentuk tarifnya yang menentukan pilihan, bukan sekadar besarnya: QRIS ditagih sebagai persentase ditambah komponen tetap yang kecil, sementara Virtual Account ditagih sebagai nominal tetap per transaksi tanpa komponen persen. Ada titik nominal ketika Virtual Account menjadi lebih murah, tetapi titik itu jauh di atas harga tiket pada umumnya, sehingga QRIS praktis selalu jalur termurah untuk tiket. Tarif yang benar-benar berlaku untuk sebuah akun dikembalikan oleh GET /v1/payment_methods dalam bentuk percent_bps dan flat.
Kuota kursi tidak dijaga oleh sistem pembayaran
Ini kesalahpahaman yang paling mahal. Sebuah permintaan pembayaran berstatus pending hanya berarti tagihan sudah dibuat dan belum dibayar. Statusnya bukan reservasi, dan tidak ada kursi yang tertahan karenanya. Kuota kursi hidup di tempat lain, yaitu di spreadsheet panitia atau di sistem pendaftaran sendiri, dan menjaganya adalah pekerjaan yang harus dirancang.
Ada dua akibat praktisnya. Pertama, hitungan kursi terjual hanya boleh memakai status succeeded, bukan jumlah tautan yang sudah dibuat. Kedua, kalau kursi memang ditahan saat tagihan dibuat, pelepasannya harus dijadwalkan sendiri dari expires_at, karena kedaluwarsa tidak pernah dikirim sebagai webhook. Satu tagihan yang tidak dibayar dan tidak pernah dilepas berarti satu kursi yang hilang dari penjualan tanpa ada yang datang menempatinya.
Karena itu masa berlaku tautan untuk acara berkuota sebaiknya pendek. Default-nya 60 menit, dan untuk acara yang tiketnya diperebutkan, angka yang lebih pendek justru menaikkan jumlah tiket terjual: kursi yang tertahan cepat kembali ke pasar. Untuk acara yang tiketnya longgar, tautan berumur panjang lebih ramah bagi pembeli yang perlu menunggu gajian. Pertimbangan lengkapnya ada di tulisan tentang masa berlaku tagihan.
Batas harian yang menentukan kecepatan penjualan
Penjualan tiket adalah pola lalu lintas yang paling ekstrem di antara semua pemakaian: hampir seluruh transaksi menumpuk pada jam pembukaan penjualan, bukan tersebar sepanjang bulan. Batas default berlaku per hari dalam zona waktu Asia/Jakarta, dan yang paling sering lebih dulu tercapai adalah jumlah permintaan, bukan nominalnya.
| Batas | Default | Artinya bagi panitia |
|---|---|---|
| Jumlah permintaan per hari | 100 | Acara di atas 100 tiket tidak bisa dibuka dalam satu hari |
| Total nominal per hari | Rp 50.000.000 | Tiket Rp 500.000 sudah menyentuhnya pada tiket ke-100 |
| Nominal maksimum per pembayaran | Rp 10.000.000 | Pemesanan meja atau rombongan besar perlu dipecah |
| Nominal minimum per pembayaran | Rp 10.000 | Tiket di bawah Rp 10.000 tidak bisa dijual lewat sini |
Nilainya dapat berbeda per akun dan bisa dinaikkan, dan daftar resminya ada di dokumentasi batas. Yang ikut dihitung, kapan hitungannya kembali nol, dan angka apa saja yang membuat permintaan kenaikan mudah dijawab ada di penjelasan batas harian dan cara menaikkannya. Yang penting adalah waktunya: permintaan kenaikan batas diajukan bersamaan dengan permohonan persetujuan acara, jauh sebelum tanggal pembukaan penjualan. Menemukan batas pada menit kelima penjualan berarti kehilangan momentum yang tidak bisa diulang, karena penonton yang gagal membayar jarang kembali besok.
Mendata peserta: satu kolom yang menentukan
Halaman pembayaran menanyakan dua hal kepada pembayar di luar nominal, yaitu kolom Nama dan kolom Catatan, dan keduanya tidak diperlakukan sama. Nama tampil pada detail transaksi. Catatan menjadi keterangan transaksi, dan keterangan itulah yang ikut terbawa ke berkas ekspor CSV serta yang dicari oleh kotak pencarian di daftar transaksi. Untuk penjualan tiket, konsekuensinya satu kalimat: identitas peserta harus masuk ke kolom Catatan.
Formatnya ditetapkan sekali, dibuat sesingkat mungkin, dan dicontohkan pada setiap unggahan promosi, misalnya Budi 0812xxxx Presale atau Sari 2 tiket Reguler. Nomor telepon jauh lebih berguna daripada nama panjang, karena nama peserta sering kembar sementara nomor tidak, dan nomor itulah yang dipakai menghubungi peserta kalau acaranya berubah. Pola pengisian yang sama dibahas lebih dalam pada panduan iuran komunitas.
Untuk penjualan lewat integrasi sendiri, urusan ini selesai dengan cara lain: nomor pendaftaran dikirim sebagai external_id saat membuat tagihan, dan data peserta tetap tinggal di basis data panitia.
Hari-H: tidak ada tiket yang diterbitkan, dan tidak ada check-in
Kasera Pay adalah alat pembayaran, bukan platform tiket. Tidak ada tiket ber-QR yang diterbitkan ke pembeli, tidak ada pemindaian di pintu masuk, dan tidak ada penandaan hadir. Menyembunyikan hal ini tidak ada gunanya, karena akan ketahuan tepat pada saat paling sibuk. Dua cara menutupnya, keduanya sudah dipakai panitia:
- Daftar hadir dari ekspor CSV. Sehari sebelum acara, setel filter rentang tanggal dan status Dibayar, unduh ekspor CSV, lalu buka di ponsel atau laptop meja registrasi. Kolom keterangan berisi nama dan nomor peserta, sehingga pemeriksaan di pintu masuk cukup mencari nama pada berkas itu. Cara ini memadai sampai kira-kira dua ratus peserta.
- Kode masuk yang dikirim sendiri. Untuk acara yang lebih besar atau berbayar mahal, panitia menerbitkan kodenya sendiri setelah menerima webhook
payment.paid, lalu mengirimnya lewat surel atau pesan. Pemeriksaan di pintu masuk memakai kode itu, bukan bukti pembayaran, sehingga satu tangkapan layar yang diteruskan ke banyak orang tidak menghasilkan banyak tiket.
Biaya per tiket, dan siapa yang menanggungnya
Tidak ada biaya pendaftaran dan tidak ada biaya bulanan. Yang dikenakan adalah biaya per pembayaran berhasil: MDR QRIS 0,7 persen yang diteruskan apa adanya dari jaringan pembayaran tanpa markup, ditambah biaya Kasera Rp 250 per transaksi. Angka yang berlaku hari ini selalu tercantum di halaman harga. Ilustrasi pada tarif tersebut:
- Tiket Rp 50.000: Rp 350 ditambah Rp 250, jadi Rp 600 per tiket.
- Tiket Rp 150.000: Rp 1.050 ditambah Rp 250, jadi Rp 1.300 per tiket.
- Tiket Rp 350.000: Rp 2.450 ditambah Rp 250, jadi Rp 2.700 per tiket.
Dua keputusan mengikuti dari tiga baris itu. Pertama, biaya bisa ditanggung panitia atau ditambahkan ke nominal yang dilihat pembeli, dan pilihan itu lebih baik diputuskan sebelum harga tiket diumumkan daripada sesudahnya, karena menaikkan harga di tengah penjualan merusak kepercayaan. Kedua, harga tiket sebaiknya dibulatkan setelah biaya diperhitungkan, bukan sebelumnya, supaya penerimaan bersih per tiket menjadi angka yang rapi untuk laporan panitia. Pencairan saldo ke rekening bank dikenakan biaya Rp 3.000 per pencairan, sehingga mencairkan sekali setelah penjualan ditutup lebih hemat daripada mencairkan setiap hari.
Kalau acara batal atau diundur
Kebijakan pembatalan lebih murah kalau ditulis sebelum tiket pertama terjual, dan dicantumkan pada halaman pembayaran serta poster. Yang perlu diketahui saat menyusunnya: kartu adalah satu-satunya metode yang bisa direfund lewat API, sebagian maupun seluruhnya, sementara pengembalian dana untuk pembayaran QRIS dan Virtual Account dilakukan manual dengan transfer dari sisi panitia. Biaya per transaksi yang sudah terpakai tidak ikut kembali, jadi pengembalian penuh berarti panitia menanggung selisihnya. Menawarkan penjadwalan ulang sebagai pilihan pertama, dengan pengembalian dana sebagai pilihan kedua, adalah cara yang lazim untuk menekan selisih itu tanpa mengorbankan pembeli.
Pertanyaan yang sering muncul
Apakah panitia bisa langsung berjualan tiket setelah akun disetujui?
Belum tentu. Persetujuan akun dan persetujuan kegiatan adalah dua hal berbeda. Penjualan tiket termasuk kategori yang dibayar jauh sebelum diserahkan, dan kategori itu membutuhkan persetujuan tertulis lebih dulu menurut kebijakan penggunaan terlarang. Jadi urutannya adalah mendaftar, menyelesaikan verifikasi, mengabarkan rencana acara beserta tanggalnya, lalu menunggu jawaban sebelum tautan disebar.
Apakah kursi otomatis tertahan saat pembeli membuka tautan pembayaran?
Tidak. Permintaan pembayaran berstatus pending hanya berarti tagihan sudah dibuat dan belum dibayar, bukan bahwa satu kursi sudah dipesan. Penahanan kursi adalah pekerjaan panitia, entah di spreadsheet atau di sistem pendaftaran sendiri, dan pelepasannya dihitung dari waktu kedaluwarsa tagihan karena kedaluwarsa tidak dikirim lewat webhook.
Berapa banyak tiket yang bisa terjual dalam satu hari?
Pada batas default, seratus permintaan pembayaran per hari dengan total nominal maksimum Rp 50.000.000, dihitung dalam zona waktu Asia/Jakarta. Untuk acara yang menjual lebih dari seratus tiket pada satu tanggal pembukaan, batas itu perlu dinaikkan lebih dulu, bukan ditemukan saat penjualan sudah dibuka.
Kalau acara batal, apakah dana bisa dikembalikan lewat sistem?
Hanya untuk pembayaran kartu. Kartu adalah satu-satunya metode yang bisa direfund lewat API, sebagian maupun seluruhnya. Pengembalian dana untuk pembayaran QRIS dan Virtual Account dilakukan manual dengan transfer dari sisi panitia, dan biaya per transaksi yang sudah terpakai tidak ikut kembali. Karena itu pembatalan lebih murah ditangani sebagai kebijakan yang ditulis sejak awal daripada sebagai kejutan.