Verify a SaaS seller's Stripe numbers yourself

Free, buyer-run, read-only. The seller creates a restricted Stripe key that can only view data; you paste it here and get the metrics computed from the raw objects Stripe itself bills on — not from the seller's spreadsheet. No account, nothing stored, key used once in memory.

Who creates the key: the seller, from their own Stripe dashboard, and hands it to you for the deal. It takes them about a minute, it can only read (never write), and they can delete it the moment you're done. Plain-language security note. If a seller refuses a read-only key on a deal that's otherwise progressing, that refusal is diligence signal in itself.

Step 1 — the seller creates a read-only key

Send them this (copy-paste ready):

For due diligence, please create a restricted, read-only Stripe API key:
1. Stripe Dashboard -> Developers -> API keys -> Restrictable keys -> "Create key"
2. Name it "DD read-only" (any name works)
3. Under "Permissions", set ALL of these to "Read" and nothing else:
   Subscriptions, Charges, Refunds, Disputes, Events
   (Read only. No write, no "Sensitive" - never grant those.)
4. Create. The key starts with rk_ - send it to your buyer.
Delete the key when verification is done.
This key cannot create, change or delete anything in your account.

A rk_test_ key (from the seller's test data) runs the same checks against test-mode data — a safe rehearsal before they share anything live. We tell you clearly which mode a report ran in.

Step 2 — run the verification

Type is masked so it stays off shoulders and screen-shares. It is cleared from this page the moment the verification finishes, and never leaves this form except to api.stripe.com through our server, in memory, once.
Last 12 months
Monthly recurring revenue as the seller states it, in the account's currency. No symbols needed.
"Active customers" from their pitch or listing.

Demo loads a fully synthetic, clearly-labelled report so you can see every table and red flag before asking a seller for anything. It never contacts Stripe.

What the report checks

Every formula, threshold and known limit is documented on the method page — including exactly what a read-only key cannot see. We would rather show you the edges of the tool than let you trust a number past its use-by date.

Why we built this

A churn number in a listing is a summary of data you cannot check. A CSV export is data the seller chose and can shape. The verifier closes both gaps: the numbers come from the same subscription objects Stripe bills on, and the seller cannot edit them without deleting revenue. If the numbers here and the numbers in the listing disagree, you will know which one to negotiate on.

Free, and it stays free. The verifier exists because computing buyer-side numbers from raw objects is the entire thesis of ChurnLens. When you want the interpretation on top — a full human-reviewed risk report, benchmarks, deal narrative — that's the paid work. The numbers themselves should be yours to check.

Prefer a seller-supplied CSV instead?

You can still run our browser-side CSV analyzer or send the CSV for a human-reviewed report. Just know the ordering: a file the seller prepared is less reliable than objects Stripe bills on. Use the file for exploration; use the verifier for the number you negotiate on.