v52

latestOpenAPI 3.0.0raw.githubusercontent.com2026-08-015891,4406.1 MB

Create a plan

You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.

post/v1/plans

Response

Successful response.

activeboolean required

Whether the plan can be used for new purchases.

amountinteger nullable

The unit amount in cents (or local equivalent) to be charged, represented as a whole integer if possible. Only set if billing_scheme=per_unit.

amount_decimalstring decimal nullable

The unit amount in cents (or local equivalent) to be charged, represented as a decimal string with at most 12 decimal places. Only set if billing_scheme=per_unit.

billing_scheme'per_unit' | 'tiered' required

Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in amount) will be charged per unit in quantity (for plans with usage_type=licensed), or per unit of total usage (for plans with usage_type=metered). tiered indicates that the unit pricing will be computed using a tiering strategy as defined using the tiers and tiers_mode attributes.

createdinteger required

Time at which the object was created. Measured in seconds since the Unix epoch.

currencystring currency required

Three-letter ISO currency code, in lowercase. Must be a supported currency.

idstring required

Unique identifier for the object.

interval'day' | 'month' | 'week' | 'year' required

The frequency at which a subscription is billed. One of day, week, month or year.

interval_countinteger required

The number of intervals (specified in the interval attribute) between subscription billings. For example, interval=month and interval_count=3 bills every 3 months.

livemodeboolean required

If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.

metadataobject nullable

Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

meterstring nullable

The meter tracking the usage of a metered price

nicknamestring nullable

A brief description of the plan, hidden from customers.

object'plan' required

String representing the object's type. Objects of the same type share the same value.

tiers_mode'graduated' | 'volume' nullable

Defines if the tiering price should be graduated or volume based. In volume-based tiering, the maximum quantity within a period determines the per unit price. In graduated tiering, pricing can change as the quantity grows.

trial_period_daysinteger nullable

Default number of trial days when subscribing a customer to this plan using trial_from_plan=true.

usage_type'licensed' | 'metered' required

Configures how the quantity per period should be determined. Can be either metered or licensed. licensed automatically bills the quantity set when adding it to a subscription. metered aggregates the total usage based on usage records. Defaults to licensed.