C
ChurnRecovery
Get started free
💳

ChurnRecovery + Stripe

Stripe is the gold standard for SaaS billing. ChurnRecovery has the deepest Stripe integration in the market — native webhooks, Radar support, card updater, and Stripe Checkout compatibility out of the box.

Setup time
5 minutes
Difficulty
Easy
Avg save rate
28%
Price
Free

Overview

Stripe powers billing for millions of SaaS companies worldwide. ChurnRecovery's Stripe integration is the most comprehensive available — built by developers who've worked with Stripe's API extensively.

When a customer clicks "Cancel" in your app, ChurnRecovery intercepts the request, shows a smart cancel flow, and handles everything automatically. Successful saves are logged, subscriptions are modified, and revenue is recovered — all without you writing a line of subscription management code.

What's included

  • Automatic subscription pause / downgrade / discount
  • Smart cancel flow triggered on any cancellation event
  • Stripe Radar card updater for failed payments
  • Webhook-native — no polling required
  • Stripe Checkout and Payment Links compatible
  • Test mode support for safe development
  • Works with Stripe Billing, Subscriptions, and Customer Portal

Use cases

Cancel Flow

Intercept cancellations with targeted offers before the subscription ends

Failed Payment Recovery

Automatically retry failed charges and prompt card updates

Downgrade Instead of Cancel

Offer a lower plan to at-risk customers instead of losing them entirely

Pause Subscriptions

Let customers pause instead of cancel — keeps LTV intact

Code examples

Real code for your Stripe integration. Copy and customize.

Install the SDKbash
npm install @churnrecovery/stripe
Initialize ChurnRecoveryjavascript
import ChurnRecovery from '@churnrecovery/stripe'

const cr = new ChurnRecovery({
  apiKey: process.env.CHURNRECOVERY_API_KEY,
  stripeSecretKey: process.env.STRIPE_SECRET_KEY,
})
Handle cancellation webhookjavascript
// pages/api/stripe-webhook.js
import { buffer } from 'micro'
import ChurnRecovery from '@churnrecovery/stripe'

const cr = new ChurnRecovery({ apiKey: process.env.CHURNRECOVERY_API_KEY })

export default async function handler(req, res) {
  const sig = req.headers['stripe-signature']
  const body = await buffer(req)
  
  const event = cr.stripe.constructEvent(body, sig, process.env.STRIPE_WEBHOOK_SECRET)
  
  if (event.type === 'customer.subscription.deleted') {
    await cr.handleCancellation(event.data.object)
  }
  
  res.json({ received: true })
}
Embed the cancel flow widgetjsx
import { CancelFlowWidget } from '@churnrecovery/react'

function CancelButton({ subscriptionId }) {
  return (
    <CancelFlowWidget
      subscriptionId={subscriptionId}
      apiKey={process.env.NEXT_PUBLIC_CHURNRECOVERY_KEY}
      onSaved={() => console.log('Customer retained!')}
      onCanceled={() => console.log('Customer churned')}
    />
  )
}

Setup checklist

  1. 1Install @churnrecovery/stripe via npm
  2. 2Connect your Stripe account in the ChurnRecovery dashboard
  3. 3Configure your webhook endpoint in Stripe Dashboard
  4. 4Embed the cancel flow widget where users would cancel
  5. 5Test with Stripe test mode — full flow in under 5 minutes
🚀

Ready to get started?

Free forever. No credit card. Set up in 5 minutes.

Get early access →

Stop losing customers you could keep

Most SaaS companies recover 20–30% of would-be churners with cancel flows. ChurnRecovery makes this free for Stripe users.

Get early access — it's free