Quickstart

From signup to intercepting cancels in under an hour.

Pick your plan

Choose a tier above and check out securely with Stripe.

Claim your account, connect Stripe

Checkout drops you on the claim page, which reveals your API key — shown exactly once, so save it. Then register your Stripe restricted key via POST /v1/stripe-key (see the repo README). Offers apply against your Stripe account only. Until you register a key, your flows run in dry-run mode — safe to test.

Embed the widget

Your backend mints a short-lived token for the cancelling customer (POST /v1/widget-tokens with your API key — the key itself never reaches the browser). Add the snippet to your billing page, pass the token, and call Staystack.openCancelFlow() from your cancel button:

<script src="https://YOURHOST/widget/staystack.js"></script>
<script>
Staystack.init({ endpoint: "https://YOURHOST",
  sessionToken: tokenFromYourBackend,
  onCancel: function(){ /* your real cancellation */ } });
</script>

Map offers to reasons

Each cancellation reason gets a save offer: pause for “temporary”, discount for “too expensive”, downgrade for “wrong plan”. Defaults are sensible out of the box.

Watch the A/B results

On Growth and up, two variants run per reason and the stats endpoint shows save rates per variant. Keep what saves, kill what doesn't.

Need a hand? Email don+staystack@lifeofmorr.com and a human (currently the founder) will help you get set up.