Skip to content

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.

Developer checking a payments event log late at night

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

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

    Connect and import

    RevRescue reads open invoices, subscriptions and recent payment events, then shows everything currently at risk.

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

Find my lost revenue