billing
Create Subscription Checkout
Create a Stripe Checkout Session in mode=subscription.
Auth required (Clerk JWT). metadata.clerk_user_id is set from the validated JWT; the request body's clerk_user_id / similar fields (if present) are ignored — they're not even in the schema. This is the Codex P3.3.g HIGH-2 lesson: trust anchor stays server-side.
Currency resolution: explicit override → cf-ipcountry → Accept- Language → GBP fallback. Same path as the 7-day-pass route.
Tier seat semantics:
- Solo: quantity = 1 (single user)
- Studio: quantity = 5 (5-seat pack, fixed at v1)
- Practice: quantity = 25 (25-seat minimum, hardcoded at v1) Above-minimum expansion deferred to v1.1 via Customer Portal.
No trial_period_days anywhere on the path — the freemium MCP tier IS the trial; the £10 7-day pass is the second on-ramp; PASS_CREDIT_FIRST_MONTH is the bridge.
post/api/billing/subscription/checkout
Request
- Base URL: https://api.civilquants.com (the document declares no server; this is the origin it was published from)
- URL: https://api.civilquants.com/api/billing/subscription/checkout
- Auth: none declared
Headers
authorizationstring nullable
Request body
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.