Catch the cancellation
at the click. Not in next month's report.
Churnbrake sits on your cancel button. It asks what went wrong, offers a pause, a discount or a smaller plan to the people worth offering one to, and writes the answer straight back into Stripe — while the customer is still on the page.
Works with Stripe · One snippet · Live in an afternoon
app.yourproduct.com/settings/billing
Cancel subscription
Before you go — what stopped working?
- Too expensive
- Not using it enough
- Missing a feature
- Switching to something else
Take 30% off for three months?
You have been on Pro for 14 months. Keep everything, at €34 a month until March.
Cancelling stays one click away on every screen.
Plugs into the billing you already run
- Stripe
Features
The last screen is the only one that still has their attention.
By the time churn is a number on a chart, the conversation is months over. Everything here happens in the seconds when somebody has decided to leave and has not left yet.
A cancel flow that branches
Ask why first, then answer that. Somebody leaving over price and somebody leaving over a missing feature should not meet the same screen, and only one of them can be talked out of it with a discount.
Offers that fit the reason
A pause, a discount for a fixed number of months, a smaller plan, or a period extended for free. Each one is a real change to the subscription in Stripe, not a note for somebody to action later.
Pause instead of cancel
The subscription stays in Stripe, collection paused, and resumes on the date it said it would. A customer who pauses for two months is a customer you still have — a customer who cancels is one you have to win back from nothing.
Failed payments, chased properly
Most involuntary churn is a card that expired. Retries timed to when they actually work, an email that says what to do, and a hosted page to fix it — before Stripe gives up and cancels on your behalf.
Every reason, counted
Each cancellation is tagged with why, what was offered, and what happened next. After a month it is a list of what to fix, ordered by what it costs you — which is a different document from a churn rate.
Rules on who sees what
Tenure, plan, spend to date, how many offers they have already taken. A fourteen-month customer is worth a real discount; somebody eight days into a trial is not, and should not be offered one.
How it works
Three steps, and none of them is a migration.
Churnbrake goes on top of the billing you already run. Nothing moves, nothing is rehosted, and if you switch it off tomorrow your cancel button works exactly as it did before.
01
Connect Stripe
One authorisation, no keys pasted anywhere. Churnbrake reads your plans and customers so an offer can be built out of what you actually sell, and writes back only the change a customer accepted.
02
Drop in the snippet
One script where your cancel button lives. It opens the flow in front of your own settings page — nothing is redirected, nothing is rehosted, and your billing screen stays yours.
03
Publish the flow
Write the questions, attach an offer to each answer, set who qualifies. Change any of it later from the dashboard, without a deploy and without asking anybody to ship code.
Does this work if my cancel button is inside my own app?
That is the case it is built for. The snippet intercepts the click on whatever element you point it at and opens the flow over your page, so your billing settings stay where your customers already know to find them. Nothing is redirected to a hosted page.
What actually happens in Stripe when someone accepts an offer?
The subscription is updated then and there. A pause sets a collection pause with a resume date, a discount attaches a coupon for the number of months you set, a downgrade swaps the price. If the customer cancels anyway, Stripe cancels exactly as it would have without churnbrake in the way.
Is this not just a dark pattern?
It is one screen, and cancel is a visible button on it from the moment it opens — never hidden behind a scroll, a countdown, or a second confirmation. A flow that traps people produces refund requests and chargebacks, which cost more than the subscription it saved. Offering somebody a pause before they go is a conversation; making leaving hard is not, and churnbrake will not help you build the second one.
How much access to my Stripe account does it need?
Read on customers, subscriptions and prices so the flow knows who it is talking to and what it can offer. Write on subscriptions, so an accepted offer takes effect. It never touches payouts, balance or payment methods, and card details never reach us — they stay in Stripe, which is where they belong.
What about payments that fail rather than customers who quit?
Same product, different door. Churnbrake retries on a schedule that reflects when cards actually clear rather than a fixed interval, emails the customer a link to fix it, and stops the moment the payment goes through. Involuntary churn is usually the larger half and the easier half.
What do you store about my customers?
The Stripe subscription and customer id, the reason chosen, the offer shown and what happened next. No card details, no payment methods, no invoice contents — everything sensitive stays inside Stripe and is read only when a flow needs it.
How long does it take to get running?
An afternoon. Connecting Stripe is a click, the snippet is one line, and the default flow ships with the four reasons and the offers most subscription businesses would have written themselves. Editing it is the part worth spending time on.
Every cancellation you read about already happened.
Stand in front of the next one instead. Connect Stripe, drop in the snippet, and the flow is live before the afternoon is.