Langsung ke konten utama

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, webhook payment.failed dan objek pembayaran menampilkan:
  • error_code — alasan kegagalan yang distandarisasi dari tabel di bawah.
  • error_message — penjelasan yang dapat dibaca manusia.
  • retry_attempt0 untuk biaya asli, 1 atau lebih tinggi untuk setiap percobaan pembaruan langganan berjadwal.
Memahami alasan kegagalan ini memungkinkan Anda memberikan umpan balik yang jelas kepada pelanggan, memutuskan apakah percobaan ulang layak dilakukan, dan memulihkan lebih banyak pendapatan. A step-by-step developer guide for reading these codes from webhooks and the API, surfacing them to customers, and deciding when to retry.

Soft vs. Hard Declines

Setiap kode kegagalan masuk ke dalam salah satu dari dua kategori. Perbedaan ini menentukan apakah Anda harus mencoba kembali metode pembayaran yang sama atau meminta pelanggan untuk metode baru. Untuk pembaharuan langganan, Dodo Payments menerapkan perbedaan ini secara otomatis: soft declines dicoba ulang oleh Subscription Payment Retries, sedangkan hard declines mengakhiri rantai percobaan ulang segera dan sebaiknya ditangani dengan Subscription Dunning. Never reveal the real reason for STOLEN_CARD, LOST_CARD, PICKUP_CARD, or FRAUDULENT to the customer. Surfacing these can tip off a fraudulent actor. Always show the customer a generic decline message (for example, “Your card was declined. Please contact your bank or use another card.”) and only log the specific code internally.

Transaction Failure Reasons

Tabel berikut daftar setiap kode kegagalan, jenis penolakan, apakah pelanggan dapat menyelesaikannya, deskripsi, dan tindakan yang direkomendasikan. User Error menunjukkan apakah penolakan pembayaran dapat diselesaikan oleh pelanggan. Ketika Yes, pelanggan dapat mengambil tindakan untuk memperbaiki masalah (misalnya, memasukkan detail kartu yang benar). Ketika No, penolakan disebabkan oleh masalah di tingkat sistem atau pembatasan bank yang tidak dapat diselesaikan langsung oleh pelanggan.

Handling Failures Programmatically

Baca error_code dari webhook payment.failed atau objek pembayaran, memetakan ke tindakan yang direkomendasikan di atas, dan memutuskan apakah akan mencoba kembali. Untuk pembaruan langganan, soft declines secara otomatis dicoba ulang untuk Anda — lihat Subscription Payment Retries. Untuk kesalahan tingkat API dan logika bisnis (seperti PAYMENT_NOT_SUCCEEDED atau REFUND_WINDOW_EXPIRED) yang bukan penolakan kartu, lihat referensi Error Codes. End-to-end guide to detecting, surfacing, and retrying failed payments. API and business-logic error codes for non-decline failures. Automatic retries that recover soft declines on subscription renewals. Email sequences that recover hard declines by prompting a payment method update.

Support

Untuk bantuan lebih lanjut dengan kegagalan transaksi atau masalah integrasi, silakan hubungi tim dukungan kami di support@dodopayments.com. Untuk bantuan tambahan terkait kegagalan transaksi atau masalah integrasi, silakan hubungi tim dukungan kami di support@dodopayments.com.
Terakhir diubah pada 9 Juli 2026