Stayput / Guides

Guide · facts checked 6 Nov 2026

Build or buy a cancel flow? What each costs for a Stripe SaaS

Under about 20 cancel attempts a month, use what Stripe already gives you: the portal's cancellation reasons and one retention rule. Build your own when you want control and have the days to keep it working. Buy when the vendor's price is below the revenue it recovers, and compare flat fees against a per-save fee using your own plan price.

Four options

OptionYou getYou do
Stripe's portal and retention rules8 preset reasons, free text, rules that show a discount or lower-plan offer by reason, tenure or spend, a report of savesConfigure it in the Dashboard. No offer text is written per customer.
Build it yourselfAny screens, any offer, any logicBuild the screens, handle webhooks, apply coupons and plan changes through the API, log decisions, keep it working
A flat-fee vendorA finished flow, surveys, offers, reportingInstall it and pay the monthly fee whether or not it saves anyone
A pay-per-save vendorA finished flowInstall it and pay only on a save

What building it yourself includes

The cancel screen is the small part. The list people underestimate:

  • Webhook handling that distinguishes a scheduled cancellation from an immediate one, ignores duplicates and verifies signatures. The Stripe cancel flow guide has a tested handler to start from.
  • Applying the outcome: a coupon, a scheduled plan change, a pause or cancel_at_period_end, each a different API call with its own failure modes.
  • Limits: one discount per customer, no offer in the first month, a ceiling on discount depth.
  • A record of every decision, so a customer who disputes a charge can be answered.
  • Measurement: a holdout group, or you cannot tell a save from a customer who would have stayed. See what counts as a save.
  • Upkeep: Stripe changes its API. Pausing in the customer portal arrived in API version 2026-10-28.endive, for one example; your code owns every such change.

Count the days against what the flow recovers. A founder with a handful of cancel attempts a month rarely recovers enough to repay a custom build.

What buying costs: prices read on 6 Nov 2026

Prices below come from each vendor's own pages. “Month with no saves” is what you pay when the flow saves nobody.

OptionHow you payMonth with no saves
StayputFree in early access, up to 100 AI cancel sessions a month; pay per save is 20% of the first renewal a save produces$0
Churnkey Starter$250 a month billed yearly, for teams under $5k a month in churn volume$250
Churn Buster, cancel flowsFrom $269 a month by MRR tier; month to monthfrom $269
ProsperStack$200 a month for 50–500 cancel sessions; $75 per extra 50$200
CancelFlow$9, $25 or $59 a month by number of embeds and requests$9+

The flat fees are a fair price for a product that does what yours needs. The question is volume: a flat fee of $250 needs $250 of recovered revenue a month to break even, before the vendor does anything useful for you. One vendor also publishes an open-source React SDK: Churnkey’s pricing page says it is free on every plan and that you can “self-host cancel flows entirely without a Churnkey account” (page read 6 Nov 2026), so build and buy are not always a binary choice.

How many saves a month justify a flat fee

A per-save fee of 20% of the first renewal is a fixed amount per save. A flat fee beats it once you save more subscribers a month than the fee divided by that amount.

Your plan price20% of one renewalSaves a month before $200 is cheaperBefore $250 is cheaperBefore $269 is cheaper
$19$3.80536671
$29$5.80354447
$49$9.80212628
$99$19.80111314

Now find your own number. If you get 60 cancel attempts a month and one in five accepts an offer and stays, that is 12 saves, below every cell on the $29 row. If you get 600 attempts, the flat fee wins and you should buy it.

A decision rule

  1. Fewer than 20 cancel attempts a month: Stripe's portal reasons and one retention rule are enough to start. Add a pay-per-save tool when you want the offer and wording written for each subscriber, because a month with no saves costs nothing.
  2. 20 to a few hundred a month, no engineer to spare: a pay-per-save tool or a cheap flat plan. Compare on the table above with your plan price.
  3. You have an engineer and a specific flow in mind: build it, starting from the webhook handler, and add a holdout from day one.
  4. Several hundred or more cancel attempts a month: a flat-fee vendor is usually cheaper per save, and its offer-testing tools matter more at that volume.

Whichever you choose, ask the same three questions: what happens in a month with no saves, what exactly counts as a save, and who settles a disagreement about it.

Try it before you build or buy anything

Run a sample cancel session: it takes 90 seconds, you play the subscriber, and it shows the decision and the Stripe change without connecting an account.

90 seconds, no sign-up. You play the subscriber; the AI answers, and “Cancel anyway” is always one click away.

Related

Sources, read 6 Nov 2026