Stripe
Stripe failed payments and how to recover them
A Stripe failed payment is a charge the card issuer declined, so the invoice stays open and the subscription moves to past due. Most are soft declines like insufficient funds or temporary issuer blocks. They can be recovered by retrying at a better time, asking the customer for a new card and sending clear reminders before Stripe cancels the subscription.
What happens in Stripe when a renewal charge fails
When a subscription renews, Stripe creates an invoice and tries to charge the default payment method. If the issuer declines, the invoice stays open, the subscription status changes to past_due and Stripe fires an invoice.payment_failed event with a decline code. What happens next depends on your Billing settings. Stripe can retry on its own schedule, send its own reminder emails and, after the last attempt, cancel the subscription, mark it unpaid or leave it past due.
The decline code is the most important piece of information in that event. It tells you whether retrying makes sense at all, and if so, roughly when. Treating every failure the same way is the main reason recoverable payments are lost.
Common Stripe decline codes and what to do
| Decline code | Meaning | Retry? | Next step |
|---|---|---|---|
| insufficient_funds | Not enough balance right now | Yes | Retry near payday, remind the customer |
| do_not_honor | Issuer declined without detail | Yes, carefully | Retry at another hour, then ask for a new card |
| generic_decline | Issuer gave no reason | Yes, carefully | One or two retries, then card update |
| expired_card | Card past its expiry date | No | Card update request |
| card_velocity_exceeded | Card hit a spending or count limit | Later | Retry after a few days |
| authentication_required | Bank wants the customer to confirm | No | Send a link to complete 3D Secure |
| lost_card, stolen_card | Card cancelled | No | Card update request only |
| processing_error | Temporary error | Yes | Quick retry within hours |
Where Stripe defaults leave money on the table
Stripe Smart Retries is a solid baseline and is a good choice to leave on if you have nothing else. It picks retry times using signals across the Stripe network, and Stripe can email customers about failed payments and expiring cards. For a growing subscription business there are still gaps worth closing.
- Retry timing is set at the network level, so it does not use your own data such as when a given customer usually pays or which plan they are on.
- Reminder emails come from Stripe templates, with limited control over tone, timing and branding, and there is no SMS or in-app banner.
- Nobody on your team is alerted when a large account is past due, so a 5,000 USD a month customer gets the same treatment as a 20 USD one.
- There is no single view of revenue at risk across open invoices, expiring cards and accounts about to be cancelled.
How to recover failed Stripe payments with RevRescue
-
1
Create a restricted key
In the Stripe Dashboard, create a restricted API key with the permissions RevRescue lists during setup. No full secret key is needed.
-
2
Connect and import
RevRescue reads open invoices, subscriptions and recent payment events, then shows everything currently at risk.
-
3
Choose your sequence
Pick timing, channels and the final action. You can keep Stripe Smart Retries off so the two do not compete for the same retry slots.
-
4
Let it run
Each failure is classified, retried within card network limits and followed up by email, SMS with consent, and an in-app banner. Big accounts go to your CRM.
Keep Stripe as your billing system
RevRescue does not move your customers, prices or invoices anywhere. Stripe stays the system of record, and every successful retry is a normal Stripe charge on the original invoice. Details of the connection and permissions are on the Stripe integration page, and data handling is described on the security page.
Pricing is flat by MRR band, from 99 USD a month (49 USD billed yearly), never a percentage of recovered revenue. See the pricing page or start with a free recovery estimate. For the broader picture, read about dunning software and smart payment retries.
Frequently asked questions
Why do Stripe payments fail?
Most fail because of insufficient funds, expired or replaced cards, issuer fraud checks or temporary processing errors. The decline code on the failed charge tells you which.
How many times does Stripe retry a failed payment?
Stripe lets you set the retry window and number of attempts in Billing settings. A common setup is several attempts within one to three weeks before the subscription is cancelled or marked unpaid.
Should I turn off Stripe Smart Retries when using RevRescue?
Yes, it is best to let one system own retries. Two schedulers can retry the same card too often and run into card network limits.
Does RevRescue need my Stripe secret key?
No. It uses a restricted key with only the permissions needed to read billing data, retry invoices and update payment methods.
Can I recover payments that failed weeks ago?
Often yes, if the invoice is still open. RevRescue imports open past due invoices at setup and starts a follow-up for each.
See what your failed Stripe payments are worth
Enter your MRR and failed payment rate. The estimate takes under a minute and needs no signup.