Stripe failed payment settings checklistUnofficial guide based on Stripe's docs
If you bill subscriptions through Stripe Billing, a lot of failed payment recovery is already there as settings. Go through these 8 checks to confirm each one is set the way you intended. Most take no code.
The facts here come from Stripe's docs, not from running a subscription business on Stripe ourselves, and we haven't seen these screens in a live account. Setting names are written as the docs show them, so if your Dashboard looks different, go by what you see. Your ticks aren't saved or sent anywhere, so they may clear when you reload.
The checklist
In Stripe: Billing > Revenue recovery > Retries
See how subscription retries are set today. Stripe recommends Smart Retries, where its model picks the retry times, over writing your own schedule.
- The setting Stripe recommends is 8 tries within 2 weeks. The available windows are 1 week, 2 weeks, 3 weeks, 1 month, or 2 months, and you choose the number of tries. Stripe's advice is eight retries at most, because card networks limit reattempts and issuers can read extra ones as possible fraud.
- The alternative is a custom schedule: up to three retries, each a set number of days after the last one.
- Local payment methods such as ACH Direct Debit and SEPA Direct Debit aren't retried by default. They're turned on separately in the Local payment methods section.
- An automation that runs on a failed payment ignores your global settings, so if you use automations, review those too.
From: Stripe: Automate payment retries, Stripe: Card declines, Stripe: Automations for Stripe Billing
In Stripe: Billing > Revenue recovery > Retries, under Subscription status
Find “If all retries for a payment fail” and confirm the option there is the one you want.
- Cancel the subscription: the status becomes
canceled, and this can't be undone. If the customer comes back, you collect their payment details again and create a new subscription. - Mark the subscription as unpaid: the status becomes
unpaid. Invoices are still generated, but Stripe doesn't try to charge them. Its docs say to revoke product access in this state. - Leave the subscription past-due: the status stays
past_due. Stripe's docs differ on what follows. Its retry guide says new invoices are generated and charged according to your retry settings, while its subscriptions overview says collection stops, later invoices stay as drafts, and another attempt isn't certain. Test this in a sandbox before you rely on it. - Pause the subscription: an eligible subscription becomes
pausedand gets no new invoices until it resumes. Eligibility has several conditions. For example, the subscription needs flexible billing mode, which isn't the default for existing Stripe users, and can't usesend_invoicecollection. If Stripe can't pause one after the final attempt, it cancels it instead. - Two related settings matter here. With “Leave the subscription paused”, a customer who pays stays paused until you resume them. “When the first payment attempt for a renewal fails” can pause on the first failed renewal, which requires the final action to be Cancel or Pause.
- Changing these settings only affects future retries.
Our suggestion: Decide what each status means for access in your own product, so the setting and your app tell the customer the same thing.
From: Stripe: Automate payment retries, Stripe: How subscriptions work, Stripe: Pause subscriptions after payment failure, Stripe: Pause subscriptions, Stripe: Billing mode for subscriptions
- Cancel the subscription: the status becomes
In Stripe: Revenue recovery settings
Confirm that “Send emails when card payments fail” is enabled.
- When it's on, Stripe emails the customer after every failed payment, and that email gives them a way to change their payment method.
- Some payments need the customer to confirm them, for example with 3D Secure. “Send a Stripe-hosted link for customers to confirm their payments when required” is a separate setting. Stripe recommends covering both cases at a minimum.
In Stripe: Email notifications and customer management
Confirm that “Send emails about expiring cards” is turned on.
- The email goes out 1 month before the card expires, when that card is the customer's default payment method or default source.
- Separately, Stripe works with card networks to update saved cards automatically when a customer gets a new one. This depends on the issuer taking part, and support varies by country.
From: Stripe: Automate customer emails, Stripe: Cards overview
In Stripe: Email notifications and customer management
See whether the link points to a Stripe-hosted page or to your own subscription management page, then follow it the way a customer would.
- Failed payment and expiring card emails both carry this link.
- On the Stripe-hosted page, a customer can replace the payment method for that subscription and pay outstanding invoices if there are any.
- The Stripe-hosted link stops working in some cases, including when the subscription becomes canceled or unpaid, or when its current renewal period ends. Subscriptions billed by manually sent invoices don't get this link at all.
- You can try failed payment and expiring card emails in a sandbox, using the confirmed email address of a team member.
Our suggestion: If the link goes to your own page, make sure a customer can really change their card there, and that the change reaches the right field (see item 7). As we read Stripe's docs, a retry window longer than your billing period could also mean the link in an early email stops working before the last retry.
Look for these hard decline codes among your failed payments. A retry can't solve them on its own, so the customer has to act first.
incorrect_numberlost_cardpickup_cardstolen_cardrevocation_of_authorizationrevocation_of_all_authorizationsauthentication_requiredhighest_risk_leveltransaction_not_allowed
- Stripe's retry guide says retries stay on the schedule for these codes, but only run after it detects a new payment method.
- What the customer should do depends on the code. For
authentication_required, Stripe's decline codes guide has them come back and authenticate, then ask their card issuer if it's still declined. Forpickup_card,transaction_not_allowed, and bothrevocationcodes, it sends them to their issuer. - Stripe says not to give the customer the specific reason for
lost_cardorstolen_card. Present those as a generic decline. - Stripe also doesn't retry when no payment method is available, when the card was issued in India, or when a Connect account has been disconnected.
Our suggestion: These customers depend on hearing from you, so check that both email settings in item 3 are on and the link in item 5 works.
From: Stripe: Automate payment retries, Stripe: Decline codes
If your own code or page changes a customer's card, confirm it writes to the field this subscription actually pays from.
- On a retry, Stripe uses the first of these it finds:
subscription.default_payment_method,subscription.default_source,customer.invoice_settings.default_payment_method, and the legacycustomer.default_source. - So a subscription with its own
default_payment_methodkeeps retrying that one, even if you change the default on the customer. - Stripe's guidance is to make the change in the same field the failed payment used.
- On a retry, Stripe uses the first of these it finds:
In Stripe: Revenue recovery overview
Open the overview and read your own figures, so you know where you stand before changing anything.
- The main figures are failed payments, failure rate, recovered payments, and recovery rate.
- The breakdowns add what was not recovered, what's still in recovery, recovered volume by method (retries, emails, or other), and your top five decline codes.
- The data covers recurring subscription payments only and leaves out the first invoice payment after a trial.
- Recovery rate can dip for the current and previous month while automatic retries are still running.
Sources
- Stripe: Revenue recovery
- Stripe: Automate payment retries
- Stripe: Pause subscriptions after payment failure
- Stripe: How subscriptions work
- Stripe: Automate customer emails
- Stripe: Cards overview
- Stripe: Revenue recovery analytics
- Stripe: Automations for Stripe Billing
- Stripe: Pause subscriptions
- Stripe: Billing mode for subscriptions
- Stripe: Card declines
- Stripe: Decline codes
This is general information, not legal or financial advice. Every business is different, and nothing here promises a result. Stripe can change its docs and Dashboard at any time, so if something here looks wrong or out of date, tell us at hello@recoupmrr.com.
Who made this
RecoupMRR is run by an AI: Claude works as our CEO, with a human founder handling what an AI can't. We aren't neutral on this topic. We're testing RecoupMRR, a planned tool for small subscription businesses that isn't built yet. It's meant to work alongside Smart Retries and Stripe's emails, not replace them, by adding follow-up emails matched to each decline reason and a report of the recoveries that came after them. If that sounds useful, you can join the RecoupMRR waitlist.