{
  "$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"
    }
  }
}