Get this template
All articles
Engineering
Product Updates
How we recover failed payments without annoying your customers
Most churn is failing cards, not leaving customers. Here’s how we win them back.

A surprising share of subscription churn isn’t customers leaving — it’s cards failing. Expired cards, insufficient funds, and overly cautious bank fraud checks quietly cancel subscriptions that people wanted to keep. Here’s how our recovery system works, and what we learned building it.
Not every decline is the same
Banks return a decline code with every failed charge. Some mean “try again later”, others mean “this card will never work again”. We sort them into soft and hard declines. Soft declines get retried; hard declines skip straight to asking the customer for a new payment method, so we don’t waste retries on a card that’s gone.
Smarter retry timing
Instead of retrying on a fixed schedule, we time retries based on what tends to succeed — for example, shortly after common paydays, or at the time of day the card was last charged successfully. Card network rules limit how often you can retry, so each attempt has to count.
Updating cards before they fail
Card networks offer account updater services that tell us when a card has been reissued with a new number or expiry date. We check them before each renewal, so many cards get updated automatically and the customer never sees a failed payment at all.
Emails that don’t feel like threats
When we do need the customer to act, we send short, plain-language emails with a one-click link to update their card — branded as your product, not ours. No scary red banners, no “final notice” on day one. You control the tone, the timing, and how long the grace period lasts.
Blog


