Shopify Dunning: Failed Payment Recovery Guide
Shopify runs your store, and your subscriptions run on top of it — through Shopify's native subscription options or an app like Recharge, Skio, Seal or Loop. When a renewal charge fails, somebody has to work that failure, and on Shopify that job is split between the platform and the app in ways that leave real gaps. This guide walks through who retries what, where failed renewals fall through, and what a recovery layer adds.
What happens when a Shopify renewal fails
Shopify's checkout collects the payment, and a failed renewal triggers the subscription app's retry handling: a small number of retries on the app's schedule, plus a notification to the customer. That baseline catches the easy failures. It does not read the decline and adapt — an expired card gets retried like a temporary glitch, an insufficient-funds decline is retried on the calendar rather than around payday, and a hard decline can burn every attempt the schedule allows.
Where the gaps are
The first gap is decline blindness, and it is the expensive one: most failed renewals are winnable, but only with the response the decline actually calls for — a card-update request for an expired card, a timed retry for insufficient funds, an immediate stop for a hard decline. The second gap is the backlog: whatever failed in the last 90 days before you set anything up just sits there. The third gap is the exit interview that never happens: a subscriber whose payment failed and who then cancels meets no save offer, no pause, no credit — just the door.
How recovery works for Shopify stores
Swipe Again connects to your store through its Shopify app and works the failures your subscription app surfaces. Retries are scheduled by decline code. Branded email and voice reminders send the subscriber to a card-update page that respects your store's look. When you connect, 90 days of past failures are backfilled and worked first. The platform details — including which subscription setups are supported — live on our Shopify dunning page, and the same recovery layer covers stores whose subscriptions run on Recharge, Skio, Seal or Loop.
And the cancel click
A failed payment is one door out; the cancel button is the other. A branded cancel deflection flow asks why, makes one offer matched to the reason, and keeps leaving easy. Both halves together are the product: recovery for the subscribers whose payments failed, deflection for the ones who decided to go.
One flat price covers both: $179/month, no percentage of recovered revenue, self-serve 14-day trial. The honest test is your own store's failed renewals.
The first two renewal cycles decide
Shopify stores meet failed renewals in bursts, and the bursts are predictable: the first renewal after a subscriber joins, the first renewal after a price change, and the first two cycles after any subscription-app migration. Each burst has the same anatomy — a cohort of subscribers whose payment setup was never really tested hits its first real charge, or a migration leaves a fraction of payment methods damaged in ways that only surface when the charge is attempted. The operational answer is to staff those windows like launches: watch failed renewals daily rather than weekly, keep the card-update path freshly tested on a phone, and read the failure reasons in the app the same day they land instead of in a monthly export. A subscriber saved in cycle one is worth a year of renewals; a subscriber lost in cycle one is usually lost to a card problem that a same-week message would have fixed. Outside the bursts, the steady-state discipline from the rest of this guide applies — but stores that only discover their failure rate quarterly will keep meeting it in its most expensive form.
Related reading: Shopify involuntary churn · Loop failed payment recovery · Skio failed payment recovery
How a failed payment flows through Shopify billing
On Shopify, a subscription renewal is a charge attempted through Shopify's checkout billing machinery, against the payment method Shopify holds for that customer. Your subscription app manages the contract — what renews, when, and for how much — but the charge itself runs on Shopify's rails. When the attempt fails, Shopify records the failure and begins its own retry handling on its own schedule. The subscription app surfaces the failure to you, and the subscription sits in a failed state while the window runs.
Two facts about that flow shape everything else in this guide. First, the payment method is in Shopify's custody — neither you nor your subscription app holds the card, which is why card updates route back to a Shopify-hosted page. Second, the retry schedule belongs to Shopify. Most industry estimates put first-attempt failures at roughly 5–15% of monthly charge value, so this flow runs constantly on any store with subscription volume — and the merchant's influence sits around the retry schedule, not inside it.
What Shopify's native retries cover, honestly
Credit where it is due: a failed Shopify renewal is not abandoned after one attempt. Shopify retries the charge more than once across a window, notifies the customer that a payment failed with a route to update their payment method, and holds the subscription in a recoverable state rather than cancelling on the first decline. For the easiest failures — a balance that clears a day later, a temporary issuer hiccup — that is frequently enough.
The honest limit is that this machinery is a platform baseline, built to be adequate for every store on Shopify rather than tuned for yours. It does not read your store's decline mix or your customers' pay cycles, and its outreach is Shopify's, in Shopify's voice. It is a floor: real, worth having, and not a recovery operation.
The gaps that cost renewals
No decline-aware timing control
Shopify retries on Shopify's schedule, and the merchant cannot retime attempts around the decline. An insufficient-funds failure wants an attempt placed after payday; an expired card wants no attempt at all until the customer updates their details; a hard decline wants the sequence to stop. None of those judgments are available inside the native schedule — the attempts fire when they fire, whatever the failure actually needed.
Outreach limits
The native notification is a platform message, and platform messages underperform store messages: they arrive from Shopify, in a format subscribers have learned to skim. The merchant's own channels — a branded email from the store the subscriber actually bought from, an SMS where the subscriber has opted in — are where card updates actually get completed, and the native flow does not run them for you. A subscriber who never sees the one message that mattered is a renewal lost to communication, not to money.
Annual-plan renewal risk
Annual plans concentrate every weakness above into a single event. The card on file can be a year old — replaced, reissued, or expired in the meantime. The charge amount is the largest the subscriber sees all year. And there is exactly one renewal a year, so an unrecovered failure is a full year's revenue gone.
What the merchant can control
The retry schedule is Shopify's. Almost everything around it is yours. You control how fast a failed subscriber hears from your store, and in whose voice. You control the card-update path: how short it is, whether it works one-handed on a phone, whether the message links straight to it. You control pre-renewal card health — prompting subscribers with expiring cards before the renewal attempts. You control what happens at the cancel click, and whether anyone reads the failure data your subscription app surfaces while it is still actionable.
Layering a recovery layer around Shopify's native retries
Because the native schedule cannot be replaced, the layer is built around it — the platform detail is on our Shopify dunning app page. The operating sequence runs in this order.
Step 1: Classify every failure the app surfaces
Each failed renewal is read for its decline type as soon as your subscription app reports it. Soft declines, expired cards and hard declines are three different problems, and the classification decides which playbook each one gets, before any message is sent.
Step 2: Work the window Shopify leaves open
Shopify's retries run on their schedule; the layer's job is everything between and around those attempts. Card-update outreach goes out at once for failures a retry cannot fix. Where a connected billing platform also runs its own attempts — as on stores whose subscriptions bill through Stripe — smart retries are woven into the gaps of the native schedule under a combined cap of 15, with an eight-attempt ceiling on the layer's own tries and a payday ladder for insufficient-funds declines reaching to roughly day 25. Hard declines stop at once and route to the card-update ask.
Step 3: Send branded outreach that asks for one action
Dunning emails in your store's name go out on days 1, 3 and 7 from the failure, each asking for exactly one thing and linking to the secure update page. SMS supports the same sequence, capped at three messages and closing with "Reply STOP to opt out". Speed matters more than volume: the first message does most of the work.
Step 4: Backfill the backlog
On connect, the last 90 days of failed renewals are pulled in and worked, not just tomorrow's. Stores that have never run recovery usually find their first recovered renewals in that backlog — subscribers who failed weeks ago on soft declines and stale cards and were never followed up.
Step 5: Deflect before the cancellation lands
A subscriber in a failed state who moves to cancel meets one save offer matched to their reason — discount, pause, or credit — with leaving kept one click away throughout. Failed payments and cancellations are the same moment of doubt arriving by two doors.
What the layer costs
Swipe Again is $179/month flat for Shopify stores — no percentage of recovered revenue, no per-order or per-seat math — covering the recovery layer and cancel deflection together, with a self-serve 14-day trial. Against the bands most industry estimates use — roughly 5–15% of failed payments recovered with nothing working them, 25–40% with processor-native handling, 45–60% with a dedicated layer — ask which band your current setup performs in. Recover $179 in 30 days, guaranteed — or Swipe Again is free the next 30 days.
The bottom line
Shopify's native retries are a genuine baseline, and their limits are structural: the schedule is not yours to time, the outreach is not yours in voice, and annual plans put a year of revenue on a single attempt. What is yours — communication speed, card-update friction, pre-renewal card health, and the cancel save — is exactly where a recovery layer operates.
What Shopify payment recovery costs
| Option | Cost |
|---|---|
| Shopify’s native subscription billing retries | Included in your platform bill |
| Swipe Again | $179/mo flat — no percentage of recovered revenue |
| Revenue-share recovery tools | Typically 5–15% of whatever they recover |
Prices checked October 2026. The full pricing-model comparison is on the flat-fee dunning comparison page.
Frequently asked questions
Can I change Shopify's retry schedule for failed renewals?
No. Subscription charges on Shopify are attempted through Shopify's checkout billing, and the retry timing is Shopify's. Neither the app nor the merchant sets when Shopify re-attempts a failed charge. What you control is everything around those attempts: outreach, card updates, and the save offer.
Does a recovery layer replace Shopify's native retries?
No — it works around and alongside them. Shopify's attempts keep running on Shopify's schedule. The layer adds classification, branded dunning email and SMS, a short card-update path, a 90-day backfill, and cancel deflection, coordinated so schedules never stack on the same charge.
Why are annual plans the biggest risk on Shopify?
Because everything is concentrated: a card up to a year old, the largest charge of the subscriber's year, and a single renewal event. A monthly subscriber whose card fails in March may self-heal in April; an annual subscriber who is not recovered is simply gone, along with a full year of revenue. Annual cohorts deserve pre-renewal card checks before the attempt, not follow-up after it.
How much does Swipe Again cost for Shopify stores?
$179/month flat, with no percentage of recovered revenue, covering failed-payment recovery and cancel deflection. The 14-day trial is self-serve, and the backfill means the first weeks usually include failures from before you connected.
Related: Seal Subscriptions Dunning: Recovery Guide covers the neighbouring case in full.
One more piece of the same puzzle: Skio Dunning: Failed Payment Recovery Guide.
Related: Loop Subscriptions Dunning: Recovery Guide covers the neighbouring case in full.
Keep reading: Shopify Involuntary Churn — the same problem from the other side.
Updated November 2026.
Stop losing subscribers who never meant to leave.
Connect in 2 minutes. Free 14-day trial — Recover $179 in 30 days, guaranteed — or Swipe Again is free the next 30 days. Recovered revenue means every failed payment collected while Swipe Again is active, from any recovery source, as defined in Section 3 of our Terms. How we count: https://swipeagain.com/pages/how-we-count
Start trialStop losing subscribers
who never meant to leave.
Every billing cycle without recovery is revenue you earned and never collected. Connect in 2 minutes — see your first wins inside the trial.
Start trialFree 14-day trial · No code · Cancel anytime