Modify an existing subscription’s plan, enabling both upgrades and downgrades to different pricing tiers.
Note: This will use the existing payment information of the customer to upgrade/downgrade the plan.
on_payment_failure parameter to control what happens when the plan change payment fails:
| Value | Behavior |
|---|---|
prevent_change | Keep subscription on current plan until payment succeeds. Plan change remains pending. |
apply_change | Apply plan change immediately regardless of payment outcome. This is the default. |
on_payment_failure is not specified, the behavior defaults to your business-level setting configured in the dashboard.discount_code parameter.
| Scenario | Behavior |
|---|---|
discount_code provided | Validates and applies the discount to the new plan. |
discount_code not provided, existing discount with preserve_on_plan_change=true | Existing discount is preserved if applicable to the new product. |
discount_code not provided, no preservable discount | No discount applied. |
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Subscription Id
Unique identifier of the product to subscribe to
Proration Billing Mode
prorated_immediately, full_immediately, difference_immediately Number of units to subscribe for. Must be at least 1.
x >= 0Addons for the new plan. Note : Leaving this empty would remove any existing addons
Optional discount code to apply to the new plan.
If provided, validates and applies the discount to the plan change.
If not provided and the subscription has an existing discount with preserve_on_plan_change=true,
the existing discount will be preserved (if applicable to the new product).
Metadata for the payment. If not passed, the metadata of the subscription will be taken
Controls behavior when the plan change payment fails.
prevent_change: Keep subscription on current plan until payment succeedsapply_change (default): Apply plan change immediately regardless of payment outcomeIf not specified, uses the business-level default setting.
prevent_change, apply_change Subscription plan changed. If on_payment_failure=prevent_change, the plan change is pending until payment succeeds.