Skip to main content
PATCH
JavaScript

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-07-20"

Path Parameters

id
string
required

Plan ID, prefixed plan_.

Body

application/json
adaptive_pricing_enabled
boolean | null

Whether this plan accepts local currency payments via adaptive pricing.

billing_period
integer | null

Recurring billing interval in days, such as 30 for monthly or 365 for annual.

checkout_styling
object | null

Checkout styling overrides for this plan.

currency
string

The three-letter ISO currency code for the plan's pricing. Defaults to USD.

custom_fields
object[] | null

An array of custom field definitions to collect from customers at checkout. Omitting this field clears existing custom fields.

description
string | null

A text description of the plan displayed to customers on the product page.

expiration_days
integer | null

Access duration in days before the membership expires.

image
object | null

An image displayed on the product page to represent this plan.

initial_price
number | null

Initial amount charged in the plan's currency, e.g. 10.43 for $10.43.

internal_notes
string | null

Private notes visible only to the account owner. Not shown to customers.

legacy_payment_method_controls
boolean | null

Whether this plan uses legacy payment method controls.

metadata
object | null

Custom key-value pairs to store on the plan. Included in webhook payloads for payment and membership events. Max 50 keys, 100 chars per key, 500 chars per string value.

offer_cancel_discount
boolean | null

Whether to offer a retention discount when a customer attempts to cancel.

override_tax_type
string

Override the default tax classification for this specific plan.

payment_method_configuration
object | null

Explicit payment method configuration for the plan. When not provided, the account's defaults apply.

renewal_price
number | null

The amount charged each billing period for recurring plans, in the plan's currency.

stock
integer | null

The maximum number of units available for purchase. Ignored when unlimited_stock is true.

strike_through_initial_price
number | null

A comparison price displayed with a strikethrough for the initial price.

strike_through_renewal_price
number | null

A comparison price displayed with a strikethrough for the renewal price.

three_ds_level
enum<string>

3D Secure behavior for this plan. Send null to inherit the account default.

Available options:
mandate_challenge,
frictionless
title
string | null

The display name of the plan shown to customers on the product page.

trial_period_days
integer | null

Free trial duration before the first recurring charge.

unlimited_stock
boolean | null

Whether the plan has unlimited stock. When true, the stock field is ignored.

visibility
string

Whether the plan is visible to customers or hidden from public view.

Response

plan updated

account
object | null
required

Account that sells this plan; null for standalone invoice plans.

adaptive_pricing_enabled
boolean
required

Whether this plan accepts local currency payments via adaptive pricing.

billing_period
number | null
required

Recurring billing interval in days, such as 30 for monthly or 365 for annual. null for one-time plans.

collect_tax
boolean
required

Whether tax is collected on purchases of this plan.

created_at
string
required

When the plan was created, as an ISO 8601 timestamp.

currency
enum<string>
required

Three-letter ISO currency code for this plan's prices.

Available options:
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
Example:

"usd"

custom_fields
object[]
required
description
string | null
required

Customer-visible plan description.

expiration_days
number | null
required

Access duration in days for expiration-based plans.

id
string
required

Plan ID, prefixed plan_.

initial_price
number
required

Initial purchase price in plan currency.

internal_notes
string | null
required

Private notes visible only to authorized team members.

invoice
object | null
required

Invoice this plan was generated for; null unless created for an invoice.

member_count
number | null
required

Active memberships through this plan, when visible to the requester.

metadata
object | null
required

Custom key-value pairs stored on the plan.

payment_method_configuration
object | null
required

Payment method configuration (enabled, disabled, include_platform_defaults); null when plan uses default settings.

plan_type
enum<string>
required

Billing model for this plan: renewal (recurring) or one_time (single payment).

Available options:
renewal,
one_time
Example:

"renewal"

product
object | null
required

Product this plan belongs to; null for standalone plans.

purchase_url
string
required

URL where customers can purchase this plan directly.

release_method
enum<string>
required

Sales method for this plan, such as buy_now or waitlist.

Available options:
buy_now,
waitlist
Example:

"buy_now"

renewal_price
number
required

Recurring price charged every billing period.

split_pay_required_payments
number | null
required

Installment payments required before the subscription pauses.

stock
number | null
required

Units available for purchase, when visible to the requester.

tax_type
enum<string>
required

How tax is handled for this plan.

Available options:
inclusive,
exclusive,
unspecified
Example:

"inclusive"

three_ds_level
enum<string> | null
required

3D Secure behavior for this plan; null inherits account default.

Available options:
mandate_challenge,
frictionless,
null
Example:

"mandate_challenge"

title
string | null
required

Plan display name shown to customers.

trial_period_days
number | null
required

Free trial days before the first renewal charge. null if no trial is configured or the user has already used a trial for this plan.

unlimited_stock
boolean
required

Whether the plan has unlimited stock.

updated_at
string
required

When the plan was last updated, as an ISO 8601 timestamp.

visibility
enum<string>
required

Whether the plan is visible to customers or hidden from public view.

Available options:
visible,
hidden,
archived,
quick_link
Example:

"visible"