Creator DunningSign in

Guide

Why subscription payments fail on Stripe, and what actually recovers them

Roughly one in ten renewals fails, and most of those subscribers never meant to leave. Here is what is going on underneath, and what moves the recovery number.

Updated September 2026

What a failed renewal actually is

When a subscription renews, Stripe creates an invoice and tries to charge the card on file. If the bank says no, the invoice stays open, the subscription moves to past due, and Stripe fires an invoice.payment_failed event. The subscriber is still subscribed at this point. Nothing has been cancelled; the money simply did not arrive.

Industry benchmarks put the failure rate for recurring card payments at around 15%, and 20–40% of all subscription churn is this kind of involuntary churn rather than someone choosing to cancel.

The reasons, in rough order of frequency

Expired or replaced cards

Cards expire, get lost, get replaced after a fraud alert. The old number stops working and no retry will ever fix it. Card networks offer account updater services that Stripe uses automatically, which fixes a share of these silently, but not all, and never for cards issued by banks that do not participate.

Insufficient funds and spending limits

The most common soft decline. The card is fine, the money is not there today. This is the case retries are built for: try again after payday and it often goes through.

Bank-side risk rules

A bank may decline a recurring charge because the customer travelled, because the amount changed, or for reasons it never explains. These show up as generic "do not honor" declines and are hit or miss on retry.

Hard declines

Stolen card, closed account, invalid number. Stripe stops retrying these because retrying cannot help. Only the customer can fix it by giving you a new card.

What Stripe does on its own

Stripe Billing's Smart Retries re-attempt soft declines at times its model thinks are most likely to succeed, up to eight times over two weeks by default. Stripe also offers an optional failed-payment email, off by default on many accounts, that comes from a generic sender. Stripe reports that Billing users recover around 55% of failed payments overall, but an independent analysis of more than 200 consumer-facing accounts found 25–35% for B2C businesses once you strip out B2B, and Recurly's own data shows the same split: 34.6% recovery for B2C versus 53.5% for B2B.

Creators sell to consumers. That gap is the whole opportunity.

What recovers the rest

Retries only help when the card might work again. Everything else needs a human to act, and humans act when someone they recognise asks them to. The setups that reach 70–85% recovery combine three things:

A prompt, personal email. Sent within minutes of the failure, from the creator's name rather than a payment processor, with the exact amount and a one-click link to update the card. Open and fix rates on these are far higher than on generic processor notices.

Follow-ups that stop when paid. One email is not enough; people are busy. A reminder every few days for about a month recovers a meaningful second and third wave, as long as it stops the instant the invoice is paid so nobody is nagged after fixing it.

A reply path. Some subscribers have a question, or want to cancel cleanly, or have a card problem they cannot solve alone. If the email's reply-to goes to the creator, those conversations happen and the relationship survives.

Doing it yourself

If you want to run this by hand: turn on Smart Retries in Stripe Billing, subscribe to invoice.payment_failed and invoice.paid webhooks, send an email from your own address with the invoice's hosted payment link, and schedule follow-ups that check whether the invoice is still open before sending. Our email templates are a good starting point for the wording.