Skip to content

Create a Stripe Checkout Session for the requested plan tier

POST
/api/v1/billing/checkout

Return a hosted Stripe Checkout URL for the requested plan tier.

Validation:

  • plan_tier must be one of :data:PUBLIC_PLAN_NAMES.
  • tenant_id MUST 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

POST /checkout response body.

For Enterprise plans, checkout_url is the relative /contact-sales path and session_id is None — the frontend handles the redirect.

object
checkout_url
required
string
session_id
Any of:
string

422

Validation Error

object
detail
Array<object>
object
ctx
object
input
loc
required
Array
msg
required
string
type
required
string