Update Plan
plan_updateEdits a Plan Builder plan. plan_id is the uuid or handle from
plans_list. Send only what changes: name, description,
price_monthly, price_yearly (null removes it), trial_days,
features, events. features and events each replace the plan's
whole list, so send every entry the plan should keep. Refused when the
plan has live subscribers and the change would cost them more
(PLAN_LOCKED; make a new version in the Meridian dashboard), and
when it would price an active plan while the app cannot charge
through Shopify yet (SHOPIFY_BILLING_NOT_READY). An active plan's
changes reach new merchants at once. To put a draft live, use
plan_activate. Takes the app_id returned by apps_list. Returns
the same shape as one plans_list entry.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"app_id": "<app_id>",
"plan_id": "<plan_id>"
},
"name": "plan_update"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New plan name, unique among the app's plans. | |
| app_id | Yes | The app uuid returned by `apps_list`. | |
| events | No | The plan's per-event usage terms. Replaces the plan's whole list. At most one event may have an overage rate above 0, and a plan that charges for usage cannot have a yearly price. | |
| plan_id | Yes | Plan uuid or handle from `plans_list`. | |
| features | No | The features this plan grants. Replaces the plan's whole list: send every feature the plan should keep. An empty list removes them all. | |
| trial_days | No | Free trial length in days (min 0), or null for none. | |
| description | No | Description shown with the plan, or null to clear it. | |
| price_yearly | No | Yearly price in USD (min 0.01), or null to remove it. | |
| price_monthly | No | Monthly price in USD (min 0). | |
| organization_id | No | An organisation uuid or slug. When supplied, `app_id` is resolved within that organisation and may be a slug instead of a uuid, mirroring the Meridian web app. |