{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-post-prices-request-schema.json", "title": "PostPricesRequest", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/stripe-prices-api-openapi.yml#/components/schemas/PostPricesRequest", "type": "object", "required": [ "currency" ], "properties": { "active": { "description": "Whether the price can be used for new purchases. Defaults to `true`.", "type": "boolean" }, "billing_scheme": { "description": "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.", "enum": [ "per_unit", "tiered" ], "type": "string" }, "currency": { "description": "Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://stripe.com/docs/currencies).", "type": "string" }, "currency_options": { "additionalProperties": { "properties": { "custom_unit_amount": { "properties": { "enabled": { "type": "boolean" }, "maximum": { "type": "integer" }, "minimum": { "type": "integer" }, "preset": { "type": "integer" } }, "required": [ "enabled" ], "title": "custom_unit_amount", "type": "object" }, "tax_behavior": { "enum": [ "exclusive", "inclusive", "unspecified" ], "type": "string" }, "tiers": { "items": { "properties": { "flat_amount": { "type": "integer" }, "flat_amount_decimal": { "format": "decimal", "type": "string" }, "unit_amount": { "type": "integer" }, "unit_amount_decimal": { "format": "decimal", "type": "string" }, "up_to": { "anyOf": [ { "enum": [ "inf" ], "maxLength": 5000, "type": "string" }, { "type": "integer" } ] } }, "required": [ "up_to" ], "title": "tier", "type": "object" }, "type": "array" }, "unit_amount": { "type": "integer" }, "unit_amount_decimal": { "format": "decimal", "type": "string" } }, "title": "currency_option", "type": "object" }, "description": "Prices defined in each available currency option. Each key must be a three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html) and a [supported currency](https://stripe.com/docs/currencies).", "type": "object" }, "custom_unit_amount": { "description": "When set, provides configuration for the amount to be adjusted by the customer during Checkout Sessions and Payment Links.", "properties": { "enabled": { "type": "boolean" }, "maximum": { "type": "integer" }, "minimum": { "type": "integer" }, "preset": { "type": "integer" } }, "required": [ "enabled" ], "title": "custom_unit_amount", "type": "object" }, "expand": { "description": "Specifies which fields in the response should be expanded.", "items": { "maxLength": 5000, "type": "string" }, "type": "array" }, "lookup_key": { "description": "A lookup key used to retrieve prices dynamically from a static string. This may be up to 200 characters.", "maxLength": 200, "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) 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`.", "type": "object" }, "nickname": { "description": "A brief description of the price, hidden from customers.", "maxLength": 5000, "type": "string" }, "product": { "description": "The ID of the product that this price will belong to.", "maxLength": 5000, "type": "string" }, "product_data": { "description": "These fields can be used to create a new product that this price will belong to.", "properties": { "active": { "type": "boolean" }, "id": { "maxLength": 5000, "type": "string" }, "metadata": { "additionalProperties": { "type": "string" }, "type": "object" }, "name": { "maxLength": 5000, "type": "string" }, "statement_descriptor": { "maxLength": 22, "type": "string" }, "tax_code": { "maxLength": 5000, "type": "string" }, "unit_label": { "maxLength": 12, "type": "string" } }, "required": [ "name" ], "title": "inline_product_params", "type": "object" }, "recurring": { "description": "The recurring components of a price such as `interval` and `usage_type`.", "properties": { "aggregate_usage": { "enum": [ "last_during_period", "last_ever", "max", "sum" ], "type": "string" }, "interval": { "enum": [ "day", "month", "week", "year" ], "type": "string" }, "interval_count": { "type": "integer" }, "usage_type": { "enum": [ "licensed", "metered" ], "type": "string" } }, "required": [ "interval" ], "title": "recurring", "type": "object" }, "tax_behavior": { "description": "Only required if a [default tax behavior](https://stripe.com/docs/tax/products-prices-tax-categories-tax-behavior#setting-a-default-tax-behavior-(recommended)) 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.", "enum": [ "exclusive", "inclusive", "unspecified" ], "type": "string" }, "tiers": { "description": "Each element represents a pricing tier. This parameter requires `billing_scheme` to be set to `tiered`. See also the documentation for `billing_scheme`.", "items": { "properties": { "flat_amount": { "type": "integer" }, "flat_amount_decimal": { "format": "decimal", "type": "string" }, "unit_amount": { "type": "integer" }, "unit_amount_decimal": { "format": "decimal", "type": "string" }, "up_to": { "anyOf": [ { "enum": [ "inf" ], "maxLength": 5000, "type": "string" }, { "type": "integer" } ] } }, "required": [ "up_to" ], "title": "tier", "type": "object" }, "type": "array" }, "tiers_mode": { "description": "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.", "enum": [ "graduated", "volume" ], "type": "string" }, "transfer_lookup_key": { "description": "If set to true, will atomically remove the lookup key from the existing price, and assign it to this price.", "type": "boolean" }, "transform_quantity": { "description": "Apply a transformation to the reported usage or set quantity before computing the billed price. Cannot be combined with `tiers`.", "properties": { "divide_by": { "type": "integer" }, "round": { "enum": [ "down", "up" ], "type": "string" } }, "required": [ "divide_by", "round" ], "title": "transform_usage_param", "type": "object" }, "unit_amount": { "description": "A positive integer in cents (or local equivalent) (or 0 for a free price) representing how much to charge. One of `unit_amount` or `custom_unit_amount` is required, unless `billing_scheme=tiered`.", "type": "integer" }, "unit_amount_decimal": { "description": "Same as `unit_amount`, but accepts a decimal value in cents (or local equivalent) with at most 12 decimal places. Only one of `unit_amount` and `unit_amount_decimal` can be set.", "format": "decimal", "type": "string" } } }