Open the billing provider customer portal
GET/api/v1/billing/portal
Mint a customer-portal link where the customer manages their subscription.
Changing level, updating a card, and cancelling all happen there — the billing provider owns those flows, and the resulting webhooks are what move our plan state.
- Scope required:
billing:manage; role manager or above. - 409
no_polar_customerwhen the org has never checked out.
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 422
- 429
- 500
Successful Response
Bad request — malformed input or failed validation.
Missing, expired, or invalid credentials.
Authenticated but not authorized for this resource. Note: cross-organization reads return 404, not 403.
Resource not found, or hidden for tenant-enumeration safety (the caller lacks permission to know whether the resource exists).
Conflict — the current resource state does not allow this operation (e.g. assessment already started, email already in use).
Semantic validation failure — request shape was valid but contents were not.
Too many requests — rate limited. Retry after the window resets.
Internal server error — unexpected failure.