Cardnudge

Stripe Smart Retries vs a dunning tool

Last reviewed 2026-10-07

Before you pay anyone to recover failed payments, it is worth knowing exactly what Stripe already does for you. The answer is: more than most people assume, and it is switched on from a dashboard without writing any code. This page lays out what Smart Retries covers, where it stops, and when a separate tool is actually worth its monthly fee.

What Smart Retries actually does

Smart Retries is Stripe Billing's automatic retry engine. When a subscription or invoice payment fails, it retries the charge on a schedule chosen by a model rather than by a fixed rule. Stripe's documentation says the model uses time-dependent signals such as how many devices have presented that payment method in the last few hours, and the hour of day that works best for debit cards in a given country.

You control the envelope, not the timing. You pick a number of attempts and a window — one week, two weeks, three weeks, one month or two months. Stripe's recommended default is eight attempts over two weeks. You can turn Smart Retries off and define up to three retries of your own instead, each expressed as a number of days after the previous attempt.

Smart Retries is part of Stripe Billing, not an add-on. Stripe's Billing pricing page lists it as included. Billing itself is not free: the pay-as-you-go rate shown when we checked was 0.7% of volume processed through Billing, with tiered monthly plans available above that. If you already run subscriptions on Stripe, you are already paying this, and turning Smart Retries on costs nothing more.

The nine decline codes Stripe will never retry

This is the part most people miss. Stripe documents a list of decline codes it refuses to retry automatically, because retrying them cannot work. The scheduled attempts keep counting up, and the invoice's attempt count keeps incrementing, but no charge is actually made until a new payment method appears.

  • incorrect_number
  • lost_card
  • pickup_card
  • stolen_card
  • revocation_of_authorization
  • revocation_of_all_authorizations
  • authentication_required
  • highest_risk_level
  • transaction_not_allowed

Stripe also skips retries entirely when there is no payment method on file, when the card was issued in India, or when a Connect account has been disconnected. If a meaningful share of your failures carries one of these codes, no retry schedule on earth will help — the only path is getting a new card from the customer.

What else Stripe gives you in the same place

Retries are one of five tools Stripe groups under revenue recovery. All of them are configured from the dashboard, and Stripe states that none require code.

  • Recovery analytics: payment failure rates, recovery rates, and the customers whose payments recently failed.
  • Smart Retries: the retry engine described above.
  • Customer emails: automatic messages when a payment fails, a card is about to expire, or a payment method needs updating.
  • No-code automations: custom recovery logic, such as a different dunning flow for annual subscribers.
  • Automatic card updates: Stripe refreshes stored card details when the issuer gives the customer a new number.

If you have not switched on the customer emails, do that before you evaluate a single paid tool. A failed payment that nobody tells the customer about is the easiest recovery you will ever skip.

Where Smart Retries stops

Smart Retries is a retry engine, not a recovery programme. It decides when to charge the same card again. It does not persuade a customer to enter a new one, and for the nine codes above it does not even try.

The emails Stripe sends are Stripe's emails. They work, and for a small account they may be all you need, but they are not your onboarding flow and they are not your voice. A dedicated tool's main claim is usually here: branded sequences, in-app prompts, a recovery page that matches your product, and attribution showing which message brought the money back.

One thing we want to be straight about, because it would be easy to imply otherwise: Stripe does show you failure and recovery rates. Its recovery analytics page describes exactly that, plus a list of customers with recent failures. What that page does not describe is a breakdown of your losses by decline family, which is the thing that tells you whether your problem is expired cards or hard declines — two problems with completely different answers.

When a dunning tool is worth paying for

Stripe Billing, built inA dedicated dunning toolA Cardnudge audit
Retries failed paymentsYes, Smart RetriesYesNo
Emails the customerYes, Stripe's templatesYes, usually brandedNo
Refreshes expired card numbersYes, automatic card updatesVaries by toolNo
Failure and recovery ratesYes, recovery analyticsYesYes, as a one-off total
Breakdown by decline familyNot described in Stripe's docsVaries by toolYes
CostIncluded in BillingA monthly fee on topFree
Needs an accountYou already have oneYesNo

A separate tool starts to make sense when the money it recovers clearly exceeds its fee, and when you want the recovery flow to look like your product rather than like Stripe. At a few thousand in MRR, a tool at 49 dollars a month has to recover more than that every month just to break even, and Stripe's built-in retries will already have taken the easy wins. At larger volumes the maths flips quickly, and the branded flow stops being a vanity concern.

The honest order of operations is: turn on Smart Retries and the customer emails, measure what still leaks, and only then decide whether a paid tool is worth it. Most people skip the middle step, which is the one that tells you whether there is a problem to solve at all.

Where Cardnudge fits

Cardnudge is the middle step, and nothing else. It is a free read-only audit: you create a restricted Stripe key with three read permissions, paste it, and get one number for what failed payments cost you over the last twelve months, split by decline family, with what is still being retried kept separate from what is gone.

It does not retry anything, does not email your customers, and does not compete with Smart Retries. If the number comes back small, you have learned that cheaply and you should close the tab. If it comes back large and most of it is expired cards, you now know which kind of tool to shop for.

Questions people ask

Is Stripe Smart Retries free?
It is included in Stripe Billing at no extra charge. Billing itself is priced as a percentage of the volume you process through it — 0.7% on the pay-as-you-go rate shown when we checked on 7 October 2026, with monthly tiers available. If you already bill subscriptions through Stripe, enabling Smart Retries adds nothing to your bill.
How many times does Stripe retry a failed payment?
You choose. Smart Retries lets you set a number of attempts across a window of one week, two weeks, three weeks, one month or two months. Stripe's recommended default is eight attempts over two weeks. A custom schedule, with Smart Retries off, allows up to three retries.
Why does Stripe not retry some failed payments?
Nine decline codes are non-retryable, including lost_card, stolen_card, incorrect_number and authentication_required. Stripe also skips retries when there is no payment method on file, when the card was issued in India, or when a Connect account is disconnected. In each case retrying the same card cannot succeed, so the only route is a new payment method.
Do I need a dunning tool if I use Stripe?
Not necessarily. Stripe's built-in retries, customer emails and automatic card updates already recover a share of failed payments. A paid tool earns its fee when the extra recovery clearly exceeds the subscription cost and when you want a branded recovery flow. Measure first.

Sources

Find out your exact number

A free, read-only audit of your own Stripe account. No signup, and the key never leaves your browser.

Run a free audit

Keep reading