Update Plan
Update a plan’s pricing, billing interval, visibility, stock, and other settings.
Authorizations
A company API key, company scoped JWT, app API key, or user OAuth token.
Headers
Pins the request to a dated API version. When omitted, the request uses the original (2025-01-01) request/response shapes, so existing unversioned callers are never broken. Generated SDKs always send the latest version they were built against. An unrecognized value is rejected with a 400. The schemas documented here always describe the latest version.
"2026-06-09"
Path Parameters
The unique identifier of the plan, which will look like plan_*************.
Body
Whether to offer a retention discount when a customer attempts to cancel.
A comparison price displayed with a strikethrough for the initial price.
A comparison price displayed with a strikethrough for the renewal price.
Whether this plan accepts local currency payments via adaptive pricing.
The number of days between recurring charges. For example, 30 for monthly or 365 for yearly.
Checkout styling overrides for this plan.
The three-letter ISO currency code for the plan's pricing. Defaults to USD.
An array of custom field definitions to collect from customers at checkout. Omitting this field clears existing custom fields.
A text description of the plan displayed to customers on the product page.
The number of days until the membership expires and access is revoked.
An image displayed on the product page to represent this plan.
The amount charged on the first purchase, in the plan's currency (e.g., 10.43 for $10.43).
Private notes visible only to the business owner. Not shown to customers.
Whether this plan uses legacy payment method controls.
Custom key-value pairs to store on the plan. Included in webhook payloads for payment and membership events.
Override the default tax classification for this specific plan.
Explicit payment method configuration for the plan. When not provided, the account's defaults apply.
The amount charged each billing period for recurring plans, in the plan's currency.
The maximum number of units available for purchase. Ignored when unlimited_stock is true.
The 3D Secure behavior for this plan. Send null to inherit the account default.
mandate_challenge, frictionless The display name of the plan shown to customers on the product page.
The number of free trial days before the first charge on a recurring plan.
Whether the plan has unlimited stock. When true, the stock field is ignored.
Whether the plan is visible to customers or hidden from public view.
Response
plan updated
The ID of the plan, which will look like plan_*************
When the plan was created, as an ISO 8601 timestamp
When the plan was last updated, as an ISO 8601 timestamp
Whether the plan is visible to customers or hidden from public view
visible, hidden, archived, quick_link The billing model for this plan: 'renewal' for recurring subscriptions or 'one_time' for single payments
renewal, one_time The method used to sell this plan, e.g. 'buy_now' or 'waitlist'
buy_now, waitlist The three-letter ISO currency code all prices on this plan are denominated in
usd, sgd, inr, aud, brl, cad, dkk, eur, nok, gbp, sek, chf, hkd, huf, jpy, mxn, myr, pln, czk, nzd, aed, eth, ape, cop, ron, thb, bgn, idr, dop, php, try, krw, twd, vnd, pkr, clp, uyu, ars, zar, dzd, tnd, mad, kes, kwd, jod, all, xcd, amd, bsd, bhd, bob, bam, khr, crc, xof, egp, etb, gmd, ghs, gtq, gyd, ils, jmd, mop, mga, mur, mdl, mnt, nad, ngn, mkd, omr, pyg, pen, qar, rwf, sar, rsd, lkr, tzs, ttd, uzs, rub, btc, cny, usdt, kzt, awg, whop_usd, xau The account that sells this plan, an object with an id and title. Null for standalone invoice plans
The product this plan belongs to, an object with an id and title. Null for standalone plans
The invoice this plan was generated for, an object with an id. Null unless the plan was created for an invoice
The number of days between recurring charges. Null for one-time plans
The display name of the plan shown to customers
A text description of the plan visible to customers
The full URL where customers can purchase this plan directly
The number of days until the membership expires, for expiration-based plans
The initial purchase price in the plan's currency
The recurring price charged every billing period in the plan's currency
The number of free trial days before the first charge on a recurring plan
The 3D Secure behavior for this plan. Null means the plan inherits the account default
mandate_challenge, frictionless The number of active memberships on this plan. Only visible to authorized team members
Private notes visible only to authorized team members
Custom key-value pairs stored on the plan
The number of units available for purchase. Only visible to authorized team members
Whether the plan has unlimited stock
The number of installment payments required before the subscription pauses
Whether this plan accepts local currency payments via adaptive pricing
The explicit payment method configuration for the plan, an object with enabled, disabled and include_platform_defaults. Null if the plan uses default settings
How tax is handled for this plan: 'inclusive', 'exclusive', or 'unspecified'
Whether tax is collected on purchases of this plan
Custom input fields displayed on the checkout form, objects with id, field_type, name, order, placeholder and required

