API ReferenceBilling

Create a plan change link

POST /rest/v1/billing/plan_change_link

POST
/billing/plan_change_link

Subscribe, reactivate, upgrade, downgrade, or switch between monthly and annual billing. Refused with plan_limits_exceeded when the store's usage doesn't fit the target plan. Reduce usage first. The link opens Stripe Checkout (no card yet, trial or canceled), the Stripe portal confirmation page with the prorated amount (active subscription), or PayPal's approval page (stores billed through PayPal). Nothing changes until the person confirms there; the result arrives as an update of GET /billing. Requires billing:manage.

AuthorizationBearer <token>

Authorization: Bearer nbl_live_... (or nbl_test_... for test mode). Test-mode writes are validated and simulated but never persisted and never touch channels; simulated results are marked simulated.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/billing/plan_change_link" \  -H "Content-Type: application/json" \  -d '{    "plan": "basic"  }'
{  "object": "billing_link",  "action": "change_plan",  "provider": "stripe",  "url": "http://example.com",  "plan": "string",  "interval": "string",  "note": "string"}

Last updated on October 15, 2026

Need help?

Email us and a human replies, usually within one business day.