Blog · Terbit · Diperbarui
Menerima pembayaran toko top up game dan voucher: ID pemain yang dicek sebelum ditagih, top up yang dikirim setelah Dibayar, dan pengiriman otomatis yang tidak mengisi dua kali
Toko top up game menjual barang yang tidak bisa ditarik kembali. Diamond yang sudah masuk ke akun pemain tidak bisa dibatalkan, dan saldo di pemasok sudah terpakai saat itu juga. Karena itu urutannya tidak boleh terbalik: ID dan server pemain dicocokkan lebih dulu, tagihan dibuat dengan nominal final, top up baru dikirim setelah status Dibayar, dan setiap pembayaran hanya boleh memicu satu pengiriman. Biaya QRIS-nya 0,7% + Rp 250 per pembayaran, jadi paket Rp 50.000 kena Rp 350 ditambah Rp 250, yaitu Rp 600.
ID pemain dicek sebelum tagihan dibuat, bukan sesudahnya
Kesalahan yang paling mahal di toko top up bukan pembayaran palsu, tetapi ID yang salah ketik. Pembayaran QRIS dan Virtual Account yang sudah berhasil tidak bisa di-refund lewat Kasera Pay. Kalau penjual memutuskan mengganti, uangnya ditransfer dari rekening sendiri, biaya transaksinya tidak kembali, dan saldo pemasok yang terlanjur terpakai juga hilang. Satu salah ketik pada paket Rp 50.000 bisa menghapus untung dari puluhan pesanan.
Yang bisa dilakukan sebelum tagihan dibuat:
- Minta ID dan server (atau zona) dalam satu pesan teks, bukan tangkapan layar yang harus diketik ulang.
- Kalau pemasok menyediakan pengecekan nama akun, jalankan dan kirim nama yang muncul ke pembeli untuk dikonfirmasi. Di toko web, tampilkan nama itu sebelum tombol bayar.
- Tulis aturannya di pesan sebelum tautan dikirim: top up dikirim ke ID yang sudah dikonfirmasi, dan ID yang salah tidak diganti.
Jualan lewat WhatsApp: satu tagihan per pesanan
Penjual tanpa website membuat permintaan pembayaran dari dashboard atau aplikasi Kasera Pay di Android atau iPhone untuk setiap pesanan: isi Nominal, pilih QRIS di Metode, dan isi Keterangan dengan paket dan ID pemain, misalnya 86 diamond, ID 12345678 (2011). Tautannya dikirim ke pembeli, dan tagihan dari dashboard berlaku 60 menit. Langkahnya dirinci di panduan menerima pembayaran tanpa coding.
Keterangan itulah yang membuat pekerjaan berikutnya mekanis. Saat status berubah menjadi Dibayar, penjual membaca ID dari tagihan itu sendiri, bukan dari riwayat chat yang sudah bergulir puluhan pesan, lalu mengirim top up dari aplikasi pemasok. Satu pembeli yang memesan tiga kali untuk tiga akun mendapat tiga tagihan, bukan satu tagihan gabungan, sehingga setiap pembayaran menunjuk tepat satu ID.
Kalau biaya ingin ditanggung pembeli, centang Terima utuh di formulir. Nominal yang diketik menjadi yang diterima penjual, dan pembeli melihat total yang lebih besar sebelum membayar: tagihan Terima utuh Rp 10.000 menjadi Rp 10.323 bagi pembeli. Bukti yang dipegang tetap status di dashboard; pola pemalsuan bukti yang biasa dipakai dibahas di tulisan tentang bukti transfer palsu.
Toko web otomatis: tiga penjaga agar top up tidak terkirim dua kali
Toko yang mengirim top up otomatis membuat transaksi lewat API saat pembeli menekan bayar, menunggu webhook payment.paid, lalu memanggil API pemasok. Setiap langkah itu bisa terulang: pembeli menekan tombol dua kali, koneksi putus lalu dicoba lagi, dan webhook dikirim at-least-once sehingga event yang sama bisa tiba lebih dari sekali. Pengulangan di dua langkah pertama hanya mengganggu. Pengulangan di langkah ketiga menghabiskan saldo pemasok.
- Satu Idempotency-Key per pesanan. Key dibuat sekali saat pesanan dibuat, disimpan di baris pesanan, dan dikirim ulang di setiap percobaan create. Nomor pesanan di
external_idtidak mencegah duplikat; hanya header itu yang mencegahnya. Alasannya dibahas di tulisan tentang idempotency untuk pembayaran. - Dedupe id event sebelum pemasok dipanggil. Simpan
idevent dengan primary key di transaksi database yang sama dengan perubahan status pesanan, dan panggil pemasok hanya kalau barisnya baru. Cocokkan jugaamountdi event dengan total pesanan. Bentuk kodenya ada di panduan integrasi Express. - Nomor pesanan sebagai referensi di pemasok. Kalau API pemasok menerima referensi unik per transaksi, kirim nomor pesanan yang sama. Pemanggilan ulang setelah timeout lalu ditolak pemasok sebagai duplikat, bukan diproses sebagai pesanan kedua.
Untuk paket kecil, kirim payment_methods: ["qris"] saat create agar pembeli langsung diarahkan ke QR. Status pesanan di toko berpindah ke lunas hanya dari webhook yang tanda tangannya sah, atau dari pembacaan status transaksi di server, tidak pernah dari halaman kembali setelah membayar.
Pembayaran yang masuk setelah tagihan kedaluwarsa
Tagihan yang kedaluwarsa masih bisa dibayar kalau QR-nya sudah terlanjur dipindai. Pembayaran seperti itu tetap dihitung, statusnya berubah menjadi berhasil, dan webhook payment.paid tetap dikirim. Toko yang membatalkan pesanan saat menerima payment.expired harus bisa menghidupkannya kembali: kirim top up-nya, atau kalau harga di pemasok sudah berubah dan paketnya tidak tersedia, hubungi pembeli dan kembalikan uangnya dengan transfer. Masa berlaku tagihan API bisa dipendekkan lewat expires_in_minutes, tetapi pembayaran yang terlambat tetap mungkin.
Kalau pemasok gagal setelah pembeli membayar
Pembeli sudah membayar, lalu pemasok menjawab gangguan atau saldo deposit tidak cukup. Pembayarannya sudah tercatat berhasil di Kasera Pay, dan yang tertunda hanya pengirimannya. Antrekan pesanan itu sebagai “dibayar, belum terkirim”, coba lagi dengan referensi yang sama, dan beri tahu pembeli kalau pengirimannya lebih lama dari biasanya. Kalau paketnya benar-benar tidak bisa dikirim, uangnya dikembalikan dengan transfer dari rekening penjual, dan biaya transaksi yang sudah terpotong tidak kembali. Deposit di pemasok yang cukup untuk jam ramai, biasanya malam hari dan akhir pekan, mencegah sebagian besar kasus ini.
Biaya per nominal
Tarif default saat tulisan ini diperbarui: QRIS 0,7% (dibulatkan ke atas) + Rp 250 per pembayaran berhasil di nominal berapa pun, Virtual Account Rp 5.000 per pembayaran berhasil, pencairan ke rekening Rp 3.000 per pencairan, tanpa biaya bulanan. Contoh dengan biaya ditanggung penjual:
| Nominal | Biaya QRIS | Biaya Virtual Account |
|---|---|---|
| Rp 5.000 | Rp 35 + Rp 250 = Rp 285 (5,7%) | Di bawah minimum Rp 10.000 |
| Rp 20.000 | Rp 140 + Rp 250 = Rp 390 (2%) | Rp 5.000 |
| Rp 50.000 | Rp 350 + Rp 250 = Rp 600 (1,2%) | Rp 5.000 |
| Rp 100.000 | Rp 700 + Rp 250 = Rp 950 | Rp 5.000 |
| Rp 150.000 | Rp 1.050 + Rp 250 = Rp 1.300 | Rp 5.000 |
| Rp 500.000 | Rp 3.500 + Rp 250 = Rp 3.750 | Rp 5.000 |
Yang perlu dibaca dari tabel itu: di toko top up, Rp 250 tetap per pembayaran adalah bagian terbesar dari biaya paket kecil, jadi yang paling terasa adalah paket termurah. Sebagai ilustrasi, paket yang modalnya Rp 4.600 di pemasok dan dijual Rp 5.000 menyisakan Rp 400 sebelum biaya. Setelah biaya Rp 285, yang tersisa hanya Rp 115. Paket seperti itu dijual dengan Terima utuh, digabung menjadi paket yang lebih besar, atau harganya dinaikkan. Virtual Account baru lebih murah daripada QRIS antara sekitar Rp 678.600 dan Rp 1.000.000 per pembayaran, nominal yang jarang muncul di toko top up. Cara memasukkan biaya ke harga ada di tulisan tentang harga jual setelah biaya transaksi.
Sebelum pesanan pertama
Penjual perorangan bisa mendaftar tanpa badan usaha; verifikasi pemilik memakai KTP dan selfie. Sebelum verifikasi selesai, akun bisa membuat 10 permintaan pembayaran dengan total Rp 1.000.000. Toko top up melewati sepuluh pesanan dalam satu malam yang ramai, jadi selesaikan verifikasi sebelum promosi pertama. Batas nominal lainnya dirinci di dokumentasi batas transaksi, dan rate limit API untuk toko yang ramai saat event gim ada di dokumentasi rate limit. Kebijakan penggunaan Kasera Pay melarang judi, taruhan, dan undian dalam bentuk apa pun. Untuk produk yang ragu-ragu berada di sisi mana, misalnya chip gim bertema kasino, tanyakan ke [email protected] sebelum menjualnya.
Pertanyaan yang sering muncul
Pembeli salah menulis ID pemain dan diamond-nya masuk ke akun orang lain. Uangnya bisa dikembalikan lewat Kasera Pay?
Tidak. Pembayaran QRIS dan Virtual Account yang sudah berhasil tidak bisa di-refund lewat Kasera Pay, baik oleh penjual maupun oleh Kasera. Kalau penjual memutuskan mengganti, nominalnya ditransfer dari rekening sendiri, dan biaya transaksi yang sudah terpotong tidak kembali. Saldo pemasok yang terpakai juga tidak kembali. Karena itu ID dan server dibacakan ulang ke pembeli, atau nama akunnya dicek, sebelum tagihan dibuat.
Pembeli mengirim tangkapan layar bukti bayar sebelum status berubah. Top up boleh dikirim?
Tunggu status Dibayar di dashboard atau webhook payment.paid. Tangkapan layar bisa diedit atau diambil dari transaksi lain, dan top up yang sudah masuk ke akun gim tidak bisa ditarik kembali. Biasanya statusnya berubah dalam hitungan detik setelah pembayaran dikonfirmasi.
Bisakah pembeli membayar paket Rp 5.000 lewat Virtual Account?
Tidak. Nominal minimum Virtual Account Rp 10.000, dan biayanya Rp 5.000 tetap per pembayaran, jadi untuk paket kecil Virtual Account tidak masuk akal. QRIS menerima mulai Rp 1.000 dengan biaya 0,7% + Rp 250, jadi paket Rp 5.000 kena Rp 35 ditambah Rp 250, yaitu Rp 285. Batasi metode ke QRIS untuk paket kecil, lewat pilihan Metode di dashboard atau payment_methods di API.
Panduan per jenis usaha
- Jasa tukang kunci
- Jasa pertamanan dan perawatan taman
- Budidaya ikan lele dan nila
- Jasa sumur bor dan pompa air
- Toko alat pancing
- Toko perlengkapan bayi dan anak
- Jasa pasang CCTV dan jaringan
- Jasa pembukuan dan konsultan pajak
- Galeri dan perajin batik
- Showroom dan jual beli motor bekas
- Toko pertanian dan saprotan
- Danus organisasi mahasiswa
- Sewa kostum, kebaya, dan baju adat
- Jasa sedot WC dan saluran mampet
- Usaha souvenir pernikahan
- Toko mainan dan koleksi hobi
- Bengkel las dan kanopi
- Jasa angkut sampah dan iuran kebersihan
- Reuni sekolah dan acara alumni
- Toko hijab dan busana muslim
- Jasa kurir dan ojek lokal
- Toko kosmetik dan skincare
- Toko dan bengkel sepeda
- Rental mobil dan sewa kendaraan
- Jual beli HP dan laptop bekas
- Usaha RT/RW Net
- Klinik hewan dan dokter hewan
- Jasa servis dan cuci AC
- Jasa makeup artist (MUA)
- DP reservasi rumah makan dan restoran
- Pedagang kaki lima dan gerobak
- Laundry
- Katering
- Bengkel motor dan mobil
- Klinik gigi dan praktik dokter
- Fotografi dan videografi
- Bimbel dan les privat
- Gym dan studio kebugaran
- Sewa lapangan olahraga
- Homestay dan villa
- Rental alat
- Toko bahan bangunan
- Jasa renovasi rumah
- Jasa pindahan rumah
- Percetakan dan digital printing
- Pet shop dan penitipan hewan
- Open trip
- Depot air minum isi ulang
- Toko bunga dan papan bunga
- Sekolah sepak bola dan klub olahraga anak
- Servis HP dan laptop
- Kursus mengemudi
- Sanggar tari dan kursus musik
- Aqiqah dan hewan kurban
- Antar-jemput sekolah
- SPP sekolah swasta, madrasah, dan pesantren
- Kue rumahan
- Jualan sayur online
- Kantin dan food court
- Cuci mobil dan motor
- Jualan frozen food
- Jualan thrift dan preloved
- Cleaning service dan bersih-bersih rumah
- Jasa penerjemah dan juru bahasa
- Toko optik dan kacamata
- Toko oleh-oleh dan jajanan khas
- Tempat wisata dan agrowisata
- Rental PS dan warnet
- Photobox dan photobooth
- Jasa cuci sepatu
- Toko buku dan alat tulis
- Daycare dan penitipan anak
- TPA, TPQ, dan rumah tahfiz
- Kolam pemancingan
- Coworking space dan ruang rapat
- Studio tato
- Pesan antar makanan sendiri
- Parkir dan penitipan motor
- Komisi ilustrasi dan desain pesanan
- Agen dan grosir sembako
- Konsultasi psikolog dan konselor online
- Toko ikan hias dan aquascape
- Tanaman hias dan bibit
- Pesanan hampers dan parsel
- Warung dan kasbon
- Kedai kopi dan kafe
- Penjahit dan konveksi
- Kos dan kontrakan
- Jastip
- Freelancer
- Jasa website dan hosting
- Jasa panggilan di tempat