Skip to content

Pay for a public plan through Stripe Checkout: its owner. Send the browser to the answer's url; the account changes once Stripe says it's paid, never on the browser's return

POST
/v1/buyer/billing/checkout
curl --request POST \
--url https://example.com/v1/buyer/billing/checkout \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "plan": "example" }'

Who: a workspace’s owner. Not for API keys.

Idempotency-Key
string
<= 64 characters

Made once per action and sent again on every retry of it, so the service acts once: the request_id of the create or money-moving call; a new one when left out

Media typeapplication/json
object
plan
required
string

Example generated

{
"plan": "example"
}

Created

Media typeapplication/json
object
expires_at
required
string | null format: date-time
url
required
string

Example generated

{
"expires_at": "2026-04-15T12:00:00Z",
"url": "example"
}

An error, as go-commons apperr maps it

Media typeapplication/json
object
error
required
object
code
required
string
fields
object
key
additional properties
string
message
required
string

Example generated

{
"error": {
"code": "example",
"fields": {
"additionalProperty": "example"
},
"message": "example"
}
}