How to automatically recover failed payments in Stripe

A payment fails in Stripe. Stripe retries a couple of times. If it doesn’t work, the subscription is canceled and the customer disappears. Not because they wanted to leave, but because nobody did anything.

That’s the reality for most subscription businesses. Failed payments are the biggest source of avoidable churn, and most are resolved if you act fast and smart.

The problem with letting Stripe handle it alone

Stripe has Smart Retries: automatic retries that pick the best moment to charge again. They work, but they recover at most 30%-35% of failed payments. The other 65%-70% is lost.

Why? Because Smart Retries only retry with the same card. If the card is expired, has no funds, or is blocked by the bank, retrying 10 times won’t change the result. You need a different approach.

The three recovery layers that work

Layer 1: retry with backup cards

Many customers have more than one card saved in Stripe. If the main one fails, the second or third might work. Stripe doesn’t try the backups by default — it only retries the default card.

A system that automatically tries all of the customer’s cards recovers a significant percentage of payments that Smart Retries can’t touch.

Layer 2: send a payment link to the customer

When all cards fail, the next step is informing the customer. Not a generic email saying «your payment failed» — an email with a direct link where the customer can pay with one click.

Stripe automatically generates a payment URL (hosted_invoice_url) for every open invoice. The customer opens it, sees the amount, pays with any method (new card, Apple Pay, whatever), and the invoice closes. No registration, no searching the web, no friction.

The conversion rate of these emails with a direct link is far higher than Stripe’s generic dunning emails.

Layer 3: persist as long as possible

One email isn’t enough. If the customer doesn’t pay on the first attempt, you need a sequence:

  • First email the day it fails.
  • Second email a few days later.
  • Repeat every few days while Stripe keeps the invoice open.

The key is not giving up too early. Many customers pay on the second or third reminder — they simply didn’t see the first one or didn’t have time to deal with it.

The complete automated flow

When everything is automated, the flow is:

  1. Payment fails in Stripe.
  2. System retries with main card and backups.
  3. If everything fails → email to customer with payment link.
  4. Alert to owner (email and/or Telegram).
  5. Cron repeats the cycle every few days (configurable).
  6. Customer pays → invoice closed, subscription active, «payment recovered» alert.
  7. Stripe closes the invoice → payment leaves the list automatically.

You don’t have to do anything. The system handles recovery while you focus on your business.

How much recovery to expect

With all three layers working:

  • Smart Retries only: 30%-35% recovery.
  • Smart Retries + backup cards: 40%-45%.
  • Smart Retries + backups + payment link: 50%-65%.

The difference is significant. In a business with 20 failed payments a month at $25 each, going from 35% to 60% recovery is $125 more per month. In a year, $1,500.

What you need to implement it

You don’t need to code anything. A system that connects to your Stripe and manages all three layers automatically:

  • Configure retry frequency (daily, every 2 days, every 3 days, weekly).
  • Enable or disable payment link sending to customers.
  • See in the dashboard which payments are pending, which were recovered, and how much revenue you’ve saved.

Setup takes 2 minutes. Recovery lasts as long as the business exists.

The long-term impact

Recovering failed payments isn’t just a monthly number. Every customer you save is a customer who keeps paying month after month. The compound effect of retaining 5 more customers per month shows up in MRR 6 months later.

And beyond money: a customer whose payment problem was solved without them having to do anything has a better opinion of you than one who never had a problem. The experience of «my payment failed but it sorted itself out» builds loyalty.


Stripe Control automates all three recovery layers: retries with backup cards, payment link emails to customers, and instant alerts. Set it up in 2 minutes from your dashboard.


Keep reading