Stolen Card Decline Code: The One You Never Retry (and How to Save the Customer)
Stolen card is a hard decline: never retry it. When the card updater saves you, and the email that recovers the rest.

A stolen card decline means the card number you have on file has been reported stolen and permanently killed by the issuing bank. In Stripe it shows as stolen_card, and it is the hardest of the hard declines: the number is dead, it will never work again, and no retry schedule, card updater prayer, or wishful thinking changes that.
But here is the part most guides skip. The customer behind that card is usually still yours. They did not cancel. They lost a wallet or spotted a weird charge, called the bank, and got a replacement card in the mail. Your subscription was collateral damage. Handled well, this is one of the most recoverable failure types there is.
What actually happened to your customer
Put yourself in their week. They noticed a charge they did not make, or their physical card disappeared. They called the bank, the bank froze everything, killed the number, and started printing a new card. Your customer spent zero seconds thinking about your subscription. They will not think about it until you ask them to.
This framing matters because it tells you who you are emailing: a loyal subscriber mid-hassle, not a fraudster, not a churner. The recovery email that works here reads like a helpful heads-up from a person, not a collections notice.
Why you never retry this one
With soft declines, retries are your engine. With stolen_card, every retry is a guaranteed failure hitting a dead number. You burn attempts from your network retry allowance (Visa caps you around 15 per 30 days, Mastercard about 35), you accomplish nothing, and persistent retries on dead card numbers are exactly the kind of behavior issuer monitoring systems notice.
If your dunning setup retries every failure on the same schedule, this is the code that exposes it. A code-aware system stops retrying stolen cards immediately and moves straight to customer contact.
The card updater: your silent rescue
There is one automatic path. When the bank issues the replacement card, it often reports the new details to the card networks' account updater services. Stripe subscribes to these. If the bank participates and reports promptly, the card on file refreshes to the new number, your next renewal succeeds, and nobody ever knows there was a stolen card involved.
Do not build your plan on it, though. Coverage depends on the issuer, the timing is outside your control, and the update can arrive after your charge already failed. Treat the updater as a bonus, not a strategy. Our breakdown of Stripe's card updater covers the mechanics in detail.
The email that recovers a stolen card
Since retries are out, the entire recovery rides on one message. Three rules make it work:
- •Send it fast. The customer is mid-card-replacement and already updating cards everywhere. Catch them while that chore is fresh and you get bundled into it.
- •Never say stolen. From their side, nothing about your service was stolen. Say their card on file needs updating. Accusatory or alarming language poisons a recoverable moment.
- •Make the fix tiny. One link, thirty seconds, new card details, done. The smaller the ask feels, the faster it happens.
Something like: hey, your card on file stopped working, probably a replacement on the way, here is the link to add the new one so your account stays active. Warm, short, zero drama. This is also where the sender matters more than anywhere else in dunning. A founder's name in the from line gets this email opened during a week when the customer is drowning in bank notifications.
A subtle point on tone: this customer just dealt with their bank, possibly disputed charges, and is updating payment details across a dozen services. The last thing they need is a billing email that adds stress. The businesses that recover these customers fastest are the ones whose email feels like the easy part of an annoying week. One link, no login wall if you can avoid it, no warning language. Helpfulness is the entire conversion strategy.
The timing window nobody talks about
A replacement card typically arrives within five to ten business days, and the customer spends that window updating the services they care about most. Streaming, phone bill, gym, the utilities. That window is your opportunity, and it closes much faster than most founders expect. If your first email lands two weeks after the failure, the customer has already finished their card-update chores, mentally filed your service under handled or forgotten, and moved on.
A simple cadence works well here: a friendly heads-up on day one, a short follow-up around day four, and a final note around day nine mentioning what happens to the account if the card is not updated. Three touches, each one shorter than the last, each one from a person. This mirrors the recovery sequence structure we recommend for all hard declines: escalating gently, never shouting.
One more timing detail: if the card updater does its job mid-sequence and a retry succeeds, stop the emails immediately. Nothing burns trust like a day-seven final notice for a charge that succeeded on day five. Your system should treat a successful payment as an instant stop signal, which sounds obvious and is violated by a surprising number of dunning setups.
The fraud footnote
One edge case worth naming: occasionally the stolen report is real fraud touching your business, like a card used by someone other than the cardholder. That is rare for established subscriptions with billing history, since a renewing charge with months of successful payments behind it is not a fraud pattern. If a brand-new signup fails with stolen_card, treat it differently and do not chase it. Context is everything.
It also helps to know what your dashboard looks like when this happens at scale. In a typical small SaaS, stolen_card and its sibling lost_card show up as a small but steady slice of failures, a few percent of declines in most accounts, spiking after holiday seasons when card fraud reports climb. Because they never self-recover, they punch above their weight in churn terms unless your email flow catches them.
One last operational note: watch your Stripe retry settings. Stripe's own Smart Retries are intelligent about soft declines, but a stolen card should be excluded from any retry logic entirely, whether you handle retries natively in Stripe or through a dunning tool. Check that your setup reads the decline code before scheduling attempts. If it does not, that is worth fixing this week, before the next replacement-card season.
For everyone else, the math is simple: fast personal email, no retries, card updater as backup. That combination recovers a large share of what looks, at first glance, like your scariest decline code, and it does it quietly, without burning a single precious retry attempt.
This is the code-aware approach I built into StayPaid: hard declines skip the retry queue and go straight to a personal recovery email that you approve before it sends, and a successful payment stops the sequence instantly. Stolen cards feel like a crisis. In a well-run dunning flow, they are a 30-second card update away from being a non-event, and the customer stays exactly where they wanted to be: subscribed, and undisturbed.
FAQ
Should I ever retry a stolen_card decline?
Never. Stolen card is a hard decline: the issuer has killed the card number permanently, and every retry attempt fails by definition. Worse, retrying stolen cards counts against your network retry allowance and looks bad to issuers. The only path is the customer adding their new card.
Does a stolen_card decline mean my customer committed fraud?
No, almost never. It means the card number was reported stolen, usually by the cardholder after losing a wallet or spotting suspicious charges on an unrelated purchase. Your subscriber is typically a victim of the situation, not the cause. Treat the email accordingly.
Will the card updater fix a stolen card automatically?
Sometimes. When the bank issues a replacement card, it may report the new details to the network's account updater service, and Stripe refreshes the card on file silently. Coverage is not universal, so always pair it with a customer email rather than waiting and hoping.
How is stolen_card different from lost_card?
Mechanically they are identical for you: both are hard declines, both mean the card number is dead, both require new card details. The distinction matters only to the issuer's fraud department. Your recovery playbook is the same either way.
Keep reading
Robert
Founder at StayPaid
Want to recover failed payments like a founder?
Start Free — First 3 recoveries