Ikhtisar
Dodo Payments mengembalikan alasan kegagalan yang mendetail setiap kali percobaan pembayaran tidak berhasil. Alasan-alasan ini distandarisasi di seluruh metode dan penyedia pembayaran, sehingga Anda dapat menerapkan penanganan yang konsisten dalam aplikasi Anda. Ketika pembayaran gagal, webhookpayment.failed dan objek pembayaran menampilkan:
error_code— alasan kegagalan terstandarisasi dari tabel di bawah.error_message— penjelasan yang mudah dipahami manusia dan ditulis untuk Anda, merchant. Jikaerror_codemerupakan salah satu kode terstandarisasi di bawah, ini berupa judul utama serta tindakan yang direkomendasikan, bukan teks mentah dari pemroses pembayaran.retry_attempt—0untuk tagihan asli,1atau lebih tinggi untuk setiap percobaan ulang perpanjangan langganan terjadwal.
Teks untuk Merchant vs. Teks untuk Customer
Setiap kode kegagalan terstandarisasi dipetakan ke dua pesan yang berbeda, sehingga audiens yang tepat melihat tingkat detail yang sesuai:Customer Portal mengembalikan teks yang ditujukan kepada customer dalam
error_message, sedangkan merchant API mengembalikan teks untuk merchant pada pembayaran yang sama. error_code identik pada keduanya.Handle Payment Failures
Panduan developer langkah demi langkah untuk membaca kode ini dari webhook dan API, menampilkannya kepada customer, serta menentukan kapan harus mencoba kembali.
Soft Decline vs. Hard Decline
Setiap kode kegagalan termasuk dalam salah satu dari dua kategori. Pembedaan ini menentukan apakah Anda harus mencoba kembali dengan metode pembayaran yang sama atau meminta customer menggunakan metode baru.
Untuk perpanjangan langganan, Dodo Payments menerapkan pembedaan ini secara otomatis: soft decline dicoba kembali oleh Subscription Payment Retries, sedangkan hard decline langsung mengakhiri rangkaian percobaan ulang dan sebaiknya ditangani dengan Subscription Dunning.
Alasan Kegagalan Transaksi
Tabel berikut mencantumkan setiap kode kegagalan, jenis decline, apakah customer dapat menyelesaikannya, deskripsi, dan tindakan yang direkomendasikan.Kesalahan User menunjukkan apakah decline pembayaran dapat diselesaikan oleh customer. Jika
Yes, customer dapat mengambil tindakan untuk memperbaiki masalah (misalnya, memasukkan detail kartu yang benar). Jika No, decline disebabkan oleh masalah tingkat sistem atau pembatasan bank yang tidak dapat diselesaikan langsung oleh customer.Kartu juga dapat ditolak ketika risk engine milik bank penerbit menandai pemegang kartu sebagai customer berisiko tinggi — terlepas dari merchant atau detail transaksi. Decline ini biasanya muncul sebagai kode umum seperti
DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED, atau FRAUDULENT. Dalam kasus ini, bank tidak membagikan alasan spesifiknya, dan Dodo Payments maupun merchant tidak dapat membatalkan keputusan tersebut. Minta customer menghubungi bank mereka untuk menyelesaikan penandaan ini, atau menggunakan kartu maupun metode pembayaran lain.Menangani Kegagalan Secara Terprogram
Bacaerror_code dari webhook payment.failed atau objek pembayaran, petakan ke tindakan yang direkomendasikan di atas, lalu tentukan apakah perlu mencoba kembali. Untuk perpanjangan langganan, soft decline otomatis dicoba kembali untuk Anda — lihat Subscription Payment Retries.
Untuk error tingkat API dan logika bisnis (seperti PAYMENT_NOT_SUCCEEDED atau REFUND_WINDOW_EXPIRED) yang bukan merupakan card decline, lihat referensi Error Codes.
Terkait
Handle Payment Failures
Panduan menyeluruh untuk mendeteksi, menampilkan, dan mencoba kembali pembayaran yang gagal.
Error Codes
Kode error API dan logika bisnis untuk kegagalan selain decline.
Subscription Payment Retries
Percobaan ulang otomatis yang memulihkan soft decline pada perpanjangan langganan.
Subscription Dunning
Rangkaian email yang memulihkan hard decline dengan meminta pembaruan metode pembayaran.