Dunning Management

Dunning Management for SaaS: Complete Guide (2026)

Dunning management is the system you build to recover failed subscription payments before customers churn. Done well, it recovers 30–60% of failed charges. Done poorly — or not at all — it silently bleeds 5–15% of your MRR every month.

By He Ze · RecoverKit · March 2026 · 10 min read
5–15%
of MRR lost to failed payments (unmanaged)
40–60%
recovery rate with a proper dunning sequence
2 hrs
optimal time to send first recovery email

Automate your dunning management in 3 minutes

RecoverKit connects to Stripe and runs the complete D+1/D+3/D+7 sequence automatically — no code, no configuration.

Connect Stripe Free →

What is dunning management?

Dunning management is the process of systematically communicating with customers after a payment failure to recover the subscription before it lapses. The term comes from "dunning" — the centuries-old practice of requesting payment from debtors — but in SaaS, it's almost always about customers whose payments failed for technical reasons, not because they chose not to pay.

The key insight: most failed payments are recoverable. Studies across SaaS billing platforms consistently show that 40–70% of failed charges can be recovered if you contact the customer promptly and make it easy for them to update their payment method.

Why failed payments happen

Understanding the causes helps you write better dunning messages:

The critical thing most founders miss

Most customers whose payments fail don't know it happened. Banks don't proactively notify cardholders about failed charges. If you don't tell them, they'll find out when their account is suddenly downgraded — at which point they're confused, frustrated, and more likely to just cancel than fix the payment.

The dunning management lifecycle

A proper dunning management system has four phases:

Hour 0 — Failure detected

Stripe fires the invoice.payment_failed webhook. Your system records the failure and starts the dunning clock. Stripe's Smart Retries also begin in the background.

D+1 — First contact (within 2–4 hours)

Send a calm, clear email. Explain that the payment failed, don't be accusatory, include a direct link to update their card. This email has the highest recovery rate of the sequence — catching customers while the issue is fresh.

D+3 — Gentle reminder

For customers who didn't act on D+1. Slightly more urgent tone, still helpful. Reiterate the card update link. Remind them what they'd lose access to.

D+7 — Final notice

Most urgent email. Specify the exact date their account will be paused. This email converts well because the consequence is real and specific. Many customers who ignored D+1 and D+3 act on D+7.

D+8 to D+14 — Subscription paused/cancelled

Stripe cancels the subscription based on your billing settings. At this point, recovery requires a reactivation flow, not just a card update. Much harder to convert.

Dunning management strategies

1. Reactive dunning (most effective)

Trigger emails immediately after the invoice.payment_failed event. This is the approach RecoverKit uses — wait for a real failure, then act fast. Reactive dunning outperforms pre-dunning because it's not annoying customers with warnings before anything goes wrong.

2. Pre-dunning (supplementary)

Some platforms send a "your card expires soon" warning 30 days before a card expiry date. This can be useful, but requires storing and monitoring card expiry data. For most indie SaaS, reactive dunning alone is sufficient.

3. Smart retries (technical, automatic)

Stripe's Smart Retries automatically retries failed charges at ML-optimised times over the next 4–8 days. This runs in the background and handles purely technical failures (temporary network issues, transient bank errors). Smart retries alone recover 10–15% of failures — but they don't communicate with your customer at all, which is why email dunning is essential alongside them.

4. In-app notifications

If your app has an in-app notification system, showing a persistent banner ("Your payment failed — update your card to keep access") doubles the touchpoints without adding more email volume. Best as a supplement to email, not a replacement.

What a good dunning email looks like

The most effective dunning emails share these characteristics:

For complete templates for each stage, see our Stripe dunning email templates guide.

Dunning management metrics to track

Build vs buy: dunning management options

Build it yourself

Requires: Stripe webhook endpoint, database for recovery state, cron job, transactional email provider, Stripe Billing Portal session generation. Estimated build time: 1–2 days. Maintenance: ongoing (deliverability monitoring, edge case handling, copy updates).

Use Stripe's built-in dunning

Stripe has basic built-in dunning (enable in Dashboard → Settings → Billing → Automatic collection). Recovery rate: 5–15%. Limitations: unbranded generic emails, no customisation, poor deliverability, no timing control.

Stripe's default emails are not enough

Stripe's built-in dunning emails are generic, sent from Stripe's domain, and often land in spam. They're better than nothing but recover 3–5x less than a properly configured custom sequence.

Use a dedicated dunning tool

Tools like RecoverKit connect to your Stripe account via OAuth, listen to payment failure events, and automatically run the D+1/D+3/D+7 sequence from your own sender. Setup takes ~3 minutes, no code required.

Common dunning management mistakes

Dunning management for different SaaS stages

Pre-revenue / early beta

Not needed yet — focus on getting paying customers first. Set a reminder to configure dunning before your first 10 subscribers.

1–50 paying customers

At this stage, you can manually track failed payments in the Stripe Dashboard and follow up personally. This gives you valuable conversations about payment friction. As soon as personal follow-up becomes tedious, automate it.

50+ paying customers

Manual dunning stops working. Automate with a tool or build your own sequence. At this scale, every percentage point of recovery rate improvement is meaningful MRR.

$10k+ MRR

Dunning management becomes a priority financial system. At $10k MRR, 10% involuntary churn = $1,000/month in recoverable revenue. Optimise your sequence, test subject lines, and add in-app notifications.

Automate dunning management in minutes

RecoverKit connects to Stripe and handles the complete D+1/D+3/D+7 dunning sequence automatically. No code. No configuration. Free during beta.

Connect Stripe Free →

No credit card required · Disconnect anytime · Read-only Stripe access