A failed payment is a task, not a churn event.
When a subscription charge is declined and nothing retries it, the renewal quietly doesn’t happen — no order, no email, no second attempt. The customer usually never chose to leave; an expired card decided for them. RefillKit treats every failed charge as recoverable until proven otherwise: retries on a fixed ladder, a card-update email the customer can act on in two taps, and a report that shows exactly what was recovered.
The write-off
What an unretried decline actually costs.
A failed renewal costs more than the one charge. Subscriptions compound: losing a subscriber in month six means losing every renewal they would have made after it. And because nothing visibly breaks — there is no error on your dashboard, just an order that never appears — the loss gets filed under “churn” instead of “fixable billing failure.”
An illustration, not a promise: a $40/month subscription that fails in month six and is never retried loses $40 today. If that customer would otherwise have stayed through month twelve, the real write-off is $280 — seven missed renewals from one expired card.
Cards fail for mundane, fixable reasons: expiry, reissued cards after fraud alerts, temporary holds, insufficient funds on the wrong day of the month. Some of these clear on their own a day later. Others need the customer to act. A recovery system has to handle both — retry the temporary ones, and make the permanent ones effortless to fix.
The retry ladder
+1, +3, +5, +7 — spaced on purpose.
Four retries over a week, fired in your shop’s morning window (9–11am shop time by default). Early retries catch temporary declines; the card-update email in the middle catches the permanent ones; the final rung hands control back to you. Every offset, the window, and the final action are merchant settings with safe defaults.
- +1dretrying
First retry
The same charge is re-run the next morning. Temporary declines — a hold, a bad moment for the balance — can clear here with no customer contact at all.
- +3dcustomer notified
Retry + card-update email
If it fails again, the customer gets an email with a secure, Shopify-hosted link to update their card. Two taps on a phone. RefillKit never sees or stores the card number.
- +5dscheduled
Third retry
One more attempt after the email has landed. Hard declines — closed account, stolen-card flag — skip the waiting and go straight to the card-update path instead of burning retries that cannot succeed.
- +7dyour rule
Final retry, then your rule
The last attempt. If the charge still cannot be collected, the contract does exactly what you configured — pause, cancel, or flag for review — never something surprising.
The ladder is idempotent: a replayed webhook or a double-fired job can never double-charge a customer. Charges recovered at any rung are booked to the recovered-revenue report with the rung that won them back.
Card-update emails
The fix is two taps, and it never touches us.
The email tells the customer plainly what happened and gives them one link. That link opens Shopify’s own hosted payment-update page — the card number goes to Shopify, not to RefillKit, so there is no card data for us to store, leak, or be breached for. You can edit the email’s wording and sender name; the timing is handled by the ladder.
- Sent automatically at the +3 day rung, and immediately for hard declines that retrying cannot fix.
- Shopify-hosted update page — PCI scope stays with Shopify, where it belongs.
- Also used during migrations — customers whose payment methods cannot carry over from Recharge or Bold get the same outreach, tracked the same way.
Reporting
Recovered revenue is a line item, not a feeling.
Every recovered charge is booked with its amount, the retry rung that collected it, and the contract it belongs to. The dashboard shows recovered revenue alongside MRR, churn, skip rate, and save rate, and everything exports to CSV so you can reconcile it against your payout reports. We don’t publish recovery-rate promises — your rate depends on why your customers’ cards fail. The report exists so you can see your own number instead of trusting anyone’s marketing, ours included.
Common questions
Dunning questions, answered plainly.
Can I change the retry schedule?
Yes. The +1/+3/+5/+7 offsets, the number of retries, the morning fire window, and the final action are all merchant settings. The defaults are safe to leave alone.
Will retries annoy my customers?
Retries are silent — the customer only hears from RefillKit when action is needed from them, and that is one clear email with one link. Four attempts across a week is deliberately conservative.
What recovery rate should I expect?
We don’t quote one. Recovery depends on why cards fail at your store — expiry heavy lists behave differently from fraud-reissue heavy lists. RefillKit reports your actual recovered revenue so you can judge it on your own data.
What happens after the final failed retry?
Whatever you chose: pause the subscription, cancel it, or flag it for manual review. Nothing is decided for you.
Is this included on the Free plan?
Yes. The full ladder, card-update emails, and recovered-revenue reporting are on every plan, including Free.
Stop writing off fixable failures.
Install RefillKit and the ladder starts covering your next failed charge. Free up to 50 active subscriptions; 14-day trial on paid plans.