Automatic retries & emails
Automatic retries & emails
PaymentKit’s dunning system automatically recovers failed payments through retries and emails while giving you control over subscription and invoice outcomes when all payment attempts fail.
How dunning works
Dunning is composed of three coordinated actions:
Retry schedules
PaymentKit automatically retries failed payments according to the subscription billing cycle. The schedule varies by cycle length.
- Retry interval: Time between retry attempts
- Final retry: Last retry before applying failure handling
- Retry attempts:
floor(final_retry / retry_interval) + 1
Cycle lengths & parameters
Intervals adjust for cycle type; Short and daily cycles would compress accordingly.
Failure handling settings
When retries are off or exhausted, PaymentKit applies these rules:
For most businesses, cancelling the subscription and marking the invoice uncollectible will give you the cleanest reporting.
Hard decline handling
When a payment method returns a hard decline (expired card, closed account, invalid card number, stolen/lost card), PaymentKit:
- Marks the payment method as declined for this specific invoice
- Attempts the next payment method in the customer’s payment method list
- Repeats until success or all payment methods have hard declined
If all payment methods hard decline, the invoice transitions to “Update payment method” status and:
- Automatic retries pause (no point retrying with the same failed methods)
- Customer receives an email to update their payment method
- When a new payment method is added, retries resume automatically
Hard decline tracking is per-invoice. A payment method that fails on one invoice may still work for other invoices.
Edge cases during dunning
PaymentKit gracefully handles scenarios where external changes occur during active dunning:
Invoice manually paid
If an invoice is marked as paid outside the normal payment flow (e.g., manual payment recorded, payment via alternative channel), dunning stops immediately:
- No further automatic retries are scheduled
- Dunning status transitions to “Completed”
- Subscription state updates based on remaining unpaid invoices
Invoice voided
When an invoice is voided during dunning:
- Dunning ends gracefully with status “Completed”
- The subscription continues if other invoices are still active
- No end behavior is applied (voiding is explicit cancellation of the debt)
Subscription cancelled externally
If a subscription is cancelled while in dunning (e.g., via API, admin action, or customer request):
- Scheduled payment retries are skipped
- Outstanding invoices remain in their current state
- End behavior for existing invoices follows your failure handling settings
Payment method changes
During active dunning:
- Method deleted: Next retry uses remaining methods; if none available, transitions to “Update payment method”
- Method added: New method is included in the next retry attempt
- Default method changed: New default is prioritized in the retry order