Skip to main content
POST
Create 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"

Body

application/json
billingStrategy
object
required
features
object
required
fulfillment
object
required
limits
object
required
metadata
object
required
name
string
required
Required string length: 2 - 200
Pattern: ^[\p{L}\p{N} .,'"&\/()+:\-]*$
overagePolicy
object
required
prorationPolicy
object
required
returnPolicy
object
required
usageTracking
object
required
warranty
object
required
accessExpiryDays
integer
Required range: x > 0
autoRenew
boolean
basePrice
number
Required range: x > 0
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
price
number
Required range: 0 < x < 10000000
pricingOptions
object[]
rolloverUnusedUnits
boolean
setupFee
number
Required range: x > 0
status
enum<string>
Available options:
active,
inactive,
archived
taxBehavior
enum<string>
Available options:
auto,
inclusive,
exclusive
trialDays
integer
Required range: x > 0
type
enum<string>
Available options:
recurring,
usage-based,
one-time,
hybrid

Response

Plan created 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