DunningCheck

Failed payment recovery checklist for Stripe subscriptions

Most teams set up Stripe dunning once and never test it again. Use this checklist to confirm every step of the invoice.payment_failed recovery path still works, end to end, after the last billing change.

Symptoms

  • You can't say, with confidence, what a customer sees after a card is declined.
  • Smart Retries are 'on' but nobody has confirmed the schedule or attempt count per plan.
  • Recovered payments don't reliably re-enable access in the product.

Common causes

  • Recovery was configured during launch and never re-tested after price, plan, or template changes.
  • Ownership is split: billing settings sit with finance, the email copy with marketing, entitlement with engineering.
  • Stripe shows the dunning as 'working' even when the customer-facing link is broken.

Step-by-step fix

  1. Confirm Smart Retries (or manual retry schedule) is enabled and note the attempt count and spacing.
  2. Open the failed-payment email a real customer receives and click the actual recovery link.
  3. Update a card on the hosted invoice / customer portal page and confirm the invoice marks paid.
  4. Confirm the recovered payment restores entitlement in your app within your expected window.
  5. Check that a receipt is sent and that any save-offer coupon referenced in email actually applies.
  6. Confirm the final 'all retries failed' state moves the subscription to your intended status (canceled vs paused).
  7. Record the result and re-run this check monthly or after any billing change.

Sample output

Checklist run: 12 items, 9 pass, 2 warnings (coupon mismatch, retry count drift), 1 critical (expired hosted invoice link). Est. $820 MRR exposed.

FAQ

What can I see before subscribing?

You can explore the full sample report and every guide for free. A subscription adds recurring monthly monitoring on your own Stripe account, saved run history, change alerts, and exports.

How often should I run this checklist?

Monthly at minimum, and immediately after changing prices, plans, retry settings, or email templates — those are the changes that silently break recovery.

Last updated 2026-06-16. Compiled from common Stripe Billing recovery misconfigurations.

Subscribe for monthly monitoring. Your first audit is generated today.

Your first audit shows exactly where recovery is leaking today. Monthly monitoring then catches the next break before it costs you another month of MRR.

Start monthly monitoring
Failed payment recovery checklist for Stripe subscriptions — DunningCheck