Prices define the unit cost, currency, and (optional) billing cycle for both recurring and one-time purchases of products. Products help you track inventory or provisioning, and prices help you track payment terms. Different physical goods or levels of service should be represented by products, and pricing options should be represented by prices. This approach lets you change prices without having to change your provisioning scheme.
For example, you might have a single “gold” product that has prices for $10/month, $100/year, and €9 once.
Related guides: Set up a subscription, create an invoice, and more about products and prices.
Attributes
- idstring
Unique identifier for the object.
- activeboolean
Whether the price can be used for new purchases.
- currencyenum
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- metadataobject
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 price, hidden from customers.
- productstringExpandable
The ID of the product this price is associated with.
- recurringnullable object
The recurring components of a price such as
interval
andusage_
.type - tax_
behaviornullable enum Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of
inclusive
,exclusive
, orunspecified
. Once specified as eitherinclusive
orexclusive
, it cannot be changed.Possible enum valuesexclusive
inclusive
unspecified
- typeenum
One of
one_
ortime recurring
depending on whether the price is for a one-time purchase or a recurring (subscription) purchase.Possible enum valuesone_
time recurring
- unit_
amountnullable integer The unit amount in cents to be charged, represented as a whole integer if possible. Only set if
billing_
.scheme=per_ unit
More attributes
- objectstring
- billing_
schemeenum - createdtimestamp
- currency_
optionsnullable objectExpandable - custom_
unit_ amountnullable object - livemodeboolean
- lookup_
keynullable string - tiersnullable array of objectsExpandable
- tiers_
modenullable enum - transform_
quantitynullable object - unit_
amount_ decimalnullable decimal string
{ "id": "price_1MoBy5LkdIwHu7ixZhnattbh", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1679431181, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_NZKdYqrwEYx6iK", "recurring": { "aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 1000, "unit_amount_decimal": "1000"}
Creates a new price for an existing product. The price can be recurring or one-time.
Parameters
- currencyenumRequired
Three-letter ISO currency code, in lowercase. Must be a supported currency.
- activeboolean
Whether the price can be used for new purchases. Defaults to
true
. - metadataobject
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 price, hidden from customers.
- productstringRequired unless product_data is provided
The ID of the product that this price will belong to.
- recurringobject
The recurring components of a price such as
interval
andusage_
.type - tax_
behaviorenumRecommended if calculating taxes Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of
inclusive
,exclusive
, orunspecified
. Once specified as eitherinclusive
orexclusive
, it cannot be changed.Possible enum valuesexclusive
inclusive
unspecified
- unit_
amountintegerRequired conditionally A positive integer in cents (or 0 for a free price) representing how much to charge. One of
unit_
,amount unit_
, oramount_ decimal custom_
is required, unlessunit_ amount billing_
.scheme=tiered
More parameters
- billing_
schemeenum - currency_
optionsobject - custom_
unit_ amountobjectRequired unless unit_amount is provided - lookup_
keystring - product_
dataobjectRequired unless product is provided - tiersarray of objectsRequired if billing_scheme=tiered
- tiers_
modeenumRequired if billing_scheme=tiered - transfer_
lookup_ keyboolean - transform_
quantityobject - unit_
amount_ decimalstring
Returns
The newly created Price
object is returned upon success. Otherwise, this call raises an error.
{ "id": "price_1MoBy5LkdIwHu7ixZhnattbh", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1679431181, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_NZKdYqrwEYx6iK", "recurring": { "aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 1000, "unit_amount_decimal": "1000"}
Updates the specified price by setting the values of the parameters passed. Any parameters not provided are left unchanged.
Parameters
- activeboolean
Whether the price can be used for new purchases. Defaults to
true
. - metadataobject
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 price, hidden from customers.
- tax_
behaviorenumRecommended if calculating taxes Only required if a default tax behavior was not provided in the Stripe Tax settings. Specifies whether the price is considered inclusive of taxes or exclusive of taxes. One of
inclusive
,exclusive
, orunspecified
. Once specified as eitherinclusive
orexclusive
, it cannot be changed.Possible enum valuesexclusive
inclusive
unspecified
More parameters
- currency_
optionsobject - lookup_
keystring - transfer_
lookup_ keyboolean
Returns
The updated price object is returned upon success. Otherwise, this call raises an error.
{ "id": "price_1MoBy5LkdIwHu7ixZhnattbh", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1679431181, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": { "order_id": "6735" }, "nickname": null, "product": "prod_NZKdYqrwEYx6iK", "recurring": { "aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 1000, "unit_amount_decimal": "1000"}
Retrieves the price with the given ID.
Parameters
No parameters.
Returns
Returns a price if a valid price or plan ID was provided. Raises an error otherwise.
{ "id": "price_1MoBy5LkdIwHu7ixZhnattbh", "object": "price", "active": true, "billing_scheme": "per_unit", "created": 1679431181, "currency": "usd", "custom_unit_amount": null, "livemode": false, "lookup_key": null, "metadata": {}, "nickname": null, "product": "prod_NZKdYqrwEYx6iK", "recurring": { "aggregate_usage": null, "interval": "month", "interval_count": 1, "trial_period_days": null, "usage_type": "licensed" }, "tax_behavior": "unspecified", "tiers_mode": null, "transform_quantity": null, "type": "recurring", "unit_amount": 1000, "unit_amount_decimal": "1000"}