Create a price 

Products
Prices
Create a price

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 and usage_type.

    • recurring.intervalenumRequired

      Specifies billing frequency. Either day, week, month or year.

      Possible enum values
      day
      month
      week
      year
    • recurring.interval_countinteger

      The number of intervals between subscription billings. For example, interval=month and interval_count=3 bills every 3 months. Maximum of three years interval allowed (3 years, 36 months, or 156 weeks).

    • recurring.meterstring

      The meter tracking the usage of a metered price

    • recurring.usage_typeenum

      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.

      Possible enum values
      licensed
      metered
  • 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, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

    Possible enum values
    exclusive
    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_amount_decimal, or custom_unit_amount is required, unless billing_scheme=tiered.

More parameters

  • billing_schemeenum

    Describes how to compute the price per period. Either per_unit or tiered. per_unit indicates that the fixed amount (specified in unit_amount or unit_amount_decimal) will be charged per unit in quantity (for prices with usage_type=licensed), or per unit of total usage (for prices 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.

    Possible enum values
    per_unit
    tiered
  • currency_optionsobject

    Prices defined in each available currency option. Each key must be a three-letter ISO currency code and a supported currency.

    • currency_options.<currency>.custom_unit_amountobjectRequired conditionally

      When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

      • currency_options.<currency>.custom_unit_amount.enabledbooleanRequired

        Pass in true to enable custom_unit_amount, otherwise omit custom_unit_amount.

      • currency_options.<currency>.custom_unit_amount.maximuminteger

        The maximum unit amount the customer can specify for this item.

      • currency_options.<currency>.custom_unit_amount.minimuminteger

        The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

      • currency_options.<currency>.custom_unit_amount.presetinteger

        The starting unit amount which can be updated by the customer.

    • currency_options.<currency>.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, or unspecified. Once specified as either inclusive or exclusive, it cannot be changed.

      Possible enum values
      exclusive
      inclusive
      unspecified
    • currency_options.<currency>.tiersarray of objectsRequired if billing_scheme=tiered

      Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

      • currency_options.<currency>.tiers.up_tostring | integerRequired

        Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use inf to define a fallback tier.

      • currency_options.<currency>.tiers.flat_amountinteger

        The flat billing amount for an entire tier, regardless of the number of units in the tier.

      • currency_options.<currency>.tiers.flat_amount_decimalstring

        Same as flat_amount, but accepts a decimal value representing an integer in the minor units of the currency. Only one of flat_amount and flat_amount_decimal can be set.

      • currency_options.<currency>.tiers.unit_amountinteger

        The per unit billing amount for each individual unit for which this tier applies.

      • currency_options.<currency>.tiers.unit_amount_decimalstring

        Same as unit_amount, but accepts a decimal value in cents with at most 12 decimal places. Only one of unit_amount and unit_amount_decimal can be set.

    • currency_options.<currency>.unit_amountintegerRequired conditionally

      A positive integer in cents (or 0 for a free price) representing how much to charge.

    • currency_options.<currency>.unit_amount_decimalstringRequired conditionally

      Same as unit_amount, but accepts a decimal value in cents with at most 12 decimal places. Only one of unit_amount and unit_amount_decimal can be set.

  • custom_unit_amountobjectRequired unless unit_amount is provided

    When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.

    • custom_unit_amount.enabledbooleanRequired

      Pass in true to enable custom_unit_amount, otherwise omit custom_unit_amount.

    • custom_unit_amount.maximuminteger

      The maximum unit amount the customer can specify for this item.

    • custom_unit_amount.minimuminteger

      The minimum unit amount the customer can specify for this item. Must be at least the minimum charge amount.

    • custom_unit_amount.presetinteger

      The starting unit amount which can be updated by the customer.

  • lookup_keystring

    A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.

  • product_dataobjectRequired unless product is provided

    These fields can be used to create a new product that this price will belong to.

    • product_data.namestringRequired

      The product’s name, meant to be displayable to the customer.

    • product_data.activeboolean

      Whether the product is currently available for purchase. Defaults to true.

    • product_data.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.

    • product_data.statement_descriptorstring

      An arbitrary string to be displayed on your customer’s credit card or bank statement. While most banks display this information consistently, some may display it incorrectly or not at all.

      This may be up to 22 characters. The statement description may not include <, >, \, ", ' characters, and will appear on your customer’s statement in capital letters. Non-ASCII characters are automatically stripped.

    • product_data.tax_codestringRecommended if calculating taxes

      A tax code ID.

    • product_data.unit_labelstring

      A label that represents units of this product. When set, this will be included in customers’ receipts, invoices, Checkout, and the customer portal.

  • tiersarray of objectsRequired if billing_scheme=tiered

    Each element represents a pricing tier. This parameter requires billing_scheme to be set to tiered. See also the documentation for billing_scheme.

    • tiers.up_tostring | integerRequired

      Specifies the upper bound of this tier. The lower bound of a tier is the upper bound of the previous tier adding one. Use inf to define a fallback tier.

    • tiers.flat_amountinteger

      The flat billing amount for an entire tier, regardless of the number of units in the tier.

    • tiers.flat_amount_decimalstring

      Same as flat_amount, but accepts a decimal value representing an integer in the minor units of the currency. Only one of flat_amount and flat_amount_decimal can be set.

    • tiers.unit_amountinteger

      The per unit billing amount for each individual unit for which this tier applies.

    • tiers.unit_amount_decimalstring

      Same as unit_amount, but accepts a decimal value in cents with at most 12 decimal places. Only one of unit_amount and unit_amount_decimal can be set.

  • tiers_modeenumRequired if billing_scheme=tiered

    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 successively change as the quantity grows.

  • transfer_lookup_keyboolean

    If set to true, will atomically remove the lookup key from the existing price, and assign it to this price.

  • transform_quantityobject

    Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with tiers.

    • transform_quantity.divide_byintegerRequired

      Divide usage by this number.

    • transform_quantity.roundenumRequired

      After division, either round the result up or down.

  • unit_amount_decimalstring

    Same as unit_amount, but accepts a decimal value in cents with at most 12 decimal places. Only one of unit_amount and unit_amount_decimal can be set.

Returns

The newly created Price object is returned upon success. Otherwise, this call throws an error.

POST /v1/prices
const stripe = require('stripe')('sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2');
const price = await stripe.prices.create({
currency: 'usd',
unit_amount: 1000,
recurring: {
interval: 'month',
},
product_data: {
name: 'Gold Plan',
},
});
Response
{
"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": {
"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"
}