Plan a subscription lifecycle change
pc_plan_subscription_changePlan a subscription lifecycle change—increase-seats, upgrade, cancel, etc.—by returning the ordered call sequence with preconditions and steps. No API calls made.
Instructions
Return the ordered call sequence for one subscription lifecycle change: increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate or transfer. Each plan reads the subscription first, states the precondition that decides whether the change is legal, performs it, and confirms it. Use pc_explain_lifecycle to find out WHICH operation is available; use this to find out HOW to run it. For a new purchase use pc_plan_purchase, and for the order side use pc_plan_order_lifecycle. Planning only: nothing is executed, no Partner Center credentials are used, and no network call is made — it is a lookup over the bundled scenario pack. Returns { goal, steps[] with order/scenarioId/method/path/url/authType/why/keyGotchas/docUrl, notes[] }. Pass any step's scenarioId to pc_generate_call for runnable code, or pc_get_scenario for its full record.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Which lifecycle change to plan. One of: increase-seats, decrease-seats, upgrade, cancel, renew-change, suspend, reactivate, migrate, transfer. Required — there is no default. Use pc_explain_lifecycle first if you do not yet know which operation the subscription's current state allows. | |
| customerId | No | Optional Partner Center customer tenant id (GUID, e.g. "c7f6e4b1-3a2d-4c5e-9f80-1b2c3d4e5f60"). When supplied it is substituted for the {customer-id} placeholder in every step's path and url, so the plan comes back ready to run. Omit it to get the generic plan with placeholders left in place; the steps returned are identical either way. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | True when the call succeeded and `data` is populated; false when `error` explains why not. | |
| data | No | The result payload. Present only when `ok` is true. | |
| error | No | Human-readable reason the call failed. Present only when `ok` is false. |