Manual Retry mencoba kembali pembayaran perpanjangan langganan yang gagal saat Anda memintanya, dari halaman detail pembayaran atau melalui API. Fitur ini membebankan metode pembayaran yang tersimpan pada langganan, dan berjalan secara independen dari jadwal Payment Retries otomatis.
Apa Itu Coba Lagi Manual?
Saat pembayaran perpanjangan gagal, langganan berpindah keon_hold. Jika Anda mengaktifkan Payment Retries, fitur tersebut akan mencoba kembali membebankan pembayaran sesuai jadwal back-off. Terkadang Anda mengetahui bahwa pembayaran akan berhasil saat ini: pelanggan telah mengonfirmasi bahwa mereka telah mengisi saldo akun, atau tim dukungan Anda sedang menghubungi mereka. Manual Retry langsung mengirimkan satu percobaan, tanpa menunggu berjam-jam atau berhari-hari hingga percobaan terjadwal berikutnya.
- Hanya pembayaran perpanjangan: Manual Retry berlaku untuk invoice perpanjangan langganan saat langganan berada dalam status
on_hold. Pembayaran pertama, pembayaran satu kali, biaya perubahan paket, dan biaya on-demand tidak memenuhi syarat. - Tanpa tindakan pelanggan: Pembebanan dilakukan ke metode pembayaran yang sudah tersimpan pada langganan.
- Independen dari percobaan otomatis: Percobaan manual tidak menggunakan jatah percobaan dari jadwal otomatis, tidak mengubah waktu percobaan terjadwal berikutnya, dan tetap berfungsi meskipun Payment Retries dinonaktifkan.
- Mencoba kembali invoice, bukan pembayaran: Pembayaran yang gagal hanyalah titik awal. Dodo Payments menemukan invoice perpanjangan terbuka di baliknya dan membebankan utang tersebut, sehingga tidak masalah pembayaran yang gagal pada invoice mana yang Anda gunakan untuk mencoba kembali.
Mencoba Lagi dari Dashboard
Hanya pengguna dengan peran Owner atau Editor yang dapat mengirimkan percobaan manual.1
Open the failed payment
Buka Transactions → Payments, lalu klik pembayaran perpanjangan yang gagal untuk membuka halaman Transaction details.
2
Click Retry Payment Manually
Klik Retry Payment Manually di sudut kanan atas. Tombol ini hanya tersedia saat pembayaran memenuhi syarat.
3
Check the result
Dodo Payments membuat pembayaran baru untuk percobaan tersebut, dan pembayaran itu muncul di Activity Log. Jika pembebanan berhasil, langganan kembali ke
active, dan tanggal penagihan berikutnya bergeser ke satu periode penagihan setelah percobaan ulang yang berhasil. Jika pemroses pembayaran belum menyelesaikan pembebanan, pembayaran akan ditampilkan sebagai sedang berlangsung hingga webhook payment.succeeded atau payment.failed melaporkan hasilnya.
Retry Payment Manually on the transaction details page of a failed renewal
Kelayakan
Dodo Payments hanya mengirimkan percobaan manual jika semua pemeriksaan dalam tabel ini terpenuhi. Kolom Reason code adalah nilai yang dikembalikan API: direason pada GET /payments/{payment_id}/retry, dan sebagai error code pada POST /payments/{payment_id}/retry.
Manual Retry lebih terbatas daripada percobaan otomatis dalam satu hal: fitur ini mengharuskan langganan berada dalam status
on_hold. Langganan past_due dalam masa tenggang tidak memenuhi pemeriksaan ini. Percobaan otomatis tetap berjalan untuk status nonaktif lainnya. Lihat Subscription Status Transitions.Batas Percobaan
Setiap invoice perpanjangan mengizinkan 3 percobaan manual, dengan masa cooldown di antaranya:
Batas ini berlaku dalam test mode dan live mode. Saat batas menolak percobaan, API mengembalikan
MANUAL_RETRY_LIMIT_REACHED (HTTP 429), dan isi error hanya memuat code serta message. Untuk mengetahui kapan percobaan berikutnya tersedia, periksa status percobaan dan baca retry_available_at. Nilainya adalah null setelah ketiga percobaan digunakan.
Percobaan otomatis tidak dihitung dalam batas ini, dan percobaan manual tidak dihitung dalam 8 percobaan pada jadwal otomatis.
Percobaan Manual vs. Otomatis
Kedua jalur percobaan ini berbeda dalam hal-hal berikut:Mencoba Kembali melalui API
Periksa kelayakan terlebih dahulu, lalu kirimkan percobaan ulang. Kedua endpoint menerima ID pembayaran yang gagal.Memeriksa Apakah Pembayaran Dapat Dicoba Kembali
GET /payments/{payment_id}/retry tidak mengembalikan error untuk pembayaran yang tidak memenuhi syarat. Endpoint ini mengembalikan can_retry: false dengan kode reason, sehingga dashboard atau alat dukungan Anda dapat menampilkan status yang sama seperti dashboard Dodo Payments. Endpoint ini memerlukan peran Viewer.
Response
Mengirimkan Percobaan Manual
POST /payments/{payment_id}/retry membuat pembayaran baru dan membebankan metode pembayaran yang tersimpan. Endpoint ini memerlukan peran Editor. Contoh SDK menggunakan kembali client dari contoh sebelumnya.
Response
Respons Error
Saat percobaan tidak diizinkan,POST mengembalikan salah satu status HTTP berikut:
Referensi Error Codes menjelaskan setiap kode.
Webhook
Manual Retry membuat pembayaran biasa, sehingga webhook yang sama akan aktif seperti pada percobaan perpanjangan lainnya:
Pada objek pembayaran dalam event ini,
retry_attempt bernilai 1 atau lebih tinggi dan subscription_id ditetapkan, sama seperti pada percobaan otomatis. Objek pembayaran tidak memiliki field yang menandai percobaan manual, jadi simpan payment_id dari respons percobaan jika Anda perlu membedakan percobaan manual dari percobaan terjadwal.
Payment Webhook Payloads
Skema payload lengkap untuk event pembayaran.
Terkait
Subscription Payment Retries
Jadwal back-off otomatis yang berjalan bersamaan dengan percobaan manual.
Subscription Dunning
Kirim email kepada pelanggan untuk memperbarui metode pembayaran mereka setelah hard decline.
Handle Payment Failures
Baca kode penolakan dan tentukan kapan percobaan ulang layak dilakukan.
Error Codes
Setiap kode
MANUAL_RETRY_*, pemicunya, dan pesannya.