<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Moves your workspace's paid plan to another plan. Pass the price ID of the new plan, from price_ids in List plans. Only the workspace owner can change the plan.

<Warning>An upgrade applies right away and charges the saved payment method now, with no confirmation step. The charge is either the prorated difference for the rest of the billing period or the full price difference between the plans, depending on the plans. Check the amount first with Preview plan change.</Warning>

A downgrade charges nothing now. It's scheduled for the end of the billing period, and you can undo it with Cancel scheduled plan change. Either change also clears a pending cancellation, so the plan renews again.

<Warning>success: false doesn't mean the change failed. The upgrade is already applied, and its charge needs the payer to act. Send them to payment_action_url. Until they pay, the invoice stays open.</Warning>

This works for plans billed through Stripe. If the workspace is billed through Wix, this returns 409 workspace_billed_through_wix. Use Change Wix plan instead.

The base rate limit is 10 requests per hour per user. See Rate limits for the multiplier your plan gets.

post/api/billing/update-subscription/{price_id}

Request

  • Base URL
    https://app.base44.com
  • URL
    https://app.base44.com/api/billing/update-subscription/{price_id}
  • Auth
    HTTP bearer

Path parameters

price_idstring required

Price ID of the plan to move to, from price_ids in List plans.

Response

The plan change, applied now or scheduled.

successboolean required

true when the change is complete. false when an upgrade is already applied but its charge needs the payer to act, for example to confirm the payment with their bank.

payment_action_urlstring nullable required

Stripe page where the payer completes the charge when success is false. null when no action is needed. It can also be null when success is false. Then find the open invoice with Get billing info.

Example response

{
  "success": true,
  "payment_action_url": "https://invoice.stripe.com/i/acct_1N3XrmDr56L89dkK/live_YWNjdF8xTjNYcm1EcjU2TDg5ZGtL",
  "subscription": {
    "id": "sub_1QxYzAbCdEfGhIjK",
    "status": "active",
    "schedule_id": "sub_sched_1QxYzAbCdEfGhIjK"
  }
}

Changes