Skip to content

Billing API

Billing covers a subaccount’s subscription, metered usage, and the agency’s rate card and rebilling. Endpoints are under /api/v1/billing. Agency-only endpoints are restricted to the agency org.

Method Path Description
GET /billing/summary Billing summary for the acting org.
POST /billing/checkout Start a checkout.
GET /billing/usage Per-meter daily usage series and totals (reads usage rollups).
GET /billing/rate-card Get the rate card (agency-only; stored on the agency org settings).
PUT /billing/rate-card Update the rate card (agency-only).
POST /billing/orgs/{org_id}/subscription Create a subscription for a client org (agency-only, test-mode gated).
DELETE /billing/orgs/{org_id}/subscription Cancel at period end (agency-only).
POST /billing/test-clock-run Run a Stripe test-clock cycle (agency-only; refuses a non-test key).
POST /billing/signup-trial Start a card-required trial.
GET /billing/trial-status Trial status, including whether access is blocked.
POST /billing/webhooks/stripe Stripe webhook (lifecycle + rebilling events).

The decided pricing is a single flat plan ($297/mo, with a quarterly prepay) plus metered usage rebilling. A trial is card-required; a 30-day trial that doesn’t convert is lapsed by a daily sweep, and the per-request billing gate then returns 402 for a lapsed/past-due client org. The agency org is always exempt. See the Rebilling Money Model.

The trial-lifecycle state machine (none / trialing / active / past_due / lapsed / canceled) is driven by Stripe webhooks plus a daily trial-expiry beat.