Create a Stripe Checkout Session for the requested plan tier
POST /api/v1/billing/checkout
POST
/api/v1/billing/checkout
Return a hosted Stripe Checkout URL for the requested plan tier.
Validation:
plan_tiermust be one of :data:PUBLIC_PLAN_NAMES.tenant_idMUST match the authenticated user’s tenant — a cross-tenant request is rejected 403.
Enterprise short-circuit: returns
{checkout_url: '/contact-sales', session_id: None} — no
Stripe call.
Authorizations
Request Body required
POST /checkout request body.
object
plan_tier
required
Public plan name — one of [‘business’, ‘enterprise’, ‘pro’, ‘professional’, ‘starter’]
string
tenant_id
required
Target tenant UUID (must match auth context).
string
Responses
200
Successful Response
422
Validation Error
object
detail
Array<object>
object
ctx
object
input
loc
required
Array
msg
required
string
type
required
string