For companies growing beyond a couple hundred subscribers, it’s highly profitable to go beyond basic dunning. Fight involuntary churn with this detailed guide.

Are you growing a business based on recurring revenue? Looking for ways to reduce churn?

Early along with any SaaS startup’s growth, failed payments are an annoyance that snowball into a big freakin’ headache.

Nothing is more frustrating than losing a good customer to a payment issue. Whether it’s friction that forces re-evaluation of your product, or deliverability problems, or a myriad of edge cases that fail to get subscriptions back in the green, a lackluster setup for managing involuntary churn can be costly even in the short term.

And the losses compound month-over-month-over-month-over oh my god we worked so hard to acquire these customers!!!… becoming a sneaky revenue leak that creeps up on you.


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.

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 workflow.

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

Most people look to automate some emails at this point.

As with all things, there’s an easy way to do it… and also a right way to do it.

Based on years of experience in this space, we’ve put together a 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.

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 the inevitable happened: failed payment, and service interruption.

Today, Stripe accounts—and many other payments platforms—include something 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.

Want to see Card Updater updating cards in your Stripe account? Check this out:

You will see many like this:


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

Why does this matter?

Let’s say we’re emailing customers with big red notifications that their card is expiring soon… For every ten customers we email, seven would have been auto-updated.

In an alternate universe without pre-dunning: the charge goes through fine, and their recurring billing doesn’t skip a beat. Seamless and low friction, as subscriptions are designed to be.

Interrupting 70% of these customers will provide 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.

Note: Churn Buster offers pre-dunning as a feature, and we have recommended it in cases where the cost of supporting a delinquent customer is exceedingly high. For example payment plans, where value has been delivered up front and money is owed as debt.

2. Don’t be trigger happy ✉

Most in-house and basic dunning solutions are set up “the easy way.”

The easy way = emails get triggered every time a payment fails. Usually this means wiring up emails to Stripe’s webhooks.

With emails sending each time a payment attempt fails, you have precious little control over optimizing the recovery process. Retention funnels are driving traffic to a conversion point similar to a marketing/sales funnel, and can be optimized similarly—if you have the flexibility to do it.

We didn’t build Churn Buster the easy way. Our retention funnels are totally independent from the payment schedule, which has more advantages we’ll get to later. It’s a big project, but highly recommended if churn optimization is important to you.

We’ve seen as high as 39% of payment issues resolved within the first few days, simply by allowing for card retries *before* sending emails.

The subscription model’s success 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.

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 📱

Over half of Churn Buster clients’ customers update credit cards on mobile devices.

When emailing customers, you need to link to a landing page so they can update their card. This step is critical, and we see a lot of sub-optimal setups. They can create a TON of friction.

Here are the key features for your landing page to perform well:

Don’t require a login to update a card.

Go ahead and assume most emails will get opened on mobile devices. Last month, 71% of ours did. Ideally, your customer will be able to click a link, fill out a simple form, and be done with it.

How important is this? Imagine your customer’s experience when they: get an email, click a link, land on a login page, try a couple wrong passwords, go back to their inbox, search for a welcome email, text themselves a reminder, get to a computer, LOG IN (woot!), navigate to your billing page, and update their payment info.

The more hurdles you put in front of them, the more potential for a leaky recovery funnel.

For the same reasons, your page needs to be responsive and mobile-optimized. Remove navigation, remove unnecessary copy. Test across as many browsers, devices, and screen sizes as you can. At this stage, it’s most important to a) show the customer this isn’t a sketchy phishing campaign, and b) display cleanly and reliably in their browser. Make it feel good.

Host a dedicated page where customers can update their card.

If you use a modal to show the form, it’s possible that other code on the page will interact/conflict with the billing code, and cause problems. If it there isn’t a conflict today, it may happen after a future website update when you least expect it. Particularly at scale, you can’t risk a faulty card update experience.

Routinely test your card update page.

We’ve seen companies update their app or marketing site, and not realize their card update page had been broken as a result — for several months! Problems like this do not scale well… and are well worth your effort to fix.

Please, make sure your page is encrypted, and don’t store credit card details on your server. Pass them directly through to your payments provider.

You may think that customers will find a way to update their card if they value your service, but that’s not always the case. Shit happens, 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.

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:


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.


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.

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.

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?

At Churn Buster we’ve solved for most of these questions. As a fact of life, there will always be more edge cases—and we’ll always be hacking away at them.

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.

For visibility to mean anything at all, it’s important to know what you are looking at.

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


  • 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 setup your system, routinely watch for broken links, pages that aren’t responding, deliverability issues, updates in your payment processor’s 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 you could 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. If you’re looking for a job, don’t close this page until you’ve written to us. 😉

Beyond $20k MRR, 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.

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