DunningCheck

How to fix Stripe payment-failed emails that don't recover customers

If your failed-payment emails are sending but recovery is still low, the email itself is rarely the whole problem. Work through the three failure layers below — delivery, link, and entitlement — in order.

Symptoms

  • Failed-payment emails send and get opened, but the invoice stays unpaid.
  • Customers reply 'I already updated my card' yet still lose access.
  • Recovery rate dropped after you edited the template or switched email providers.

Common causes

  • Layer 1 — Delivery: emails go to spam, or Stripe's automatic emails were turned off in favour of a provider that isn't wired up.
  • Layer 2 — Link: the email points at an expired hosted invoice URL or a portal link without the update-payment-method action.
  • Layer 3 — Entitlement: the card updates and the invoice pays, but your app never re-grants access because the webhook isn't handled.

Step-by-step fix

  1. Send yourself a real test-mode failed payment and confirm the email lands in the inbox, not spam.
  2. Click the link as a customer would; verify it lets you add a payment method and retry immediately.
  3. Confirm invoice.payment_succeeded (after recovery) flips your app's access flag back on.
  4. If you use a custom email provider, confirm Stripe's automatic emails are off so customers don't get duplicates.
  5. Shorten the gap between failure and first email — same-day beats day-three for recovery.

Sample output

Diagnosis: delivery OK, link OK, entitlement FAIL — invoice.payment_succeeded not re-granting access on plan 'pro_monthly'. 1 critical fix.

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.

Should I use Stripe's emails or my own?

Either works, but pick one. The common bug is enabling a custom provider while Stripe's automatic emails are still on (duplicates) or off but the provider never wired up (silence).

Last updated 2026-06-16. Based on the three-layer failure model for dunning email recovery.

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
How to fix Stripe payment-failed emails that don't recover customers — DunningCheck