Stripe recovery + retention
Backstop recovers failed Stripe payments and saves canceling subscribers — smart retries, dunning, a hosted save flow, and one-click win-backs. Flat $79/mo. No revenue share, ever.
~10 min setup · no sales call · 14-day Pro trial

What your customer sees
When a subscriber hits cancel, they land on a hosted flow wearing their brand, not ours: a short survey, an optional proof step, then a targeted offer — a Stripe coupon or a paused subscription. Accept it and they’re saved on the spot. And because it’s FTC click-to-cancel compliant, a one-tap exit is on every step.

How it works
One Stripe Connect grant wires up every loop below. No webhooks to host, no engineering — recovery, retention, and win-back all run off the same connection.
Decline-code rules you can read — not a black-box model. Soft declines get the +3 / +5 / +7 retry cadence; hard codes get one polite retry, then dunning.
Smart retries, decline-aware
Capped at 6 attempts in 30 days, inside Visa safe-harbor.
4-touch dunning · days 0 / 3 / 7 / 14
Sent from your own verified domain (SES / Resend).
Hosted card-update on every link
Auto-closes the moment invoice.paid lands mid-flight.
Your “Manage subscription” button opens a hosted save flow. Branch on the survey reason, then make a real offer — no webhook wiring. The cancel exit stays one tap away.
Survey → Save Stories → Offer → Confirm
A short proof step before the ask. Branch by reason.
Discount, pause, gift months, or plan-switch
Stripe coupons + pause_collection, applied for you.
FTC click-to-cancel by default
A one-tap “Cancel anyway” on every step — no dark patterns.
A cancel doesn’t have to be the last word. A couple weeks out, Backstop emails the customer a link that drops them back onto their old plan — their card is still on file, so there’s nothing to re-enter. The ones who come back show up in your numbers.
Back on their old plan in one tap
A signed link in the email re-subscribes them — no signup flow, no card re-entry.
The email knows why they left
Too pricey, a missing feature, off to a competitor — the copy adapts, and a second touch follows.
Reactivations land in your dashboard
Who came back, when, and what it was worth — attributed automatically.
Wire it in your way
The retention loop needs one snippet on your side. Pick whichever fits your stack — the other two loops run server-side with no install.
embed.js modal
One line of JS — the save flow opens on your own domain.
Hosted redirect
No SDK. Point a link at the hosted portal and you are done.
AI-agent prompt
Paste our prompt into Claude Code or Cursor; it wires the snippet.
A scoped, read_write Connect grant — so the loops can actually act.
Recovery and retention have to retry invoices, apply coupons, pause, and switch plans — that needs write access, not read-only. We never see your secret key, the grant is encrypted at rest and never used to move money to us, and you can revoke it from Stripe's connected-apps page in one click.
The whole kit
Everything below ships on the $79 plan — no “Growth” tier holding the good parts back. Stripe-native, read in via webhooks, acting through a scoped read_write Connect grant you can revoke from Stripe in one click.
Soft declines get the +3 / +5 / +7-day cadence; hard codes get one polite retry, then escalate to dunning. Capped at 6 attempts in 30 days so you never trip Visa's safe-harbor. “Smart” means decline-code rules you can read, not a black box.
On the dashboard
Recovered-vs-lost over time, decline-mix donut, and a ranked recovery feed — your figures fill in from your own Stripe activity.
The post-cancel email carries a no-login reactivate link — one click restarts the subscription on the same plan. You see who came back, when, and which reason they left with.
Verify a send domain and recovery + win-back mail goes out with auto-DKIM/SPF from your address. Brand the copy, edit it per variant, and ping Slack or Discord on every save and loss.
New workspaces start on a 14-day Pro trial; the free tier then covers 10 recovery campaigns / month — a campaign is one failed-invoice recovery sequence. The full list above is included on $79. See how it works.
Pricing
Churnkey's entry tier is $250/mo— five percent of your MRR if you're at $5k. Paddle Retain takes a cut of everything they “save.” Stunning's UI is from 2013. We charge seventy-nine bucks, whether you recover $200 or $20,000. If we don't earn that fee back, you should fire us.
Free
$0forever
For trying Backstop on a side project. Same recovery + retention loop, capped at the volume a hobby SaaS actually generates.
Pro
the full kit$79/ mo, flat
or $759/yr — save 20%
Every feature, no revenue share, no per-seat charges, no “Enterprise” upsell. New workspaces start on a 14-day Pro trial.
The math
Same recovery + retention outcomes. What the incumbents charge to get there:
Publicly listed pricing, mid-2026. Enterprise tiers may differ.
No card for the free tier · 14-day Pro trial · cancel in one click
vs Churnkey
Churnkey set the bar for recovery plus cancel flow, and it goes wider than we do. We run the same loop, lean Stripe-native, and undercut the price. Here's where each tool actually pulls ahead — no spec-sheet padding.
Backstop’s edge
Churnkey’s edge
Frequently asked
The straight answers on cost, your Stripe data, and how fast you can ship. No revenue share, no sales call.
Same recovery + retention loop, dramatically smaller bill. Churnkey starts at $250/mo (and scales with MRR); ProsperStack quotes annual contracts. We charge a flat $79 (or $759/yr — save 20%), no revenue share, ever. The features that matter — A/B-tested save offers, dunning, custom domain, locale-aware versioning — are all here. One thing even Churnkey doesn’t do: we ship a full hosted customer portal that replaces Stripe’s billing portal, so pause / switch-plan / update-card / cancel all route through your save flow.
No. Paddle Retain takes up to 20% of saved MRR. We charge the same flat $79 whether you recover $200 or $20,000 — you did the work to get the customer. If we don’t earn that fee back, you should fire us.
We mirror customers + subscriptions into our database via webhooks, so we don’t proxy reads at runtime. We hold a read_write Connect token — used only to take the recovery and retention actions you configure (retry an invoice, apply a coupon, pause, cancel, switch a plan), never to move money to us. It’s encrypted at rest. Disconnect any time from Stripe’s connected-apps page; that revokes our access immediately.
About ten minutes end-to-end: ~5 for the Stripe OAuth, ~3 to pick a starter template, ~2 to wire it into your app. Three install paths, your pick — a one-line embed.js modal on your own domain, a no-SDK hosted redirect link, or an AI-agent prompt you paste into Claude Code / Cursor. Then verify a send domain (plus DNS). Most operators ship their v1 cancel flow same-day. Backstop is Stripe-only — no SMS, no other billing systems.
Yes. Every step of the flow shows a one-tap “Never mind / Cancel anyway” exit. We don’t allow flows that bury the cancel button behind required survey answers — that’s the whole point of click-to-cancel, and it’s enforced in the builder.
Everything we ship: A/B-tested save offers (2–4 arms, per-arm save-rate readout), one-click win-back reactivation, the Save Stories proof step, offers (discount / pause / gift free months / downgrade / schedule call), the hosted portal that replaces Stripe’s billing portal, custom cancel domain, locale-aware versioning, outbound webhooks, REST API, audit log, and GDPR export. Every new workspace gets a 14-day Pro trial; the free tier then covers 10 recovery campaigns/month. No “Growth” or “Enterprise” tier holds anything back.
Have a question we didn’t answer? Send it our way — we read everything.
Get started
Connect Stripe, pick a template, and your recovery loop and save flow are live. Flat $79/mo — no revenue share, ever.
~10 min setup · no sales call · 14-day Pro trial