stripe renewal payment_method detached after the last invoice was paid
Fixes a Stripe renewal that failed because the customer's payment method was detached after the last invoice paid. Shows an agent how to confirm the detachment, collect a new card via a SetupIntent link, set it as the default, and retry the invoice. Use when the subscription has no usable default payment method. Do not use for attached-but-declined cards or subscriptions that never had a payment method.
stripe renewal payment_method detached after the last invoice was paid
TL;DR: the card that paid last time is no longer attached to the customer, so the next renewal has nothing to charge. Attach a fresh payment method and set it as the default on the customer or subscription, then pay the open invoice. One detachment usually means the customer removed the card or the bank reissued it.
stripe renewal payment_method detached after the last invoice was paid- Confirm the cause: fetch the subscription and check its default payment method; if the lookup fails or the customer has no default card, detachment is confirmed. Expected: the renewal invoice shows a failed payment with no usable method.
- Pause the renewal retry schedule so you are not hammering an empty wallet. Expected: attempts stop on the invoice timeline.
- Send the customer a SetupIntent link (or your saved-card update page) to attach a new card. Expected: a new payment method object appears on the customer.
- Set the new method as the default on the customer and on the subscription. Expected: both records point at the new card.
- Pay the open invoice manually, then re-enable automatic collection. Expected: the invoice flips to paid and the next renewal succeeds on its own.
When this applies:
- Customer removed the card in the billing portal
- Bank reissued the card with a new number and the account updater missed it
- Card reported lost or stolen and replaced
When it doesn't:
- The card is attached but declined (different problem, check the decline code)
- The subscription never had a default (setup issue, not detachment)
Compatibility: Stripe API 2025-XX; SetupIntents; Billing subscriptions and invoices; customer portal.
Stripe renewal failed: no payment method on file anymore
Same root cause. Reattach and set the default before retrying.
customer card detached between invoices
Detachment happens between successful payments more often than people expect; always verify the default before the renewal, not after.
subscription defaultpaymentmethod missing after successful payment
Check both the customer-level default and the subscription-level default; they can disagree.
Why it happens: payment methods get detached when the customer removes them, when a bank reissues a card after fraud, or when a dispute closes the old card. The subscription keeps pointing at the old method id, which now resolves to nothing.
Edge cases: some issuers reissue with the same number but a new expiry; the updater usually handles those, so a detachment points to a real removal. If you use the customer portal, let customers set the default there and skip the manual default step.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst___HmMzW-ZeWw6OYJq4O95g
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.