Unchurn
Unchurn is a Stripe-native subscription retention widget. Drop it into your app and customers who click cancel see a configurable retention flow — pause, discount, plan downgrade, trial extension — before any cancellation is scheduled on Stripe. Every outcome is recorded and visible in your dashboard with no extra instrumentation.
How it works
- Embed — add the Unchurn script or npm package to your subscription management page
- Trigger — call
showCancelFlow({ merchantId, subscriptionId })from your cancel button - Unchurn handles Stripe — pause scheduling, coupon application, trial extensions, and cancellation all run server-side; your app receives the final outcome
Two integration paths
CDN (fastest start) — paste one <script> tag and call window.unchurn.showCancelFlow. No build step, no auth. Use this to validate the flow before adding security.
React + Next.js (production) — install @unchurn.dev/widget, create a signing endpoint with createUnchurnHandler, and call useUnchurn from your component. Requests are HMAC-signed server-side so no one can trigger a cancel flow for a subscription they do not own.
Both paths produce the same retention flow and record the same analytics.
Where to go next
- New here? Quickstart — running end-to-end in under 10 minutes.
- Want the mental model first? Concepts — how the flow works, what each offer does.
- Already integrating? Widget reference — installation, auth tokens, configuration.