FOR DEVELOPERSHEADLESS API

Everything NoChurn does, available through the API.

Keep your billing and your screens. Send customers, payments and cancellations, run the cancel flow from your own interface, and get signed webhooks back. Web, desktop, iOS or Android.

api.nochurn.sh/v1
Animated example of Headless API in the NoChurn dashboard (example data)

HOW IT WORKS

Four steps, all automatic.

  1. 01

    Create a test key

    A key starting with nc_test_ works in a sandbox: nothing real is charged and no email leaves NoChurn.

  2. 02

    Send your data

    Customers, subscriptions, payments and cancellations, plus any attribute or usage event. With your own id, a Stripe id, or ours.

  3. 03

    Build your screens

    Fetch the cancel flow’s reasons and offers, show them your way, and post the answer back. The texts arrive translated.

  4. 04

    Listen to webhooks

    NoChurn tells your app what to do: retry this payment, apply this discount, this customer cancelled, this one came back.

WHAT YOU CONTROL

Your rules, your tone, your call.

  • Three ids per customer

    Use your own external id, the Stripe customer id, or the NoChurn id. All three resolve to the same customer.

  • Signed webhooks

    Every webhook is signed (NoChurn-Signature) and retried with backoff until your endpoint answers.

  • Idempotent writes

    Send an Idempotency-Key on any write, and a retried request never runs twice.

  • Restricted keys

    Give each key none, read or write access per resource. A key can’t create a stronger key.

  • Public keys for front ends

    pk_ keys plus a signed customer token let your web or mobile front end call the cancel flow directly.

  • Errors that tell you the fix

    Every error has a code, a message, the fix and a link to the docs.

BUILT IN

Rules you don’t have to think about.

  • SANDBOX

    Test keys stay in test

    An nc_test_ key only sees test data and never sends a real email or moves real money.

  • CLICK TO CANCEL

    A cancel link in every session

    Each cancel session returns cancel_url_now, valid for the whole session, so cancelling stays one click away in your UI too.

  • NO SECRETS

    No secret in your front end

    Front ends use public keys and short-lived customer tokens. Secret keys stay on your server.

API

Plain REST, signed webhooks.

A few of the endpoints. The full reference is in the docs, and openapi.yaml is the source of truth.

API reference
POST /v1/customers Create a customer with your own id
POST /v1/subscriptions Send a subscription
POST /v1/events Track a usage event
POST /v1/cancel-sessions Start a cancel flow
POST /v1/webhook-endpoints Subscribe to webhooks

FAQ

Questions people ask.

Do I need Stripe to use NoChurn?

No. With the API, NoChurn works with in-house billing or any provider. Stripe and the other connectors just save you the integration work.

Can a coding agent do the integration?

That is the idea behind the NoChurn MCP server and llms.txt: point your agent at them with a test key, and it can wire the calls and webhooks in your codebase.

Which platforms can show the cancel flow?

Any of them. The API returns plain JSON: reasons, offers and texts. Render it on the web, in a desktop app, or natively on iOS and Android.

How do I keep my keys safe?

Secret keys stay on your server. Front ends use public pk_ keys with a signed customer token, and restricted keys limit what each key can touch.

More from NoChurn

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Stop leaking revenue.

  • Free until $300 MRR
  • No card needed
  • Live in 10 minutes
  • Never a cut of what we recover