Ikhtisar
Saat upaya pembayaran gagal, Dodo Payments mengembalikan kode kegagalan standar yang menjelaskan alasannya. Kode ini sama di semua metode pembayaran dan payment processor, sehingga satu set aturan penanganan dapat mencakup setiap pembayaran yang gagal. Webhookpayment.failed dan payment object menampilkan field berikut untuk pembayaran yang gagal:
error_code: kode kegagalan standar dari tabel di bawah.error_message: penjelasan yang ditulis untuk Anda, merchant. Saaterror_codemerupakan salah satu kode standar di bawah, field ini berisi judul utama dan tindakan yang direkomendasikan, bukan teks mentah dari payment processor.retry_attempt:0untuk charge asli, dan1atau lebih tinggi untuk setiap percobaan ulang renewal subscription yang dijadwalkan. Pembayaran yang bukan renewal subscription mempertahankan nilai0.
Teks untuk Merchant vs. Teks untuk Customer
Setiap kode kegagalan standar dipetakan ke dua pesan, satu untuk Anda dan satu untuk customer Anda:Customer Portal mengembalikan teks untuk customer dalam
error_message, sedangkan merchant API mengembalikan teks untuk merchant untuk payment yang sama. error_code sama 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 melakukan retry.
Soft Decline vs. Hard Decline
Setiap kode kegagalan merupakan soft decline atau hard decline. Jenisnya menunjukkan apakah percobaan berikutnya dengan detail payment yang sama dapat berhasil, atau apakah customer harus melakukan tindakan terlebih dahulu.
Untuk renewal subscription, Dodo Payments menerapkan klasifikasi ini secara otomatis. Subscription Payment Retries melakukan retry untuk soft decline. Hard decline langsung mengakhiri rangkaian retry; pulihkan dengan Subscription Dunning.
Alasan Kegagalan Transaksi
Tabel berikut mencantumkan setiap kode kegagalan beserta jenis decline, apakah customer dapat mengatasinya, deskripsi, dan tindakan yang direkomendasikan.User Error menunjukkan apakah customer dapat mengatasi decline.
Yes berarti customer dapat memperbaiki masalah tersebut, misalnya dengan memasukkan detail kartu yang benar. No berarti decline disebabkan oleh masalah tingkat sistem atau pembatasan bank, dan customer tidak dapat mengatasinya secara langsung.Bank penerbit juga dapat menolak kartu karena mesin risikonya sendiri menandai pemegang kartu sebagai berisiko tinggi, terlepas dari merchant atau detail transaksi. Penolakan ini biasanya muncul sebagai kode umum seperti
DO_NOT_HONOR, GENERIC_DECLINE, CARD_DECLINED, TRANSACTION_NOT_APPROVED, atau FRAUDULENT. Bank tidak membagikan alasan spesifiknya, dan Dodo Payments maupun merchant tidak dapat membatalkan keputusan tersebut. Minta pelanggan menghubungi bank mereka untuk menyelesaikan penandaan tersebut, atau menggunakan kartu atau metode pembayaran lain.Menangani Kegagalan Secara Terprogram
Bacaerror_code dari webhook payment.failed atau payment object, petakan ke tindakan yang direkomendasikan dalam tabel, lalu tentukan apakah perlu melakukan retry. Untuk renewal subscription, Dodo Payments melakukan retry soft decline untuk Anda. Lihat Subscription Payment Retries.
Untuk error API dan business logic yang bukan card decline, seperti PAYMENT_NOT_SUCCEEDED atau REFUND_WINDOW_EXPIRED, 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.