KwitKwit Docs

Dunning

Retries, reminders, and subscription recovery when payments fail

llms.txtRetries, reminders, and subscription recovery when payments fail

When a renewal charge fails, Kwit creates one invoice and marks the subscription past due. Dunning retries that same invoice - it does not create duplicate invoices per attempt.

Timeline

StepWhat happensWebhooksEmail
Initial failureSubscription → PAST_DUE, invoice opensubscription.updated, subscription.payment_failedReminder 1/3
+3 daysRetry chargesubscription.payment_failedReminder 2/3
+7 daysFinal retrysubscription.payment_failedFinal notice 3/3
All failedInvoice → UNCOLLECTIBLE, subscription canceledsubscription.canceled-
RecoveryInvoice paid, subscription activeinvoice.paid, subscription.updatedReceipt

Recovery page

Failed-payment emails link to a recovery hosted page where customers retry payment or update their payment method (re-tokenize via zahls, then auto-retry).

Your integration

Listen for subscription.payment_failed to notify your app; use invoice.paid to restore access after recovery.

On this page