Skip to main content

Revenue API

Connect your own Stripe account, read-only, and ask for the numbers a solo founder checks: MRR, who started paying, who cancelled, and what was collected. It is deliberately small. It is also what lets Launch tell you which waitlist signups became customers.

Get an API key → Connect Stripe and read revenue

What exists today

  • You connect Stripe in the dashboard with a restricted key (rk_live_…) that has read access to Customers, Subscriptions, Invoices, Products and Events. Secret keys (sk_…) are refused.
  • Launch never writes to your Stripe account. The client it uses for your account can only issue GET requests, and that rule is covered by tests.
  • The key is encrypted at rest, is never returned by any endpoint or MCP tool, and is deleted together with all synced data when you disconnect or delete the project.
  • Customers, subscriptions and paid invoices are copied into Launch and refreshed hourly from Stripe's event feed, so reads are fast and do not spend your Stripe rate limit.
  • MRR is an operational number: yearly plans divided by twelve, quantities included, running coupons applied. Metered and tiered prices count as zero and refunds are not subtracted. It is not accounting revenue.
  • Amounts are reported per currency in the smallest unit and are never converted or added together.
  • There is no MCP tool that connects Stripe, and no tool takes a key as input. A payment-account credential should not pass through an AI conversation.

Endpoints

GET /v1/integrations/stripe Connection status, last sync, counts
GET /v1/revenue/summary MRR, active, trialing, new, churned, collected
GET /v1/revenue/series Collected revenue per day, week or month
GET /v1/revenue/events Recent payments and cancellations

Full reference with request and response schemas: docs.nordva.dev. Every response uses the same envelope and stable error codes.

MCP tools

The same operations are available to Claude Code, Claude Desktop and Cursor through the Nordva MCP server at mcp.nordva.dev:

  • get_stripe_connection_status
  • get_revenue_summary
  • get_revenue_series
  • list_recent_payments

Arguments, example prompts and client setup →

Questions

Can Launch charge, refund or change anything in my Stripe account?
No. Launch only reads. It asks for a restricted key with read permissions, and the code path that talks to your account cannot send anything but a GET request.
Why a restricted key and not my secret key?
Stripe requires third parties to use restricted keys or OAuth, and a secret key can do anything in your account. If you paste one by mistake Launch rejects it, does not store it, and tells you to roll it.
How fresh are the numbers?
Each connection syncs about once an hour. Every response includes the sync status and the time of the last successful sync, and says so when the first import is still running or the key has been revoked.
Does it work with Stripe test mode?
Yes. A key starting with rk_test_ connects a test-mode account, and responses are marked as test mode.