Blog · Terbit
Istilah payment gateway yang perlu dipahami sebelum mendaftar: MDR, settlement dan pencairan, callback, direct dan redirect, open dan closed payment, sampai idempotency
Halaman tarif, dokumentasi API, dan formulir pendaftaran payment gateway memakai kosakata yang sama, dan hampir tidak ada yang menjelaskannya. Di bawah ini istilahnya diurutkan mengikuti perjalanan uang: siapa yang memungut biaya, bagaimana pembeli membayar, apa yang terjadi setelah pembeli membayar, lalu istilah yang hanya ditemui developer. Setiap istilah diberi bentuk nyatanya di Kasera Pay dan salah kaprah yang paling sering, karena definisi saja jarang cukup untuk mengambil keputusan.
Pihak dan biaya
Payment gateway. Layanan yang membuat tagihan, menampilkan cara bayar kepada pembeli, mengabarkan saat uang masuk, lalu meneruskan dana ke rekening penjual. Gateway bukan bank. Uangnya bergerak lewat penyedia jasa pembayaran berlisensi, dan gateway adalah lapisan yang membuat semua itu bisa dipakai tanpa perjanjian langsung dengan setiap bank.
MDR (merchant discount rate). Potongan persen per transaksi yang dibebankan kepada penjual. Pada QRIS di Kasera Pay, komponen MDR-nya 0,7%, ditambah biaya tetap Kasera Rp 250 per transaksi berhasil. Salah kaprah yang paling sering: mengira 0,7% adalah seluruh biayanya. Pada penjualan Rp 20.000, biayanya Rp 140 + Rp 250 = Rp 390, hampir 2% dari nominal. Hitungan per nominal dan aturan yang berlaku tahun ini ada di ulasan biaya QRIS 2026.
Biaya tetap (flat). Biaya yang sama berapa pun nominalnya. Virtual Account di Kasera Pay dikenai Rp 5.000 per pembayaran berhasil. Akibatnya terbalik dari QRIS: mahal untuk nominal kecil, murah untuk nominal besar. Pada tagihan Rp 2.000.000, QRIS memotong Rp 14.250 sedangkan Virtual Account tetap Rp 5.000.
Penanggung biaya. Siapa yang membayar biaya transaksi. Secara bawaan penjual yang menanggung: nominal yang diketik adalah yang dibayar pembeli. Dengan pilihan Terima utuh, biaya ditambahkan ke total pembeli, sehingga permintaan Rp 100.000 menjadi Rp 100.957 di QRIS dan Rp 105.000 di Virtual Account. Batas nominal kemudian diperiksa atas total itu, bukan atas angka yang diketik.
Cara pembeli membayar
Channel pembayaran (metode pembayaran). Jalur yang dipakai pembeli. Saat tulisan ini dibuat, Kasera Pay menerima QRIS dan Virtual Account di delapan bank (BCA, BRI, BNI, Mandiri, Permata, CIMB Niaga, Danamon, Maybank). E-wallet belum tersedia sebagai metode tersendiri, tetapi pembeli tetap bisa membayar dari aplikasi e-wallet dengan memindai QRIS. Gateway lain ada yang menawarkan lebih banyak channel; itu layak dibandingkan kalau pembeli memang membutuhkannya.
QRIS statis dan QRIS dinamis. QRIS statis adalah satu kode yang dicetak dan dipakai semua orang, dan pembeli mengetik nominalnya sendiri. QRIS dinamis dibuat per tagihan dengan nominal yang sudah terkunci. Yang membedakan keduanya dalam praktik bukan tampilannya, melainkan pencocokan: kode statis tidak melahirkan tagihan apa pun yang bisa ditanyakan statusnya. Di Kasera Pay setiap QR dibuat per permintaan pembayaran, termasuk yang lahir dari halaman pembayaran permanen yang nominalnya diisi pembeli.
Virtual Account (VA). Nomor rekening tujuan yang dibuat untuk satu tagihan. Pembeli mentransfer dari aplikasi bank, ATM, atau teller, dan nama pembeli wajib diisi karena bank menampilkannya di layar transfer. Minimum Rp 10.000 per pembayaran, berbeda dengan QRIS yang mulai dari Rp 1.000.
Open payment dan closed payment. Closed payment: nominal ditentukan penjual, dan satu kode bayar hanya berlaku untuk satu transaksi. Open payment: nominal diisi pembayar, dan kodenya dipakai berkali-kali. Iuran 120 anggota lewat satu tautan bersama adalah open payment; tagihan per pesanan adalah closed payment.
Direct dan redirect. Sumbu yang berbeda dari open dan closed, dan sering tertukar. Redirect: pembeli dikirim ke halaman pembayaran milik gateway, di Kasera Pay lewat checkout_url. Direct: situs penjual menampilkan sendiri QR atau nomor VA dari respons API. Keempat kombinasinya sah, dan pemetaannya dibahas lengkap di tulisan tentang open payment dan closed payment.
Masa berlaku (expiry). Batas waktu sebuah tagihan bisa dibayar. Bawaannya 60 menit sejak dibuat, dan developer bisa mengaturnya sampai 24 jam per pembayaran lewat API. Setelah itu statusnya menjadi expired. Tagihan yang dikirim lewat chat kepada pembeli yang baru membalas besok pagi hampir selalu butuh masa berlaku yang lebih panjang dari bawaannya.
Setelah pembeli membayar
Status transaksi. Tiga status yang paling sering terlihat: pending (menunggu dibayar), succeeded (uang sudah dikonfirmasi masuk, tampil sebagai Dibayar di dashboard), dan expired (lewat masa berlaku tanpa dibayar). Konfirmasinya datang dari penyedia pembayaran, bukan dari tombol yang ditekan pembeli dan bukan dari tangkapan layar.
Callback atau webhook. Dua nama untuk hal yang sama: permintaan HTTP dari gateway ke server penjual saat sesuatu terjadi. Di Kasera Pay namanya webhook, dengan event payment.paid, payment.expired, dan payment.failed. Perhatikan bahwa payment.paid adalah nama event, sedangkan status transaksinya tetap succeeded. Penjual tanpa server tidak membutuhkannya, karena dashboard dan notifikasi sudah memberi tahu.
Signature (tanda tangan). Bukti bahwa sebuah webhook benar-benar dikirim gateway dan isinya tidak diubah. Kasera Pay mengirim header Kasera-Signature-V1 berisi HMAC-SHA256 atas timestamp dan body mentah. Server yang tidak memeriksanya bisa ditipu siapa pun yang mengetahui URL webhook-nya. Format dan contoh kodenya ada di dokumentasi webhook.
Settlement dan pencairan. Dua langkah yang sering disebut dengan satu kata. Settlement adalah penyelesaian dana dari jaringan pembayaran, yang mengikuti hari kerja bank, sehingga akhir pekan dan hari libur menundanya. Pencairan (payout) adalah pengiriman saldo ke rekening penjual. Di Kasera Pay pencairan dikenai Rp 3.000 per pencairan, bukan per transaksi, dengan jadwal harian, mingguan, dua minggu sekali, bulanan, atau manual, dan minimum Rp 10.000 yang harus sampai di rekening setelah biaya. Rinciannya ada di dokumentasi pencairan dana.
Rekonsiliasi. Mencocokkan setiap uang yang masuk dengan pesanan atau tagihan yang dibayarnya. Pekerjaan ini ringan kalau setiap pembayaran membawa nomor pesanan, lewat deskripsi atau external_id, dan berat kalau yang tersedia hanya mutasi rekening dan tangkapan layar.
Refund (pengembalian dana). Mengembalikan uang kepada pembeli. Pembayaran QRIS dan Virtual Account tidak bisa di-refund lewat Kasera Pay; penjual mentransfer nominal yang disepakati dari rekeningnya sendiri, dan biaya transaksinya tidak dikembalikan.
Istilah developer
API key dan sandbox. API key adalah kredensial untuk memanggil API dari server. Sandbox, atau mode tes, adalah lingkungan tempat pembayaran bisa dicoba tanpa uang berpindah. Kunci berawalan kp_test_ untuk mode tes dan kp_live_ untuk pembayaran sungguhan, dan keduanya punya endpoint webhook serta signing secret masing-masing.
Idempotency-Key. Header yang membuat permintaan yang sama, dikirim dua kali karena koneksi putus, hanya menghasilkan satu tagihan. Header ini opsional, dan hanya header inilah yang mencegah tagihan ganda; external_id yang sama tidak. Penjelasan lengkapnya ada di idempotency untuk pembayaran.
Rate limit. Batas jumlah permintaan per satuan waktu. Di Kasera Pay batasnya 300 permintaan per menit per API key, dan permintaan yang melewatinya dijawab 429. Ini berbeda dari batas transaksi akun: sebelum verifikasi selesai, akun baru punya jatah 10 transaksi dengan total Rp 1.000.000.
Tiga pertanyaan yang sebaiknya diajukan dengan istilah ini
Sebelum memilih gateway mana pun, tiga pertanyaan ini menghemat paling banyak waktu. Berapa total biaya pada nominal penjualan yang paling sering, setelah MDR dan biaya tetap dijumlahkan? Apakah setiap pembayaran melahirkan status yang bisa ditanyakan dan webhook bertanda tangan, atau hanya mutasi rekening? Dan berapa biaya serta jadwal pencairan ke rekening sendiri, karena biaya itu tidak muncul di baris transaksi. Jawaban ketiganya untuk Kasera Pay ada di halaman ini; untuk gateway lain, tanyakan dengan istilah yang sama.