Skip to main content
POST
Upgrade Plan
Change a customer’s current plan without checkout from a trusted backend. Auth: secret key only. Publishable keys are rejected.
string
required
External customer ID.
string
required
The plan code to upgrade the customer to.

Response

Returns the updated subscription details for an allowed no-payment change. Paid upgrades return:
Browser plan changes must use POST /checkout for upgrades and downgrades. Checkout previews the exact prorated invoice, preserves the current paid plan until payment succeeds, and returns type: "scheduled" when a lower plan takes effect at the next billing boundary.
Also available to trusted backends as POST /subscriptions/change (alias). Do not expose either route to browser code.