Payment Recovery

What Is Dunning? The Complete Guide for SaaS Founders

Dunning is the process of recovering failed subscription payments. For SaaS founders, it is the difference between losing 20 to 40% of churn passively and recovering most of it. Here is the complete guide.

Dunning is the process of communicating with customers to recover failed subscription payments. In SaaS, dunning typically involves automated retry logic (like Stripe Smart Retries) followed by email sequences asking customers to update their payment method. Good dunning recovers 40 to 70% of failed payments. Without it, you lose 20 to 40% of your churn to silent payment failures.

April 4, 202615 min readKailesk Khumar

What Is Dunning?

Dunning is the process of recovering failed subscription payments by communicating with customers. The term comes from the verb "to dun," meaning to make persistent demands for payment. In modern SaaS, dunning is almost entirely automated.

Here is what happens when a subscription payment fails:

  • Customer's card is charged. The charge fails (expired card, insufficient funds, bank decline).
  • Stripe (or your payment processor) automatically retries the charge using Smart Retries.
  • If retries succeed, the customer never knows anything happened.
  • If retries fail, the subscription moves to "past due" status.
  • Dunning begins: Automated emails ask the customer to update their payment method.
  • If the customer updates their card, the payment succeeds and the subscription continues.
  • If no action is taken, the subscription eventually cancels.

Step 5 is where most SaaS founders lose money. Without dunning emails, customers whose retries fail simply churn silently. They may not even know their payment failed.

Why Dunning Matters: The Numbers

Failed payments account for [20 to 40% of all SaaS churn](/blog/what-percentage-of-churn-is-involuntary). These are customers who did not choose to leave. They still want your product. Their card just failed.

At $15K MRR with 6% monthly churn:

  • Total monthly churn: $900
  • Involuntary churn (failed payments): $180 to $360
  • Without dunning: most of that $180 to $360 is lost permanently
  • With dunning: you recover 40 to 70% = $72 to $252 saved per month

Over a year, that is $864 to $3,024 in saved revenue from dunning alone. See the full math in our [ROI of dunning software](/blog/roi-of-dunning-management-software) analysis. Use the [dunning ROI calculator](/dunning-roi-calculator) with your own numbers.

How Stripe Handles Failed Payments (Default)

When a charge fails on Stripe, here is what happens by default:

Smart Retries: Stripe uses machine learning to pick optimal retry times based on historical data. They typically retry 3 to 8 times over your dunning period (configurable in Stripe settings, default is usually 3 weeks to 1 month).

Recovery rate: Stripe reports Smart Retries recover about 35% of failed payments. Our analysis of multiple Stripe accounts confirms this range. See [Stripe Smart Retries actual recovery rates](/blog/stripe-smart-retries-recovery-rate).

What happens to the other 65%? After retries exhaust, Stripe either marks the subscription as "past due" (if you configured it that way) or cancels it. By default, Stripe does not send the customer an email. There is no notification, no card update link, no follow up.

Stripe does have a built in email option, but it is:

  • Opt in (not on by default)
  • A single HTML template with Stripe branding
  • Sent from Stripe's domain, not yours
  • Generic "your payment failed" messaging

This is why [Stripe's dunning emails fall short](/blog/why-stripe-dunning-emails-dont-work) for most SaaS.

The Anatomy of a Good Dunning Email

The best dunning emails share these characteristics:

1. Plain text format

Plain text emails from a real email address (like hey@yourapp.com) get treated like personal mail by Gmail, Outlook, and Yahoo. HTML emails from billing platforms often land in Promotions or Updates tabs.

2. Sent from your domain

Customers signed up for your product, not for Stripe or Recurly. An email from "hey@yourapp.com" is recognized. An email from "billing@stripe.com" is not.

3. Direct card update link

The email should include a one click link to update the payment method. No login required. Stripe's Customer Portal API lets you generate direct card update URLs. The fewer steps between reading the email and fixing the payment, the higher your recovery rate.

4. Simple, human language

Good: "Hey, your card ending in 4242 was declined for your Acme subscription. Here is a link to update it (takes 10 seconds):"

Bad: "PAYMENT FAILURE NOTIFICATION: Your subscription payment of $49.00 has been declined. Please update your billing information to avoid service interruption."

5. Urgency without alarm

Mention what happens if they do not update (they will lose access) but do not make it sound like a threat. They are your customer, not a debtor.

The Ideal Dunning Sequence

Based on recovery data from multiple SaaS companies, here is the sequence that works best. See [how long a dunning sequence should be](/blog/how-long-should-a-dunning-sequence-be) for the full analysis.

Email 1: Day 1 after retries exhaust

Subject: Your payment for [Product] needs attention

Friendly, low pressure. "Your card was declined, here is a link to fix it." Include the card last 4 digits and the subscription amount so they know exactly what this is about.

Expected recovery: 35 to 45% of remaining failures

Email 2: Day 3

Subject: Quick reminder about your [Product] subscription

Slightly more urgent. Mention that their access may be affected. Include the same card update link.

Expected recovery: 15 to 25% of remaining failures

Email 3: Day 6

Subject: Last chance to keep your [Product] account

Final email before cancellation. Clear deadline. "Your subscription will cancel on [date] unless you update your card." One more card update link.

Expected recovery: 10 to 15% of remaining failures

Optional: Email 4: Day 10 (grace period ending)

For SaaS with longer grace periods, a final "we are about to cancel your account" email can squeeze out another 5 to 10%.

Total recovery from the 3 email sequence: 50 to 65% of failures that Smart Retries did not catch.

Combined with Smart Retries: 65 to 80% of all failed payments recovered.

See [dunning email open rate benchmarks](/blog/dunning-email-open-rates-benchmarks) and [best time to retry failed payments](/blog/best-time-to-retry-failed-payment) for optimization data.

Dunning Best Practices

Time your emails after retries, not during

Do not send "your payment failed" emails while Stripe is still retrying. If the retry succeeds on attempt 3, the customer got a scary email for nothing. Wait until retries are exhausted, then start your sequence.

Separate your dunning from your marketing

Dunning emails should come from a transactional sender (or at minimum a different "from" name). If your dunning emails come from the same address as your newsletter, customers may have already filtered that address to a folder they never check.

Include the card update link in every email

Do not make customers log in. Do not make them navigate to settings. A direct link to update their card (via Stripe Customer Portal or a custom page) converts highest.

Pre dunning: prevent failures before they happen

Email customers 30 days before their card expires. "Your card ending in 4242 expires next month. Update it here to avoid any interruption." This prevents 60 to 80% of card expiry related failures entirely.

Monitor decline types

Not all declines are equal. "Insufficient funds" often resolves on its own (customer gets paid, retries succeed). "Card expired" never resolves without customer action. [Recovery rates differ by decline type](/blog/payment-recovery-rate-by-decline-type), so your dunning strategy should too.

Dunning Tools: Build vs Buy

DIY dunning

You can build dunning yourself using Stripe webhooks (invoice.payment_failed, customer.subscription.updated) and any email sender. The logic is straightforward: listen for failures, wait for retries to exhaust, send emails on a schedule.

Pros: Free, full control, no vendor dependency

Cons: Takes engineering time, no pre built analytics, you maintain it forever

Dunning software

Tools like SaveMRR, Churn Buster, and Stunning handle dunning automatically. They integrate with Stripe, detect failures, and run email sequences.

Pros: Set up in minutes, optimized sequences based on data from thousands of SaaS, analytics dashboard

Cons: Monthly cost ($19 to $300+/mo depending on the tool)

For indie SaaS at $5K to $50K MRR, the [ROI of dunning software](/blog/roi-of-dunning-management-software) is clear: even the cheapest tools pay for themselves within the first month. SaveMRR starts at $19/mo with no percentage cuts.

See [best dunning tool under $50](/best-dunning-tool-under-50-dollars) and [best dunning tool for Stripe Billing](/best-dunning-tool-for-stripe-billing) for comparisons.

Start With a Free Audit

Before setting up dunning, know your numbers. Run the free [Revenue Scan](https://app.savemrr.co) to see exactly how many failed payments you have right now, how much MRR is at risk, and how much is recoverable. Takes 60 seconds, needs only a restricted Stripe API key.

The scan breaks down your churn into involuntary (failed payments) vs voluntary (active cancellations) so you know exactly how much dunning can save.

Sources: Stripe revenue recovery documentation (2026), Recurly State of Subscriptions (2025), Churn Buster recovery benchmarks, ProfitWell retention data, Baremetrics Open Benchmarks.

Frequently asked questions

What does dunning mean?

Dunning is the process of contacting customers to collect overdue payments. In SaaS, it specifically refers to the automated process of notifying customers about failed subscription payments and helping them update their payment method.

How does dunning work with Stripe?

Stripe automatically retries failed payments using Smart Retries (ML based timing). This recovers about 35% of failures. After retries exhaust (typically 3 to 8 attempts over your dunning period), the subscription moves to past due or cancels. External dunning tools then send email sequences to recover the rest.

What is a dunning email?

A dunning email notifies a customer that their payment failed and provides a link to update their payment method. The best performing dunning emails are plain text, sent from your domain (not a billing platform), and include a direct card update link that requires no login.

How effective is dunning?

Stripe Smart Retries alone recover about 35%. Adding external dunning emails (3 to 5 email sequence) recovers an additional 20 to 35% of the remaining failures. Combined, good dunning recovers 50 to 70% of all failed payments.

When should I start dunning?

Start your dunning email sequence after Stripe retries exhaust, not before. Sending payment failed emails while Stripe is still successfully retrying creates confusion. Most SaaS should start dunning emails 1 to 3 days after the final retry fails.

dunningpayment recoveryfailed paymentsStripeinvoluntary churn

Your Stripe has a leak. Let's find it.

Paste your Stripe key and see every dollar you lost in the last 90 days. Free Revenue Scan, 60 seconds, no card needed.

Run my free scan