Ketika pembayaran gagal, Dodo Payments memberi tahu Anda mengapa melalui
error_code yang terstandarisasi dan error_message yang dapat dibaca manusia. Panduan ini menjelaskan cara membaca kolom tersebut, menentukan apakah percobaan ulang layak dilakukan, dan memulihkan pembayaran tanpa mengekspos informasi sensitif kepada pelanggan.Bagaimana Dodo Payments Melaporkan Kegagalan
Setiap pembayaran yang gagal — baik checkout satu kali maupun perpanjangan langganan — memiliki kolom kegagalan yang sama pada objek pembayaran:error_code dan error_message adalah null sampai pembayaran benar-benar gagal. Selalu periksa status terlebih dahulu, lalu baca kolom error.Webhook payment.failed
Cara paling andal untuk mendeteksi kegagalan adalah webhook payment.failed. Event ini membungkus seluruh objek payment dalam data:
payment.failed payload
error_code dan melakukan routing berdasarkan nilainya:
Tentukan Apakah Perlu Retry: Soft vs. Hard Decline
error_code memberi tahu apakah retry dengan metode pembayaran yang sama layak dilakukan.
Referensi Transaction Failures mencantumkan jenis decline dan tindakan yang direkomendasikan untuk setiap
error_code.
Menangani Kegagalan Saat Checkout vs. Saat Renewal
Cara pemulihan yang Anda lakukan bergantung pada apakah customer sedang hadir.- At checkout (customer present)
- On subscription renewal (customer not present)
Customer sedang aktif melakukan checkout. Tampilkan pesan yang jelas dan izinkan mereka melakukan retry segera atau menggunakan kartu lain.
requires_payment_method— customer tidak pernah memberikan metode pembayaran: mereka tidak memasukkan detail kartu, atau diminta memasukkannya tetapi tidak melakukan tindakan apa pun. Ini biasanya merupakan drop-off saat checkout, bukan decline — hubungi kembali customer agar menyelesaikan pembayaran (lihat Pemulihan Abandoned Cart).requires_customer_action— autentikasi tambahan (seperti 3DS) diperlukan; minta customer menyelesaikannya. Lihat penanganan 3D Secure.
Melakukan Retry pada Pembayaran yang Gagal
- Subscriptions: Aktifkan Subscription Payment Retries untuk memulihkan soft decline tanpa pekerjaan integrasi. Anda juga dapat memicu pemulihan dengan meminta customer memperbarui metode pembayaran mereka melalui Update Payment Method API, yang akan menagihkan tunggakan apa pun.
- Pembayaran satu kali: Kirim ulang checkout atau
payment_linkagar customer dapat mencoba lagi dengan metode lain. Tidak ada retry otomatis untuk pembayaran satu kali.
Menampilkan Error kepada Customer dengan Aman
Tampilkan pesan yang ramah kepada customer — jangan pernah menampilkanerror_code mentah, dan jangan pernah menampilkan error_message yang ditujukan untuk merchant.
Pada permukaan yang dikontrol oleh Dodo Payments — checkout, Customer Portal, dan email dunning — pemetaan ini sudah dilakukan untuk Anda, termasuk fallback ke pesan umum untuk decline terkait fraud. Anda hanya memerlukan pemetaan di bawah ini ketika menampilkan kegagalan dalam produk Anda sendiri.
Customer-facing messaging
Terkait
Transaction Failures
Setiap kode decline, jenisnya, dan tindakan yang direkomendasikan.
Error Codes
Error API dan logika bisnis yang bukan merupakan card decline.
Subscription Payment Retries
Pemulihan otomatis soft decline pada renewal subscription.
Subscription Dunning
Rangkaian email untuk memulihkan hard decline.
Payment Webhooks
Skema payload lengkap untuk event pembayaran.
Testing Failures
Kartu pengujian yang menyimulasikan decline dan kegagalan renewal.