Skip to main content
POST
Start a new subscription via Stripe Checkout

Authorizations

hookie_session
string
cookie
required

The console's sealed session cookie, set by WorkOS AuthKit. Mutating requests also require the X-Requested-With CSRF header.

Headers

Idempotency-Key
string

Makes a POST safe to retry for 24 hours: the same key, credential, path and body returns the stored response (Idempotent-Replayed: true) instead of running again. 422 if the key was used for a different request; 409 while the first is in flight.

Required string length: 1 - 255

Body

application/json
plan
enum<string>
default:standard

Only the exact string 'team' selects Team; every other value, and an absent or unparseable body, means 'standard' (Pro). Team quantity is set server-side to the workspace's current membership count.

Available options:
starter,
standard,
team

Response

Checkout session created. Redirect the browser to checkout_url. Success/cancel return to {APP_ORIGIN}/?checkout=success|cancel#/settings/billing. The plan only changes when the signed Stripe webhook confirms the subscription.

session_id
string
required
checkout_url
string | null

Stripe's hosted Checkout URL. Absent from Stripe's response in rare cases even when session_id is present.