Home › Free tools › Dunning schedule planner
Failed-payment retry and dunning schedule planner
Turn a failed subscription payment into a dated plan: when each retry happens, when your emails go out, and what happens to the subscription at the end. Copy it as plain text for your team or your runbook.
Nothing you type leaves this browser. All processing happens in this page's own JavaScript. Your inputs are not sent anywhere and not saved: the page makes no network requests (its Content-Security-Policy blocks them), sets no cookies, uses no analytics and loads no third-party scripts or fonts. Once loaded, it works offline.
What comes from Stripe's docs, and what is your plan
Rows marked Your plan are the dates you chose; nothing here reads your Stripe settings. Rows marked Stripe docs describe documented Stripe behaviour:
- Stripe recommends Smart Retries. You set a number of tries within 1 week, 2 weeks, 3 weeks, 1 month or 2 months; the recommended default is 8 tries within 2 weeks. Stripe picks the times.
- A custom retry schedule allows up to three retries, each a number of days after the previous attempt. The planner converts your offsets to that form.
- If recovery fails, the subscription is canceled, marked unpaid or left past_due "after the maximum number of days defined in the retry schedule", depending on your settings. Stripe also offers pausing eligible subscriptions, which this planner doesn't model.
- Stripe doesn't retry when no payment method is available, among other cases. After a hard decline, retries stay scheduled but only run once a new payment method is added. Real attempts can therefore differ from any plan.
- With "Send emails when card payments fail" on, Stripe emails the customer after each failed payment. The link to Stripe's hosted page in those emails stops working once the subscription is canceled or unpaid.
Sources: docs.stripe.com/billing/revenue-recovery/smart-retries, docs.stripe.com/billing/revenue-recovery/customer-emails, docs.stripe.com/billing/subscriptions/overview#subscription-statuses. Checked 21 Oct 2026.
How dates are counted
- Day 0 is the date of the first failure. "Day 7" is seven calendar days later, whatever the time zone or a daylight-saving change in between.
- Smart Retries windows of 1 or 2 months are counted as the same day of a later month, or the last day of that month if it is shorter (31 Jan + 1 month = 28 Feb, or 29 Feb in a leap year). Stripe's docs don't say how it counts a month, so treat those end dates as approximate.
- Stripe doesn't document the hour of each retry, so the plan shows dates only.
Act on each failure automatically
Failed Payment Dunning (for Stripe), n8n pack (US$34): import one n8n workflow. It verifies Stripe's signature, skips duplicate events and posts a Slack alert with the amount, attempt number and next retry. It can also email the customer a notice with Stripe's hosted pay link, which becomes a "Final notice" only when Stripe has no retry left. Self-hosted n8n only; it works alongside Stripe's own retries.
See the n8n pack · Read its test report
Deciding what a customer can still access while past_due or unpaid? Subscription Billing Kit (for Stripe) (US$19) gives your agent an access policy for all 8 subscription statuses, plus failed-payment hooks. See the Subscription Billing Kit.