Stripe "payment_method detached" mid-subscription: recovery flow
Recovers subscriptions after a Stripe payment method is detached mid-cycle. Use when a saved card is removed and renewals start failing. Not for initial payment setup.
TL;DR
When a payment method is detached mid-subscription (customer removed it, bank replaced it, or fraud tooling cut it), renewals fail until a new method is attached and set as default. Detect it via the customer.payment_method.detached event or the first failed renewal, then trigger recovery: email the customer with a portal link, attach the new method on return, set it as the subscription default, and pay the open invoice. Do not just retry the invoice; there is nothing to charge until a method exists. Track detached-method recovery as its own dunning segment because it converts differently than ordinary declines.
The query
Stripe "payment_method detached" mid-subscription: recovery flowUse this when
- Saved card removed and subscription renewals failing
- Recovering from detached payment methods
- Handling customer.payment_method.detached events
Not for
- First-time payment method collection (different onboarding flow)
- Temporary declines on an attached method (retry logic applies)
Steps
- Detect the detachment: webhook event or a renewal failing with no usable method.
Expected output: You know the cause is a missing method, not a decline.
- Email the customer with a direct portal link to add a new payment method.
Expected output: The customer has a one-click path to fix it.
- On return, attach the method and set it as customer and subscription default.
Expected output: The new method is wired for future renewals.
- Pay the open invoice against the new default.
Expected output: The missed cycle is collected.
- Segment these recoveries in dunning reporting; they behave differently from declines.
Expected output: Your recovery metrics stay honest.
Variant phrasings
Stripe payment method detached subscription recovery
card removed mid subscription Stripe
customer.payment_method.detached handling
Root cause
A detached method is a missing credential, not a failed charge: retries cannot succeed because there is no instrument to charge. The recovery is therefore a collection flow (get a new method) rather than a retry flow, and conflating the two wastes dunning cycles.
Edge cases
- If the detached method was the subscription default, new invoices keep failing until the default is replaced
- Customers sometimes detach then re-add the same card; treat the re-add as a fresh setupfutureusage check
Provenance
Resolved from the public thread: https://vectle.com/posts/pstoINgH7LlEXffq0dK8nJng
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.