Attributes
- idstring
Unique identifier for the object.
- activeboolean
Whether the plan can be used for new purchases.
- amountnullable integer
The unit amount in the smallest currency unit to be charged, represented as a whole integer if possible. Only set if
billing_.scheme=per_ unit - currencyenum
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- intervalenum
The frequency at which a subscription is billed. One of
day,week,monthoryear.Possible enum valuesdaymonthweekyear - metadatanullable map
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.
- nicknamenullable string
A brief description of the plan, hidden from customers.
- productnullable stringExpandable
The product whose pricing this plan determines.
More attributes
- objectstring, value is "plan"
- amount_
decimalnullable decimal string - billing_
schemeenum - createdtimestamp
- interval_
countinteger - livemodeboolean
- meternullable string
- tiersnullable array of objectsIncludable
- tiers_
modenullable enum - transform_
usagenullable object - trial_
period_ daysnullable integer - usage_
typeenum
{ "id": "plan_NjpIbv3g3ZibnD", "object": "plan", "active": true, "amount": 1200, "amount_decimal": "1200", "billing_scheme": "per_unit", "created": 1681851647, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": null, "product": "prod_NjpI7DbZx6AlWQ", "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}You can now model subscriptions more flexibly using the Prices API. It replaces the Plans API and is backwards compatible to simplify your migration.
Parameters
- currencyenumRequired
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- intervalenumRequired
Specifies billing frequency. Either
day,week,monthoryear.Possible enum valuesdaymonthweekyear - activeboolean
Whether the plan is currently available for new subscriptions. Defaults to
true. - amountintegerRequired unless billing_scheme=tiered
A positive integer in the smallest currency unit (or 0 for a free plan) representing how much to charge on a recurring basis.
- metadatamap
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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to
metadata. - nicknamestring
A brief description of the plan, hidden from customers.
- productobject | string
The product whose pricing the created plan will represent. This can either be the ID of an existing product, or a dictionary containing fields used to create a service product.
More parameters
- amount_
decimaldecimal string - billing_
schemeenum - idstring
- interval_
countinteger - meterstring
- tiersarray of objectsRequired if billing_scheme=tiered
- tiers_
modeenumRequired if billing_scheme=tiered - transform_
usageobject - trial_
period_ daysinteger - usage_
typeenum
Returns
Returns the plan object.
curl https://api.stripe.com/v1/plans \ -u "sk_test_...sk_test_...:" \ -H "Stripe-Version: 2026-10-28.endive" \ -d amount=1200 \ -d currency=usd \ -d interval=month \ -d product={{PRODUCT_ID}}{ "id": "plan_NjpIbv3g3ZibnD", "object": "plan", "active": true, "amount": 1200, "amount_decimal": "1200", "billing_scheme": "per_unit", "created": 1681851647, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": {}, "nickname": null, "product": "prod_NjpI7DbZx6AlWQ", "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}Updates the specified plan by setting the values of the parameters passed. Any parameters not provided are left unchanged. By design, you cannot change a plan’s ID, amount, currency, or billing cycle.
Parameters
- idstringRequired
Unique identifier for the object.
- activeboolean
Whether the plan is currently available for new subscriptions.
- metadatamap
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. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to
metadata. - nicknamestring
A brief description of the plan, hidden from customers.
More parameters
- productstring
- trial_
period_ daysinteger
Returns
The updated plan object is returned upon success. Otherwise, this call raises an error.
curl https://api.stripe.com/v1/plans/{{PLAN_ID}} \ -u "sk_test_...sk_test_...:" \ -H "Stripe-Version: 2026-10-28.endive" \ -d "metadata[order_id]=6735"{ "id": "plan_NjpIbv3g3ZibnD", "object": "plan", "active": true, "amount": 1200, "amount_decimal": "1200", "billing_scheme": "per_unit", "created": 1681851647, "currency": "usd", "interval": "month", "interval_count": 1, "livemode": false, "metadata": { "order_id": "6735" }, "nickname": null, "product": "prod_NjpI7DbZx6AlWQ", "tiers_mode": null, "transform_usage": null, "trial_period_days": null, "usage_type": "licensed"}