Skip to content
snagr
Snagr docs

Stripe

Connect Stripe with a restricted key. Snagr recovers expired checkouts, failed renewals and cancellations, and fills in revenue analytics.

Paste a Stripe restricted key and Snagr does the rest: it registers its own webhook on your account, imports the last year of payments, and starts recovery flows on its own. No code.

Create the key

In Stripe, open Developers → API keys → Create restricted key, name it "Snagr", and set these permissions. Leave everything else at None.

ResourceAccessUsed for
Checkout SessionsReadFinding abandoned checkouts
CustomersReadKnowing who to email
SubscriptionsReadFailed renewals, cancellations, MRR
InvoicesReadRevenue, and the pay-now link for failed renewals
ProductsReadProduct names and prices
Charges and RefundsReadNet revenue
Promotion CodesReadRecovery discounts
Payment LinksWriteOne durable checkout link per product
Webhook EndpointsWriteRegistering Snagr's webhook

Then paste the key in Onboarding → Stripe, or Settings → Connections. Snagr checks the read permissions before saving and tells you exactly which one is missing.

What Snagr does with it

  • Abandoned checkouts. When a Checkout Session with a customer email expires unpaid, the abandoned-checkout flow starts. The email links to a Payment Link for that product, with the customer's email and your recovery discount prefilled.
  • Failed renewals. When a subscription goes past due, the dunning flow starts. Its button opens the open invoice's hosted payment page, so the customer updates their card on the existing subscription. When the subscription is active again, the recovery is credited.
  • Cancellations. A canceled subscription starts the win-back flow.
  • Analytics. Revenue, MRR, renewal forecasts, products and the checkout funnel are computed from your synced Stripe data, net of refunds (before Stripe fees).

Good to know

  • Abandonment timing. Stripe only reports an abandoned checkout when the session expires, 24 hours after it was created by default. To email sooner, set expires_at on your Checkout Sessions (30 minutes at the earliest), or send checkout_started through the SDK the moment checkout begins.
  • Guest checkouts with no email are skipped. There's no one to email.
  • Test mode. An rk_test_… key connects your test data as a separate store, so you can try everything with the Stripe CLI (stripe trigger checkout.session.expired) before going live.
  • History import covers 400 days and runs in the background after you connect. The Connections page shows when it's done.
  • Stripe keeps charging. Stripe processes payments and runs its own card retries. Snagr never charges a card; it handles the emails around each payment.
  • Signups and trials that start in your app before Stripe sees them still need the SDK. Native and SDK events run side by side.