Skip to main content
PUT
Update a plan for a product

Authorizations

Authorization
string
header
required

Provider secret API key (sk_live_… / sk_test_…) supplied as a Bearer token.

Path Parameters

productRef
string
required

Product reference or ID

Example:

"prd_1A2B3C4D"

planRef
string
required

Plan reference or ID

Example:

"pln_1A2B3C4D"

Body

application/json
billingStrategy
object
required
features
object
required
fulfillment
object
required
limits
object
required
metadata
object
required
overagePolicy
object
required
prorationPolicy
object
required
returnPolicy
object
required
warranty
object
required
accessExpiryDays
integer
Required range: x > 0
autoRenew
boolean
billingCycle
enum<string>
Available options:
weekly,
monthly,
quarterly,
yearly,
custom
billingModel
enum<string>
Available options:
pre-paid,
post-paid
cancellationNoticeDays
integer
Required range: x > 0
creditsPerUnit
integer
Required range: x > 1
currency
string
default
boolean
description
string
Maximum string length: 500
Pattern: ^[\p{L}\p{N}\s.,'"&\/()+:%;?!@#_[\]\-]*$
freeUnits
integer
Required range: x > 0
hidden
boolean
limit
integer
Required range: x > 0
maxActiveUsers
integer
Required range: x > 0
name
string
Required string length: 2 - 200
Pattern: ^[\p{L}\p{N} .,'"&\/()+:\-]*$
price
number
Required range: 0 < x < 10000000
pricingOptions
object[]
rolloverUnusedUnits
boolean
status
enum<string>
Available options:
active,
inactive,
archived
taxBehavior
enum<string>
Available options:
auto,
inclusive,
exclusive

Response

Plan updated successfully

createdAt
string
required

Creation timestamp

currency
string
required

Currency code (ISO 4217)

Example:

"USD"

hidden
boolean
required

Whether the plan is hidden from customer-facing surfaces. When true, the plan does not appear in checkout or the SDK catalog and can only be granted via direct assignment (enterprise plans).

Example:

false

isActive
boolean
required

Whether the plan is active (derived from status)

Example:

true

price
number
required

Plan price in cents

Example:

2999

reference
string
required

Plan reference

Example:

"pln_1A2B3C4D"

requiresPayment
boolean
required

Whether payment is required

Example:

true

status
string
required

Plan status

Example:

"active"

type
enum<string>
required

Plan type exposed in SDK

Available options:
recurring,
one-time,
usage-based,
hybrid
Example:

"recurring"

updatedAt
string
required

Last update timestamp

accessExpiryDays
number

Access expiry in days

billingCycle
string

Billing cycle

Example:

"monthly"

billingModel
enum<string>

Billing model

Available options:
pre-paid,
post-paid
Example:

"pre-paid"

creditsPerUnit
number

Credits per usage unit (integer, >= 1)

Example:

1

currencySymbol
string

Currency symbol (derived from currency)

Example:

"$"

description
string

Plan description

Example:

"Best for teams getting started"

features
object

Plan features

freeUnits
number

Number of free units included

Example:

100

limit
number

Usage limit for the meter

Example:

10000

limits
object

Usage limits

maxActiveUsers
number

Maximum number of active users

measures
string

What the plan measures for usage tracking

Example:

"requests"

meterRef
string

Meter reference for usage-based plans

Example:

"mtr_1A2B3C4D"

name
string

Plan name

Example:

"Starter"

pricingOptions
object[]

Per-currency price options for this plan

rolloverUnusedUnits
boolean

Whether unused units roll over to next period

Example:

false

setupFee
number

One-time setup fee

Example:

500

taxBehavior
enum<string>

Tax inclusion behavior for business checkout

Available options:
auto,
inclusive,
exclusive
trialDays
number

Free trial period in days

Example:

14