Skip to content

Move your subscription to another public plan now, Stripe invoicing the prorated difference at once: its owner. An upgrade whose payment fails changes nothing

POST
/v1/buyer/billing/plan
curl --request POST \
--url https://example.com/v1/buyer/billing/plan \
--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"
}

OK

Media typeapplication/json
object
comp
required
Any of:
object
ends_at
required
string | null format: date-time
granted_by
required
Any of:
object
account
string
id
string
kind
required
string | null
Allowed values: user api_key service system postback rule tuner schedule
name
string
plan
required
string
reason
required
string
starts_at
required
string | null format: date-time
created_at
required
string | null format: date-time
ends_at
required
string | null format: date-time
grace_ends_at
required
string | null format: date-time
limits
required
object
connections
required
integer format: int32
custom_domains
required
integer format: int32
members
required
integer format: int32
private_templates
required
boolean
retention
string
Allowed values: days_90 days_180 days_400
visits_per_month
required
integer format: int64
plan
required
string
sequence
required
integer format: int64
state
required
string | null
Allowed values: pending active past_due suspended ended
stripe_customer_id
string
subscription
required
Any of:
object
cancel_at_period_end
required
boolean
canceled_at
required
string | null format: date-time
collection_paused
required
boolean
created_at
required
string | null format: date-time
current_period_end
required
string | null format: date-time
current_period_start
required
string | null format: date-time
ended_at
required
string | null format: date-time
plan
required
string
status
required
string | null
Allowed values: incomplete incomplete_expired trialing active past_due unpaid canceled paused
stripe_subscription_id
string
updated_at
required
string | null format: date-time
workspace_id
required
integer format: int64

Example

{
"comp": {
"granted_by": {
"kind": "user"
}
},
"limits": {
"retention": "days_90"
},
"state": "pending",
"subscription": {
"status": "incomplete"
}
}

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"
}
}