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 tersebut membungkus seluruh objek pembayaran dalam data:
payment.failed payload
error_code dan melakukan routing berdasarkan nilainya:
Tentukan Apakah Perlu Mencoba Lagi: Penolakan Lunak vs. Keras
error_code memberi tahu Anda apakah mencoba lagi dengan metode pembayaran yang sama layak dilakukan.
Referensi Kegagalan Transaksi mencantumkan jenis penolakan dan tindakan yang disarankan untuk setiap
error_code.
Menangani Kegagalan saat Checkout vs. Perpanjangan
Cara pemulihan bergantung pada apakah pelanggan sedang hadir.- At checkout (customer present)
- On subscription renewal (customer not present)
Pelanggan sedang aktif melakukan checkout. Tampilkan pesan yang jelas dan biarkan mereka mencoba lagi segera atau menggunakan kartu lain.
requires_payment_method— pelanggan tidak pernah memberikan metode pembayaran: mereka tidak memasukkan detail kartu, atau diminta memberikan metode pembayaran tetapi tidak melakukan tindakan apa pun. Ini biasanya merupakan drop-off saat checkout, bukan penolakan — hubungi kembali pelanggan untuk menyelesaikan pembayaran (lihat Pemulihan Keranjang yang Ditinggalkan).requires_customer_action— autentikasi tambahan (seperti 3DS) diperlukan; minta pelanggan menyelesaikannya. Lihat Penanganan 3D Secure.
Mencoba Lagi Pembayaran yang Gagal
- Langganan: Aktifkan Percobaan Ulang Pembayaran Langganan untuk memulihkan penolakan lunak tanpa pekerjaan integrasi. Anda juga dapat memicu pemulihan dengan meminta pelanggan memperbarui metode pembayaran mereka melalui API Pembaruan Metode Pembayaran, yang akan menagih tunggakan apa pun.
- Pembayaran satu kali: Kirim ulang checkout atau
payment_linkagar pelanggan dapat mencoba lagi dengan metode lain. Tidak ada percobaan ulang otomatis untuk pembayaran satu kali.
Tampilkan Error kepada Pelanggan dengan Aman
Tampilkan pesan yang ramah kepada pelanggan — jangan pernah menampilkanerror_code mentah.
Customer-facing messaging
Terkait
Transaction Failures
Setiap kode penolakan, jenisnya, dan tindakan yang disarankan.
Error Codes
Error API dan logika bisnis yang bukan merupakan penolakan kartu.
Subscription Payment Retries
Pemulihan otomatis penolakan lunak pada perpanjangan langganan.
Subscription Dunning
Rangkaian email untuk memulihkan penolakan keras.
Payment Webhooks
Skema payload lengkap untuk event pembayaran.
Testing Failures
Kartu pengujian yang mensimulasikan penolakan dan kegagalan perpanjangan.