Open the billing pages
Returns a link to Stripe's own billing pages, where a plan can be cancelled or switched, a card replaced and past invoices read.
Those live there rather than here on purpose. Proration on an upgrade, when a downgrade
takes effect, tax, and what follows a failed payment are all decisions with money
attached, and a second implementation of them here would be a second billing system that
has to agree with the first. Whatever is changed there arrives back as the same webhooks
a checkout produces, so getSubscription reflects it without this endpoint writing
anything.
invalid_request means the account has never bought anything and so has no billing to
manage - offer a plan from GET /v1/products instead.
A URL rather than a redirect, for the same reason createCheckout returns one.
API key: Authorization: Bearer gsk_.... Used by the Godot plugin, the MCP server and the engine.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/billing/portal" \ -H "Content-Type: application/json" \ -d '{}'{ "portal_url": "http://example.com"}