Skip to Content
Introduction

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

  1. Embed — add the Unchurn script or npm package to your subscription management page
  2. Trigger — call showCancelFlow({ merchantId, subscriptionId }) from your cancel button
  3. 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.
Last updated on