Failed payment recovery that does not feel like collections

A practical recovery playbook for subscription billing: retry timing, card updates, the grace period, and the one question to ask before you write a customer off.

Failed payment recovery is the work between a declined charge and the decision to give up on the account. Most teams run it as a billing chore. The accounts that were never coming back are written off, and the accounts that were are recovered by accident.

The playbook below assumes you bill with Stripe, because that is where the retry and email mechanics live. The order matters more than any single setting.

Step 1: tell the difference between hard and soft failures

A soft failure can succeed on a later attempt with the same card. A hard failure cannot, and retrying it just burns the relationship and the retry budget. Classify the failure before you decide what to send, and send a different message for each — a retry notice for one, a card-update request for the other.

Step 2: make updating the card one click

The recovery rate is mostly a friction number. If the customer has to log in, find billing settings, and re-enter an address to fix a card, some of them will close the tab instead. A direct link to a hosted card-update page removes every step you can remove.

Say what happens and when. "Your payment failed, your account keeps working until the 14th, update your card here" recovers more accounts than any message that only states the failure.

Step 3: decide the grace period in advance

Write the policy down before the first failure, because the decision is emotional at the moment it happens. A fixed grace window, applied evenly, is easier to explain to the customer and easier to measure than a case-by-case judgement.

Step 4: ask before you write the account off

When the last retry fails and the account is about to be downgraded, ask one question in the product: what stopped the payment from going through? The answers separate the accounts that need a different card from the accounts that quietly wanted to leave, and they arrive attached to the amount that was blocked.

That is the step MorePaying adds to a recovery flow. The widget asks at the checkout and at the pricing exit, the answer lands on the public board with the amount, and the fix ships through the CLI so the recovered revenue after the release can be compared with the baseline.

FAQ

How long should a failed payment stay recoverable?

Long enough for the customer to see the message and act on it, and short enough that an abandoned account does not keep access indefinitely. A window measured in weeks suits most subscription products; adjust from your own recovery data.

Should I retry a hard decline?

Not on the same card. A hard decline needs a new card, so the useful action is the update request, not another attempt.

What should the recovery email say?

What failed, what still works, the deadline, and one link that updates the card. Everything else makes it look like a collection notice.

Read next

The paywall conversion loop

Stop collecting reasons that never become revenue work.

Run the demo, leave one objection, and watch it enter the closed loop.

Free · no card · one script · no Stripe secret