Blog/Stripe Smart Retries
Payments · Recovery basics

Stripe Smart Retries: how it works and what it can't recover

Smart Retries is Stripe's automatic retry feature for failed subscription and invoice payments. Instead of trying the card again on a fixed schedule, Stripe uses AI to pick the moments a retry is most likely to succeed, within the number of attempts and the time window you set. Here's how it works, which settings to choose, and which failed payments it can't recover.

In short: Subscription retries are set under Billing > Revenue recovery > Retries in the Stripe Dashboard. Stripe recommends 8 tries within 2 weeks, and you can set a window from 1 week to 2 months. It won't retry hard declines like lost or stolen cards until the customer adds a new payment method, and when its retries run out, Stripe cancels the subscription, marks it unpaid, or leaves it past due, depending on your settings.

What Smart Retries is

Smart Retries is part of Stripe Billing. When a payment on an invoice fails, Stripe doesn't stop at the first decline. It schedules more attempts, and Smart Retries decides when each one happens. As Stripe's docs put it, it "chooses the best times to retry failed payment attempts to increase the chance of successfully paying an invoice."

It works on invoices: the ones a subscription creates each billing period, and one-off invoices set to charge the customer automatically, as long as auto-advance is on and retries are turned on for one-off invoices. Stripe's Smart Retries docs cover invoices only and don't describe using it on card charges made outside of an invoice.

There's no separate fee for it. Stripe lists Smart Retries as included on its Billing pricing page, and its Invoicing pricing page lists smart retries as included for one-off invoices too.

How Stripe decides when to retry

A fixed schedule tries the card again after a set number of days, whatever else is going on. Smart payment retries like Stripe's time each attempt using signals that change over time. Stripe's docs give two examples: how many different devices have presented the same payment method within a recent number of hours, and the time of day a payment is most likely to go through. Debit card payments in some countries, for instance, may succeed slightly more often at 12:01 AM local time.

In a January 2024 engineering post, Stripe said the model is trained on billions of data points from across its network, using more than 500 attributes. Stripe's Billing features page says Smart Retries has helped businesses recover 57% of recurring payments that originally failed, on average. Stripe doesn't publish how that figure is calculated, so treat it as a rough benchmark rather than a prediction for your account.

Retry settings: the default and your options

You control two things: how many times Stripe retries, and the longest it keeps trying. The window can be 1 week, 2 weeks, 3 weeks, 1 month, or 2 months. Stripe's recommended default is 8 tries within 2 weeks.

If you'd rather set the timing yourself, you can turn Smart Retries off and use a custom schedule instead. A custom schedule allows up to three retries, each a set number of days after the previous attempt.

Stripe Billing also includes up to three automations, which can apply a different retry policy to different groups of customers. Depending on the trigger, you can target them by invoice amount, product, subscription interval, or metadata. When an automation runs, it overrides your general retry settings for that payment.

Which card a retry charges

Each retry charges the first payment method Stripe finds, in this order: the subscription's default payment method, the subscription's default source, the customer's default payment method for invoices, then the customer's older default source. This matters when a customer updates their card. If the subscription has its own default payment method and only the customer's default gets updated, retries keep charging the old card.

How to set up Smart Retries

  1. Open your retry settings

    In the Stripe Dashboard, go to Billing > Revenue recovery > Retries for subscriptions. For one-off invoices, the retry settings are under Settings > Billing > Invoices, in the advanced invoicing features section. Stripe renames Dashboard menus from time to time, so the labels on your account may differ slightly.

  2. Choose Smart Retries or a custom schedule

    Set the number of retries and the maximum window. Unless you have a specific reason to change it, start with Stripe's recommended 8 tries within 2 weeks.

  3. Decide what happens when retries run out

    In your failed-payment settings, choose whether the subscription is canceled, marked unpaid, or left past due. The next section explains what each one does.

  4. Turn on failed-payment emails

    With Send emails when card payments fail turned on, Stripe emails the customer after each failed payment with a link to update their payment method. Stripe can also email customers a month before their card expires, which heads off some failures entirely.

What happens when retries run out

Once the last retry fails, Stripe makes no more attempts on that invoice. The subscription then moves to the outcome you chose:

  • Cancel the subscription. Its status becomes canceled, and Stripe turns off automatic collection on its unpaid invoices. A canceled subscription can't be restarted, so winning the customer back means starting a new one.
  • Mark it unpaid. New invoices keep being created as drafts, but Stripe makes no payment attempts. Stripe suggests revoking the customer's access while the subscription is in this state.
  • Leave it past due. The subscription stays past due, and new invoices keep being created and charged under your retry settings.

For one-off invoices that charge automatically, Stripe can mark the invoice uncollectible once its retries run out, depending on your invoice settings.

None of these outcomes recovers the money. The Stripe-hosted link in the failed-payment email, where the customer can update their card and pay, stops working once the subscription is canceled or marked unpaid. From that point, recovering the payment is up to you.

What Smart Retries can't recover

Retries work for temporary declines, like a card that's short on funds today and fine next week. They can't help when the problem is the card itself. Stripe doesn't run a retry at all when:

  • The issuer returns a hard decline. Stripe lists nine decline codes it can't retry automatically, including lost_card, stolen_card, pickup_card, incorrect_number, and revocation_of_authorization. The retries stay on the schedule, but none of them runs until the customer adds a new payment method.
  • The payment needs authentication. A payment that fails because the customer didn't complete 3D Secure is treated as waiting for authentication, not as failed, so your retry settings don't apply. Stripe can send the customer a link to confirm the payment instead.
  • There's no payment method on file, the card was issued in India, or the Stripe Connect account has been disconnected.

Expired cards are a gray area. Stripe doesn't list expired_card among the codes it won't retry, but its decline documentation says the customer needs to use another card. Stripe's automatic card updater can fill in a reissued card's new details when the issuer takes part in the card networks' update programs. That's common for US cards but not guaranteed, and Stripe says you can't tell in advance which cards are covered. When the updater can't help, retrying the old card won't either.

Bank debits are opt-in. According to Stripe's retry docs, retries for local payment methods like ACH Direct Debit and SEPA Direct Debit are off by default. You can turn them on for each method, but only insufficient-funds failures are retried, and the limits are tight: up to 2 retries within 40 days for ACH Direct Debit and 2 within 30 days for SEPA.

Does Square have Smart Retries?

Not in the same way. Square doesn't document any AI-timed retry feature, and its current developer docs don't describe automatic retries for subscriptions. When a Square subscription payment fails, Square emails the customer an invoice with a link to pay it. While the subscription is active, Square keeps sending an invoice each billing period, whether or not earlier ones were paid.

When an automatic payment on a Square invoice fails, Square turns off autopay for that invoice, notifies you, and emails the customer a payment link. Its help center says declined automatic payments on recurring invoices aren't retried. We compare the two processors side by side in why Stripe and Square's retries fall short.

Smart Retries FAQ

Does Smart Retries cost extra?

No. It's included with Stripe Billing, with no separate fee. Stripe Billing itself has its own pricing, based on your billing volume. One-off invoices fall under Stripe Invoicing's pricing instead, and its pricing page also lists smart retries as included.

How many times does Stripe retry a failed payment?

As many times as you set, within a window of 1 week to 2 months. Stripe recommends 8 tries within 2 weeks. If you use a custom schedule instead, you can set up to three retries.

Does Smart Retries work on one-off payments?

It works on one-off invoices that charge the customer automatically, as long as auto-advance is on and you've turned on retries for one-off invoices. Stripe's Smart Retries documentation covers invoices only, not card charges made outside of an invoice.

How can I tell if Stripe is still retrying a payment?

Each failed attempt sends an invoice.payment_failed webhook, and its attempt_count shows how many attempts have been made. The invoice's next_payment_attempt field shows when the next retry is scheduled. If you use automations, it's set in invoice.updated events, not invoice.payment_failed. After a hard decline, scheduled retries don't run until there's a new payment method.

Should I use Smart Retries or a custom schedule?

For most businesses, Smart Retries with Stripe's recommended default is the simpler choice, and it can make more attempts than a custom schedule. A custom schedule makes sense when you have a specific reason to control the timing, such as matching when most of your customers get paid.

Recovering what Smart Retries leaves behind

Smart Retries handles temporary declines well, and there's no reason to replace it. What it leaves behind are hard declines, reissued cards the updater didn't catch, and subscriptions that ended up canceled or unpaid when the retries ran out. Recovering those takes a message asking the customer to update their card and pay, or a person on your team reaching out.

That's the gap Recoura fills. It connects to your Stripe account and steps in only after Smart Retries has finished. It flags what's still unpaid, checks it against your live Stripe data to confirm it's still owed, and then sends the customer a one-click invoice to pay, either automatically on a schedule you set or by hand for the accounts that deserve a personal touch. See how the two recovery modes work, or work out what failed payments are costing you first.

Back to all articles

Recover the revenue your processor gave up on

Connect Stripe or Square in minutes and turn on recovery when you're ready. 20% off subscription plans + 14-day free trial.

Cancel anytime