← Blog

8 min read · Recovery Pilot

Stripe Smart Retries vs full recovery sequences: which actually works?

Smart Retries recovers ~20% by retrying the card. The other 80% need the customer to update something. Here's what to send and when.

Stripe Smart Retries is one of the best free features in any payment processor. It analyzes per-card-network failure patterns and retries at statistically optimal times — recovering about 20% of failed payments without you doing anything.

But it can only retry the card it already has. When the customer's card has actually expired, been replaced, or had its billing details change, Smart Retries cannot fix that. Only the customer can. And only an email can prompt them.

What Smart Retries actually does

When an invoice payment fails, Stripe enters retry mode. It waits a few hours, retries. If that fails, it waits longer and retries again. The cadence depends on the card network, the failure reason code, and historical recovery patterns Stripe has observed across all merchants.

Smart Retries recovers most cases where the bank temporarily declined (fraud flag, network issue, daily-limit-reached) — situations where the same card will work fine on a later attempt. About 20% of all failures fall into this category.

Why the other 80% needs email

Expired cards: Stripe can retry forever and the card will still be expired.

Card was replaced (e.g., after fraud detection): the customer has a new card with a new number. Stripe doesn't know.

Billing address changed (customer moved): the new address fails AVS checks. Customer needs to update.

Customer changed banks: card was closed. Customer needs to add the new one.

In every case, the action required is on the customer's side. Email is the only way to prompt that action at scale.

The 4-email cadence that works

Day 0 (immediate): friendly heads-up. Open with the specific amount and card last 4. Acknowledge that this kind of thing happens (bank fraud check, expired card, address change). One clear CTA: update card link. Sign off as a human. Reassure that access continues for now.

Day 3: gentle check-in. Reference the previous email. Keep tone empathetic — no shaming, no urgency yet. Add the non-CTA out ("if you're rethinking the subscription, just reply").

Day 7: account-changes-coming notice. Specific pause date. Specific features they'll lose. Still empathetic but factual. The urgency lever is the loss aversion, not pressure.

Day 14: final. Final attempt note. Mention data archival (gives the customer permission to walk away with grace). One last CTA, one last reply-to-talk option.

Why timing matters more than copy

You can A/B test subject lines and CTA copy all you want, but the single biggest lift comes from sending the Day 0 email INSTANTLY when the failure happens, while the customer's most recent interaction with you is still fresh. Recovery rates drop measurably for every hour of delay on Day 0.

Recovery Pilot listens to invoice.payment_failed via Stripe webhook and queues the Day 0 email within seconds. Day 3/7/14 fire from an hourly cron job that scans for due steps.