Are you growing a business based on recurring revenue?

Looking for ways to reduce churn?

Have more than 200 subscribers and/or are growing fast?

If so, we have good news: it’s *highly profitable* to go beyond basic dunning.

With any early subscription company’s growth, failed payments are an annoyance that quickly snowballs into a huge headache for anyone who understands the full extent of the problem.

When managing failed payments at scale, you can’t expect a checkbox setting or add-on tools to handle the complexity of failure reasons, customer needs, and subscription renewals.

Losing good customers to payment issues is beyond frustrating, and it’s a cash flow killer.

Whether it’s friction that forces re-evaluation of your product, email deliverability issues, or a myriad of edge cases that fail to get subscriptions back in the green, a lackluster dunning setup for managing involuntary churn is extremely costly and dangerous.

And the losses compound month-over-month-over-month-oh my god we worked so hard to acquire these customers and where are they going…

It becomes a sneaky revenue leak that creeps up on you. As we’ll show, the investment required to solve this problem correctly pays for itself over the long term, many times over.

In this detailed guide we’ll show you how to fight involuntary churn like a real pro.

Dunning Sounds Funny

No joke, some companies Churn Buster works with can afford annual salaries with the revenue they save.

The math is simple: for every dollar of MRR lost per month, multiply by 78.

$1 + ($1 +$1) + ($1 + $1 + $1)…

This is the annual revenue cost, if you’re retaining customers for 12 months more or less.

Dunning At Scale

For scrappy startups, the task of following up with past-due payments is usually done manually. A quick email or phone call once or twice a week is a distraction, but not painfully disruptive to an employee’s workflow.

Then — when a company has grown to 200 subscribers or so — manual follow ups become a never-ending chore.

Most people look to automate some emails at this point. And as with all things, there’s an easy way to do it… and a right way to do it.

Based on years of experience in this space, we’ve put together this 10 step guide for air-tight, bulletproof, sleep-easy-at-night dunning. Aka best practices for contacting customers, updating credit cards, and resolving payment issues.

1. Pre-dunning: don’t do it.

Yeah, just don’t.

dunning and payment related churn and failed payments

Years ago, it was good practice to warn customers 30 days, 15 days, 3 days before their card expired. Grandpa called it “pre-dunning.”

The experience felt spammy and aggressive, but you could get in front of billing dates before a payment inevitably failed, and service was interrupted.

Today, Stripe, Braintree, and many other payments platforms, include a process called Card Updater. It communicates with Visa, MasterCard, and other card issuers to update expiration dates automatically. It’s not even fully implemented worldwide, and already effective for over 70% of cards that look like they’re going to expire.

Yeah, it’s freaking AWESOME for subscription payments.

Use Stripe? Check out how Card Updater gets ahead of payment failures:

You will see many like this:

See that “Source: Automatic” bit? That’s card updater at-work! 💳

Why does this matter?

See that “Source: Automatic” bit? That’s card updater at-work!

Why does this matter?

Imagine we are “pre-dunning,” sending customers emails with big red notifications that say YOUR CARD WILL SOON EXPIRE!

For every 10 customers we email, 7 are going to be auto-updated. The payment will not fail. We are being aggressive and spammy, instead of warm and fuzzy.

In a world without pre-dunning: these 7 payments clear without an issue, and the recurring billing doesn’t skip a beat. Seamless and low friction, as subscriptions are designed to be.

Interrupting 70% of these customers provides zero value at best.

If you’d like to get in front of your customers before their billing date, we’d suggest friendly messaging that adds value, and letting Card Updater work its magic.

2. Don’t be trigger happy ✉

Most basic dunning is done “the easy way.”

The easy way = triggering emails every time a payment fails. Usually, this means wiring up emails to a failed payment webhook.

With emails sending each time a payment attempt fails, you have very little control over optimizing the recovery process. All the big data and machine learning in the world won’t be able to help if you can’t assign an emailing schedule that’s independent from your payment reattempts.

Churn Buster recovery campaigns funnels are totally independent from the payment schedule, which has more advantages we’ll get to later.

However you manage your system, we strongly encourage you to take the extra time to do this. It’s a big project, but highly recommended if passive churn optimization is important to you.

Here’s one example: by our records, up to 40% of payment issues can be resolved within the first few days—21% on average—simply by allowing for card retries *before* sending emails.

It may seem strange that the “hard way” includes a process for not doing something (no emails are sent while cards are retried). But good design knows when to get out of the way.


The success of any subscription model relies on continuity, so don’t intervene with a mission critical message (one that’s demanding a credit card to continue) until you ACTUALLY NEED TO.

Honor the experience of your customers. If you want to send them something, remind people how how much they value your existence. Later, smack them with a failed payment notice if you gotta.

And the more your company grows, the more critical this will be.

Side benefit: By allowing time to resolve payments via reattempts, your recovery metrics will actually make sense. When emailing right away for a card update, there is no way to separate necessary updates from frivolous ones.

Doing nothing when payments fail isn’t an option, but doing nothing for the right amount of time… that’s what a bulletproof system will do.

3. Optimize Card Update Pages 📱

The process of updating billing info needs to be fast and easy for your customers.

Especially at scale, *any* friction at this critical touchpoint will amount to losses over time.

You may think customers will find a way to update their card if they value your service, but that’s not always the case. People get busy or go on vacation, they leave their job at the company, or if you’re B2B you could be dealing with multiple points of contact who may not see the value/usage of your product.

Company credit cards, manager authorizations, and other internal operations of the customer’s company all find their way into the updating process. So remove the risk, and make it easy.

  • Use mobile-responsive pages: Over 70% of updates happen on mobile devices. If your card update pages aren’t mobile-friendly, you risk losing these people to simple frustration when a form doesn’t load correctly.
  • Bypass the log-in: Again, simplicity and ease of use are key on your card update pages. If you ask a customer for a password, and they don’t immediately have access to their account, their churn risk gets much, much higher.
  • Enable Instant Verification: Verify payment method on-the-spot to improve recovery rates. Churn Buster notifies customers while still on-page if the payment fails, so they can try again right away. When you have the attention of the account owner, don’t let them leave without a successful card update.
  • Encrypt the page: Keep your customers and their information safe. If possible, pass payment info directly to the payment processor, never allowing it to touch your servers. As an extra precaution, Churn Buster Capture links also have a built-in HMAC signature preventing attackers from determining the URLs of billing forms. Each signature is built using customer-unique keys, and an off-site encrypted key.
  • Check-in on your pages: You never want to send a faulty card update page to a customer, it’s a massive load of friction on their experience. Create a schedule to check the functionality of those pages and avoid a massive headache.

Read more about Churn Buster’s Card Capture Forms here.

4. Ensure Subscriptions Get Reactivated ✅

Specifically with Stripe—check with your payment processor on this—at the end of the retry schedule, a customer can either be marked as unpaid or canceled.

Depending on your retry settings, this could happen anywhere from day 3 after the initial failure, or day 22. You can review your settings here:

Marked Unpaid:

After a subscription is marked as unpaid, Stripe won’t automatically reattempt payment of that invoice.

So let’s say it’s marked unpaid on day 9. When a customer updates their card on day 10, they will have a new card on file, BUT their subscription won’t have an automatic payment attempted.
Let that sink in for a second… No payment attempted.

We work with companies that have monthly payments exceeding $1000. Can you imagine that vanishing across multiple accounts at scale?

And the worst part: future invoices will continue to get generated, but future payments won’t be attempted.

So you’re left with a valid payment method, a happy customer, and no revenue. This is the purest definition of involuntary churn, or payment churn—aka the churn most people don’t know they have.

Marked Canceled:

This scenario isn’t much better.

Let’s assume the same schedule: subscription canceled on day 9, card updated on day 10. The new card will be stored, but since there is no subscription anymore, payment won’t be attempted and future renewals won’t occur.

In either case, it may even look like you saved the customer depending on your reporting tool. But they’ll never pay you again. More formally known as Ghost Customers.

At early stage, you should manually bring subscriptions back into an active state following a late card update. When this becomes too labor intensive, you’ll need to write code or automate handling of these scenarios.

Read more about subscription reactivations here. 

5. Collect on Unpaid Invoices 💰

Whenever a card is updated, decide how far back you’d like to go for collecting unpaid invoices. Beyond re-activating the subscription, you can also collect for any invoices that went unpaid in that time frame.


Some companies like to collect all unpaid invoices, and at Churn Buster our default look-back is 30 days. And some prefer to just waive the balance and move on.

The specifics depend on your business model, so make sure you put thought into this and get set up with the proper custom solution.

And definitely set the right expectations! You don’t want customers to be surprised when they return to you seven months later, and get charged seven monthly payments of $100.

6. Plug Leaks 🔍

There are many, many, many various edge cases that can result in revenue churn. Here are a few worth considering, particularly if you are high-growth or at-scale:

  • What happens if your payment processor’s API is temporarily down?
  • How will customers with multiple subscriptions be handled? Customers with multiple customer IDs? Customers with discounts? In-trial?
  • If a customer’s email address changes in your app — does it also change in your payment processor?
  • How will you be tracking email deliverability?
  • What happens when your company contact changes jobs?
  • If a customer updates their card multiple times, will they be billed multiple times?
  • Will payment be initiated if a customer updates their card after a subscription has been marked as canceled/unpaid?
  • How far back will you collect on delinquent invoices? When collecting on multiple invoices, will you get notified of large balances so you can personally manage the customer experience?
  • (Stripe-specific) Will an invoice be auto-paid if it’s already been closed? What if it’s been forgiven? Will emails continue to be sent?

Churn Buster solves for these scenarios, but it’s a job that never ends. As a fact of life, there will always be more edge cases—it’s important to ask the right questions and evolve your dunning system as new information comes to light.

7. Track the right metrics 📊

Performance visibility is usually missing from any in-house build.

And for those with dashboards provided, poorly attributed metrics can create a misleading picture of where value is being created.

Note: for services charging fees based on performance, you should understand how performance attribution works.

Without a clear picture of what’s happening, optimization becomes extremely difficult as you grow. Churn Buster gives you deep visibility into every customer and their campaign history, so you can recover as much as possible, especially when manual intervention is required.



And beyond performance stats, it’s important simply to know what’s going on with your customers experiencing payment issues.

Here are some good things to know:

  • Who is currently past due? (failed a payment and has not been resolved or considered churned)
  • Where is each person in your “funnel?” (i.e. emailed 3/5 times, next email on Friday)
  • When a funnel ends in a “win,” what was the cause? Did they update their card? Was that before or after you emailed them? Was it reattempted successfully?
  • Are emails getting delivered/opened?
  • Are your card update pages loading reliably?

These metrics won’t always be immediately actionable. But over time you’ll get to know your business better and that’s always a good thing.

For example, if you see a gradual drop in card reattempt successes, you may want to drill down to a root cause. Are more customers signing up with pre-paid debit cards? Are banks flagging your charges as high-risk for some reason?

Or if your emails aren’t being opened. Have you set up DKIM/SPF records to authenticate the emails? Are your subject lines too aggressive, or too passive? Are emails being flagged as spam?

In addition to understanding your business better,and having the ability to drill down into potential issues, you’ll be able to trust that the system is working as expected without relying on blind faith. When you’re emailing thousands of people about billing issues — you‘ll enjoy knowing that things are working as expected.

8. Prioritize Regular Maintenance 🔧

A basic system can be fun to build as a one-time project, but who will keep the gears greased?
With all this revenue at-risk month after month, simple oversights can be costly when they take months to discover.

Once you’ve set up your system, routinely watch for broken links, pages that aren’t responding, deliverability issues, updates in your payment processor API, etc. What’s measured can be improved, so when you notice a failure point you’ll be able to jump in and fix it.

Automated monitoring systems obviously can help take the load off your team.

Slack alerts are a great way to monitor your process and get notified of issues ASAP. Again, just make sure someone is watching the alerts.

Beyond basic maintenance, here’s an example of something to watch for:

Customer updates card, card gets declined, customer doesn’t try again.

Depending on your setup, you may automatically reset and start emailing them the same messaging all over again. Or you might see a card update and remove them from future outreach. In either case you may want to jump in and offer help to this customer who is making an effort to pay you.

If it becomes a regular problem, tune up your system so customers are treated to the right experience automatically.

9. Set Up Emergency Handling

UX issues aside, some leaks will sink you more quickly than others. These are stop-everything moments that you want to know about immediately, instead of next time you check in on things.

Establish a process of alerts for your payment processor API uptime, and monitor your dunning system for critical failures.

  • Did a recent code push take down your card update pages? Can you detect who tried to access those pages during the downtime?
  • When your email service provider has downtime, or their queues back up…are emails still getting sent out?

If these kind of hiccups routinely happen without emergency handling, you will routinely miss out on opportunities to renew subscriptions.

10. Follow up!

If you ask Steli from to give you one tip, it’d likely be, “Follow up ’til you die!!”
And he’s right, too many people give up early whether they’re sending sales emails, or retention emails.

Our brains tell us that the person we’re working with is no longer interested, they think we are harassing them with too many emails. But it’s rarely the case. With dunning emails, you can expect a spam rate of well under 0.05%.

We see card updates come in at every stage of our process, and we’ve had to lengthen our recovery funnels to retain a higher percentage of customers.

People have long to-do lists, they go on vacation, they require approval to use the company card, they are waiting on a reissued card, they get distracted… and all they often need is a nudge.

Follow. Up. Relentlessly.

If you made it this far, congratulations! You now understand more about managing failed payments than perhaps you ever wanted to know.

As you continue to grow, optimizations have an exponentially higher long-term impact on LTV.
If you’re interested in customer retention and recognize the impact it can have, there is no reason to wait. Take action today and see the benefits compound with each passing month.

Deeper margins and more LTV that can be fed back into customer acquisition. Fuel that growth engine, and make more money to build a better product and create value for everyone.

Interested in seeing what Churn Buster can do for your business? Let’s start making progress on failed payment recovery.

Ken Johnson

Author Ken Johnson

Riding the first wave of subscription ecommerce, Ken co-founded in 2009. He now resides in San Diego, dedicated to client success at Churn Buster and learning how to lose at tennis and poker.

More posts by Ken Johnson

Leave a Reply