Blog · 7 September 2026
Pembeli bilang pembayarannya gagal, tetapi di daftar transaksi tertulis menunggu: mana yang benar
Keduanya benar, dan itulah sebabnya percakapan ini sering berputar. Sebuah percobaan pembayaran yang gagal tidak menghasilkan status tersendiri di Kasera Pay. Pembeli yang scan QRIS lalu ditolak aplikasinya memang melihat kegagalan, tetapi kegagalan itu terjadi di aplikasi pembayarannya, bukan pada permintaan pembayarannya. Permintaan itu sendiri tetap berstatus menunggu, tetap punya sisa waktu, dan hampir selalu masih bisa dibayar lewat tautan yang sama.
Konsekuensi praktisnya satu kalimat: jangan buat tagihan baru dulu. Tagihan kedua untuk pesanan yang sama adalah cara paling umum sebuah pembayaran ganda lahir, karena tautan pertama tetap hidup sampai kedaluwarsa dan bisa dibayar kapan saja sebelum itu.
Kenapa percobaan yang gagal tidak meninggalkan jejak
Sebuah permintaan pembayaran punya lima status: pending, succeeded, failed, expired, dan canceled. Tidak ada satu pun di antaranya yang berarti “percobaan ketiga barusan ditolak”, dan itu memang disengaja. Pembeli yang scan-nya bermasalah boleh mencoba lagi, mungkin dengan aplikasi lain atau setelah menambah saldo, jadi menandai permintaannya mati pada percobaan pertama akan menutup pintu yang seharusnya terbuka.
Status failed ada, tetapi maknanya lebih keras: yang ditolak adalah permintaannya sendiri, bukan satu percobaan, dan status itu hanya muncul ketika penyedia jasa pembayaran berlisensi melaporkan kegagalan atas permintaan tersebut. Selama status masih pending dan waktunya belum habis, halaman pembayaran tetap menampilkan kode QR atau nomor Virtual Account-nya seperti semula.
Lima layar yang mungkin dilihat pembeli
Halaman pembayaran hanya punya lima keadaan, dan kalimat di layar pembeli menentukan siapa yang harus bertindak berikutnya. Ini isinya, apa adanya:
- “Menunggu pembayaran” beserta hitung mundur. Tautan masih hidup dan pembeli masih bisa membayar. Layar inilah yang biasanya sedang dilihat pembeli yang mengeluh pembayarannya gagal.
- “Pembayaran berhasil”. Uangnya sudah masuk dan tercatat. Kalau ada alamat kembali ke toko, halamannya mengarahkan pembeli ke sana beberapa detik kemudian.
- “Tautan kedaluwarsa”, dengan penjelasan “Waktu pembayaran sudah habis. Minta tautan baru ke penjual.” Bukan kegagalan: masa berlakunya habis sebelum ada pembayaran yang masuk.
- “Pembayaran dibatalkan”, dengan penjelasan “Penjual membatalkan permintaan ini.” Ini satu-satunya keadaan yang berasal dari sisi penjual, jadi kalau pembeli melaporkannya sementara penjual merasa tidak membatalkan apa pun, yang perlu diperiksa adalah siapa lagi yang punya akses ke dashboard.
- “Pembayaran gagal”, dengan penjelasan “Pembayaran tidak dapat diproses. Minta tautan baru ke penjual.” Ini kegagalan yang sesungguhnya, dan tautan penggantinya memang harus dibuat.
Ada satu layar keenam yang tidak muncul pada pembayaran normal: “Halaman pembayaran tidak tersedia”. Kalimat itu berarti akun penjualnya sedang tidak bisa menerima pembayaran sama sekali, bukan bahwa tagihannya bermasalah, dan urusannya antara penjual dan Kasera.
Empat penyebab yang paling sering, dan siapa yang bisa memperbaikinya
Tiga dari empat berada di luar jangkauan penjual, dan menyadarinya menghemat waktu:
- Saldo atau limit di sisi pembeli. Batas nominal per transaksi dan per hari ditetapkan bank atau dompet elektronik pembeli, bukan oleh penjual dan bukan oleh Kasera Pay. Batas itu ditetapkan terpisah untuk tiap jalur, jadi nominal yang tertolak saat membayar QRIS belum tentu tertolak lewat transfer, dan jalan keluarnya adalah metode lain, bukan tautan baru.
- Aplikasi yang dipakai memindai. Kode QRIS dibaca dari aplikasi pembayaran, bukan dari kamera bawaan ponsel. Kamera bawaan biasanya hanya menampilkan teks panjang tanpa bisa membayarnya, dan bagi pembeli itu terasa seperti kode rusak.
- Waktu habis di tengah jalan. Pembeli membuka tautan, berpindah ke aplikasi bank, lalu kembali setelah masa berlakunya lewat. Halaman pembayarannya memeriksa ulang ke server setiap lima detik selama masih hidup, jadi perubahan status muncul sendiri tanpa perlu memuat ulang.
- Nominal diketik ulang oleh pembeli. Terjadi pada Virtual Account, di mana angka transfer diisi manual. Ini satu-satunya dari empat penyebab yang berujung pada uang yang benar-benar berpindah tanpa pesanan menjadi lunas, dan bagian berikutnya khusus membahasnya.
Uang yang masuk setelah tautannya kedaluwarsa tetap diakui
Ini aturan yang jarang dipublikasikan gateway mana pun, dan penting untuk diketahui sebelum menjanjikan apa pun kepada pembeli. Kalau penyedia jasa pembayaran berlisensi sudah menerima uang pembeli sebelum penghitung waktu di sisi Kasera Pay berhenti, pembayaran itu tetap dicatat lunas walaupun statusnya sempat berubah menjadi kedaluwarsa. Permintaan yang sudah expired boleh berpindah ke succeeded, dan itu satu-satunya perpindahan yang diizinkan dari status akhir. Alasannya sederhana: memberi tahu penjual bahwa dirinya tidak dibayar padahal uangnya sudah diterima adalah kesalahan yang jauh lebih mahal daripada menunggu.
Jadi tautan yang tampak kedaluwarsa bukan alasan untuk langsung menagih ulang pembeli yang bersikeras sudah membayar. Yang benar adalah memeriksa status pesanan itu kembali beberapa menit kemudian sebelum mengambil keputusan apa pun. Bagaimana masa berlaku dipilih dan kenapa memperpanjangnya bukan solusi ada di panduan masa berlaku tagihan.
Nominal yang tidak cocok tidak pernah otomatis dinyatakan lunas
Kalau jumlah uang yang diterima berbeda dari jumlah yang tertera pada permintaan, entah kurang atau lebih, pembayarannya tidak diterapkan. Baris itu ditahan untuk diperiksa manusia dan statusnya tetap menunggu sampai ada keputusan. Perilaku ini melindungi kedua arah: transfer Rp 149.000 untuk tagihan Rp 150.000 tidak akan pernah melunasi pesanan secara diam-diam, dan kelebihan bayar tidak hilang tanpa jejak.
Bagi penjual, yang perlu diingat cuma satu: pembeli yang membulatkan nominal transfer sedang membuat kasus dukungan, bukan pembayaran. Karena itu instruksi Virtual Account sebaiknya menyebutkan jumlah persis sampai rupiah terakhir, termasuk angka yang terlihat aneh. Kalau uangnya harus dikembalikan, langkahnya ada di panduan pengembalian dana ke pembeli.
Yang terlihat di sisi penjual, dan yang memang tidak terlihat
Daftar transaksi menampilkan status per permintaan, bukan per percobaan: Menunggu, Dibayar, Gagal, Kedaluwarsa, atau Dibatalkan. Tidak ada penghitung percobaan, tidak ada catatan “ditolak bank penerbit”, dan tidak ada riwayat scan. Menanyakan berapa kali pembeli mencoba karena itu tidak akan pernah terjawab dari dashboard, dan tidak perlu: satu-satunya pertanyaan yang menentukan tindakan adalah apakah barisnya sudah lunas atau belum.
Perkara yang berbeda, dan sering tertukar dengan yang ini, adalah pembeli yang menyatakan sudah membayar sementara barisnya belum lunas. Itu triase tersendiri dan ada halamannya: pembeli bilang sudah bayar tetapi belum masuk.
Balasan yang menyelesaikannya dalam satu kali kirim
Susunannya penting: buka dengan kabar yang menenangkan, lalu satu instruksi, lalu satu syarat yang mencegah pesan susulan.
Tidak apa-apa, tagihannya belum tertutup. Percobaan yang gagal tidak mengunci apa pun, jadi tautan yang tadi masih bisa dipakai lagi sampai pukul 17.00 hari ini. Kalau ditolak lagi, biasanya karena limit harian di aplikasi pembayarannya, dan pilihan transfer Virtual Account di halaman yang sama memakai batas yang berbeda. Nominalnya harus persis Rp 150.000 supaya langsung tercatat otomatis.
Kalimat terakhir itu yang menghemat percakapan berikutnya, karena nominal yang dibulatkan adalah penyebab pembayaran tertahan yang paling bisa dicegah dari sisi penjual.
Menurunkan angka kegagalan sebelum terjadi
Tiga hal yang berpengaruh, dan tidak satu pun berupa perubahan kode. Pertama, tawarkan lebih dari satu metode untuk nominal besar: batas transaksi yang menolak QRIS sering tidak berlaku pada Virtual Account, dan sebaliknya biaya tetap Virtual Account terasa mahal pada nominal kecil. Perbandingan bentuk biayanya ada di panduan memilih QRIS atau Virtual Account, dan daftar metode yang benar-benar aktif ada di dokumentasi metode pembayaran.
Kedua, sesuaikan masa berlaku dengan cara pembeli membayar. Tautan yang dikirim tengah malam ke pembeli yang membayar pagi hari perlu jendela lebih panjang daripada tautan yang dibuka langsung di depan kasir. Ketiga, cantumkan nominal persis di pesan pengiriman tautan, bukan hanya di halaman pembayaran, supaya pembeli yang memilih transfer manual tetap membawa angka yang benar.
Setelah tiga hal itu berjalan, sisa kegagalan yang tersisa hampir seluruhnya berada di aplikasi pembayaran milik pembeli, dan jawaban terbaik untuk itu bukan tagihan baru, melainkan kalimat yang memberi tahu bahwa tagihan lama masih menunggu.