changedOutput schema / properties / data / items / properties / product / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "callToActionText": {
- "description": "Accept copy shown on an order-bump card, e.g. \"Yes! Add gift wrapping\".",
- "type": [
- "string",
- "null"
- ]
- },
- "calloutIcon": {
- "anyOf": [
- {
- "description": "Icon shown before the badge text.",
- "enum": [
- "star",
- "sparkles",
- "fire",
- "bolt",
- "rocket",
- "trophy",
- "check",
- "x-mark",
- "plus",
- "arrow-right",
- "check-badge",
- "check-circle",
- "shield-check",
- "thumbs-up",
- "heart",
- "smile",
- "light-bulb",
- "sun",
- "moon",
- "gift",
- "tag",
- "percent",
- "dollar",
- "banknotes",
- "credit-card",
- "shopping-bag",
- "shopping-cart",
- "truck",
- "clock",
- "calendar",
- "bell",
- "megaphone",
- "trending-up",
- "chart",
- "refresh",
- "lock",
- "key",
- "ticket",
- "users",
- "academic-cap",
- "book",
- "music",
- "video",
- "document",
- "download",
- "mobile",
- "camera",
- "paint-brush",
- "puzzle",
- "cube",
- "globe",
- "map-pin",
- "storefront",
- "tools",
- "beaker",
- "lifebuoy",
- "chat",
- "envelope",
- "phone",
- "cake",
- "scale",
- "eye"
- ],
- "example": "star",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Icon leading the call out box."
- },
- "calloutText": {
- "description": "Call out box shown on an order-bump card under the description. Sanitised HTML: links and inline emphasis only.",
- "type": [
- "string",
- "null"
- ]
- },
- "createdAt": {
- "description": "ISO 8601 timestamp when the product was created.",
- "type": "string"
- },
- "defaultPriceId": {
- "description": "The price pre-selected at checkout: the saved default while it is enabled, or the only enabled price. Null when the product has several prices and no default, so the buyer chooses one.",
- "type": [
- "string",
- "null"
- ]
- },
- "description": {
- "description": "Product description as HTML.",
- "type": [
- "string",
- "null"
- ]
- },
- "discounts": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "properties": {
- "amountOff": {
- "type": [
- "number",
- "null"
- ]
- },
- "maxQuantity": {
- "type": [
- "number",
- "null"
- ]
- },
- "minQuantity": {
- "type": [
- "number",
- "null"
- ]
- },
- "percentOff": {
- "type": [
- "number",
- "null"
- ]
- },
- "quantityCondition": {
- "enum": [
- "checkout_quantity",
- "variant_option_quantity"
- ],
- "type": "string"
- },
- "variantOptionIds": {
- "anyOf": [
- {
- "items": {
- "pattern": "^[0-9a-fA-F]{24}$",
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "quantityCondition"
- ],
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Bulk discount tiers."
- },
- "enableFileAccessForInactiveSubscriptions": {
- "description": "Whether customers with inactive subscriptions can still access file downloads.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "features": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "properties": {
- "icon": {
- "anyOf": [
- {
- "description": "Icon leading a feature line, or `none` for no icon.",
- "enum": [
- "star",
- "sparkles",
- "fire",
- "bolt",
- "rocket",
- "trophy",
- "check",
- "x-mark",
- "plus",
- "arrow-right",
- "check-badge",
- "check-circle",
- "shield-check",
- "thumbs-up",
- "heart",
- "smile",
- "light-bulb",
- "sun",
- "moon",
- "gift",
- "tag",
- "percent",
- "dollar",
- "banknotes",
- "credit-card",
- "shopping-bag",
- "shopping-cart",
- "truck",
- "clock",
- "calendar",
- "bell",
- "megaphone",
- "trending-up",
- "chart",
- "refresh",
- "lock",
- "key",
- "ticket",
- "users",
- "academic-cap",
- "book",
- "music",
- "video",
- "document",
- "download",
- "mobile",
- "camera",
- "paint-brush",
- "puzzle",
- "cube",
- "globe",
- "map-pin",
- "storefront",
- "tools",
- "beaker",
- "lifebuoy",
- "chat",
- "envelope",
- "phone",
- "cake",
- "scale",
- "eye",
- "none"
- ],
- "example": "check-circle",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Icon leading the line. Unset, the line leads with a check; `none` draws no icon."
- },
- "text": {
- "description": "One line of the list.",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Short list of what the customer gets, shown on an order-bump card above the description."
- },
- "fileIds": {
- "anyOf": [
- {
- "items": {
- "pattern": "^[0-9a-fA-F]{24}$",
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "fixedTaxRateIds": {
- "anyOf": [
- {
- "items": {
- "type": "string"
- },
- "maxItems": 1,
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Applied Tax Rate IDs for this product."
- },
- "generateLicenseKeys": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "hasUnlimitedStock": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "headingText": {
- "description": "Heading shown above an order-bump card, e.g. \"Special one time offer\".",
- "type": [
- "string",
- "null"
- ]
- },
- "id": {
- "description": "Unique identifier for the product.",
- "type": "string"
- },
- "limitPayments": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "enabledAt": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
- },
- "limitSubscriptions": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "limitSubscriptionsStripe": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Duplicate-subscription prevention settings for this product."
- },
- "media": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "properties": {
- "fileId": {
- "description": "File ID of the media asset.",
- "type": [
- "string",
- "null"
- ]
- },
- "height": {
- "type": [
- "number",
- "null"
- ]
- },
- "name": {
- "type": [
- "string",
- "null"
- ]
- },
- "size": {
- "type": [
- "number",
- "null"
- ]
- },
- "url": {
- "description": "CDN URL of the media asset.",
- "type": [
- "string",
- "null"
- ]
- },
- "width": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Product images."
- },
- "price": {
- "additionalProperties": false,
- "properties": {
- "amount": {
- "description": "Price in smallest currency unit (cents).",
- "example": 4900,
- "type": "number"
- },
- "currency": {
- "description": "Lowercase ISO 4217 currency code.",
- "example": "usd",
- "type": "string"
- },
- "discountedFromPrice": {
- "description": "Original price before discount, in cents.",
- "type": [
- "number",
- "null"
- ]
- },
- "payWhatYouWant": {
- "description": "Whether pay-what-you-want pricing is enabled.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "paymentPlan": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "billingCycleAnchorConfig": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "dayOfMonth": {
- "anyOf": [
- {
- "maximum": 31,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Day of month the billing cycle is anchored to."
- },
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "month": {
- "anyOf": [
- {
- "maximum": 12,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "interval": {
- "anyOf": [
- {
- "enum": [
- "day",
- "week",
- "month",
- "year"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Billing interval (day, week, month, year).",
- "example": "month"
- },
- "intervalCount": {
- "description": "Number of intervals between billings.",
- "example": 1,
- "type": [
- "number",
- "null"
- ]
- },
- "planIterations": {
- "description": "Number of billing cycles after which the plan completes.",
- "type": [
- "number",
- "null"
- ]
- },
- "startDate": {
- "anyOf": [
- {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "The date on which the subscription begins."
- },
- "trialPeriodDays": {
- "description": "Trial period in days.",
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Payment plan configuration — recurring billing that completes after `planIterations` cycles. Never present together with recurring."
- },
- "pricingType": {
- "anyOf": [
- {
- "description": "Pricing type for this product - single price or multiple prices using variants.",
- "enum": [
- "single",
- "multiple"
- ],
- "example": "single",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "deprecated": true,
- "description": "Deprecated — superseded by `prices[]`. Retained for backward compatibility.",
- "example": "single"
- },
- "recurring": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "billingCycleAnchorConfig": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "dayOfMonth": {
- "anyOf": [
- {
- "maximum": 31,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Day of month the billing cycle is anchored to."
- },
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "month": {
- "anyOf": [
- {
- "maximum": 12,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "interval": {
- "anyOf": [
- {
- "enum": [
- "day",
- "week",
- "month",
- "year"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Billing interval (day, week, month, year).",
- "example": "month"
- },
- "intervalCount": {
- "description": "Number of intervals between billings.",
- "example": 1,
- "type": [
- "number",
- "null"
- ]
- },
- "startDate": {
- "anyOf": [
- {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "The date on which the subscription begins."
- },
- "trialPeriodDays": {
- "description": "Trial period in days.",
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Recurring billing configuration. Never present together with paymentPlan."
- },
- "setupFee": {
- "description": "One-time setup fee in cents.",
- "type": [
- "number",
- "null"
- ]
- },
- "setupFeeMultipliesWithQuantity": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "amount",
- "currency"
- ],
- "type": "object"
- },
- "pricePicker": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "description": {
- "description": "Text shown above the price options.",
- "type": [
- "string",
- "null"
- ]
- },
- "priceDisplayDefaults": {
- "anyOf": [
- {
- "additionalProperties": {
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "priceDisplayLabels": {
- "anyOf": [
- {
- "additionalProperties": {
- "additionalProperties": {
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "priceDisplayTabOrder": {
- "anyOf": [
- {
- "additionalProperties": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "shortenDescription": {
- "description": "Whether long price descriptions are cut behind a Show more link.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "title": {
- "description": "Heading shown above the price options.",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Price picker settings: the heading and description above the options, Show more / less, and tab labels, defaults and order."
- },
- "prices": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "description": "A single price entry on a multi-price product.",
- "properties": {
- "amount": {
- "description": "Price in smallest currency unit (cents).",
- "example": 4900,
- "type": "number"
- },
- "badge": {
- "description": "Optional short label shown over the price card.",
- "type": [
- "string",
- "null"
- ]
- },
- "badgeIcon": {
- "anyOf": [
- {
- "description": "Icon shown before the badge text.",
- "enum": [
- "star",
- "sparkles",
- "fire",
- "bolt",
- "rocket",
- "trophy",
- "check",
- "x-mark",
- "plus",
- "arrow-right",
- "check-badge",
- "check-circle",
- "shield-check",
- "thumbs-up",
- "heart",
- "smile",
- "light-bulb",
- "sun",
- "moon",
- "gift",
- "tag",
- "percent",
- "dollar",
- "banknotes",
- "credit-card",
- "shopping-bag",
- "shopping-cart",
- "truck",
- "clock",
- "calendar",
- "bell",
- "megaphone",
- "trending-up",
- "chart",
- "refresh",
- "lock",
- "key",
- "ticket",
- "users",
- "academic-cap",
- "book",
- "music",
- "video",
- "document",
- "download",
- "mobile",
- "camera",
- "paint-brush",
- "puzzle",
- "cube",
- "globe",
- "map-pin",
- "storefront",
- "tools",
- "beaker",
- "lifebuoy",
- "chat",
- "envelope",
- "phone",
- "cake",
- "scale",
- "eye"
- ],
- "example": "star",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Optional icon shown before the badge text."
- },
- "billingType": {
- "description": "Billing type. Immutable once the price exists (see the pricing-type identity lock).",
- "enum": [
- "one_time",
- "recurring"
- ],
- "example": "one_time",
- "type": "string"
- },
- "currency": {
- "description": "Lowercase ISO 4217 currency code.",
- "example": "usd",
- "type": "string"
- },
- "discountedFromPrice": {
- "description": "Original price before discount, in cents.",
- "type": [
- "number",
- "null"
- ]
- },
- "enabled": {
- "description": "Whether this price is selectable by customers.",
- "type": "boolean"
- },
- "hidden": {
- "description": "Hide this price. Hidden prices can still be shown using query parameters.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "id": {
- "description": "Unique price identifier.",
- "example": "507f1f77bcf86cd799439011",
- "type": "string"
- },
- "isDefault": {
- "description": "Whether checkout pre-selects this price: the entry `defaultPriceId` names. False on every price when the product has several prices and no default.",
- "type": "boolean"
- },
- "label": {
- "description": "Optional seller-facing label (e.g. \"Monthly\", \"Annual\").",
- "type": [
- "string",
- "null"
- ]
- },
- "order": {
- "description": "Dashboard display order.",
- "type": [
- "number",
- "null"
- ]
- },
- "payWhatYouWant": {
- "description": "Whether pay-what-you-want pricing is enabled.",
- "type": [
- "boolean",
- "null"
- ]
- },
- "paymentPlan": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "billingCycleAnchorConfig": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "dayOfMonth": {
- "anyOf": [
- {
- "maximum": 31,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Day of month the billing cycle is anchored to."
- },
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "month": {
- "anyOf": [
- {
- "maximum": 12,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "interval": {
- "anyOf": [
- {
- "enum": [
- "day",
- "week",
- "month",
- "year"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Billing interval (day, week, month, year).",
- "example": "month"
- },
- "intervalCount": {
- "description": "Number of intervals between billings.",
- "example": 1,
- "type": [
- "number",
- "null"
- ]
- },
- "planIterations": {
- "description": "Number of billing cycles after which the plan completes.",
- "type": [
- "number",
- "null"
- ]
- },
- "startDate": {
- "anyOf": [
- {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "The date on which the subscription begins."
- },
- "trialPeriodDays": {
- "description": "Trial period in days.",
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Payment plan configuration — recurring billing that completes after `planIterations` cycles. Never present together with recurring."
- },
- "pwywSuggestedPrice": {
- "description": "Suggested price in cents for PWYW prices.",
- "type": [
- "number",
- "null"
- ]
- },
- "recurring": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "billingCycleAnchorConfig": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "dayOfMonth": {
- "anyOf": [
- {
- "maximum": 31,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Day of month the billing cycle is anchored to."
- },
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "month": {
- "anyOf": [
- {
- "maximum": 12,
- "minimum": 1,
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "interval": {
- "anyOf": [
- {
- "enum": [
- "day",
- "week",
- "month",
- "year"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Billing interval (day, week, month, year).",
- "example": "month"
- },
- "intervalCount": {
- "description": "Number of intervals between billings.",
- "example": 1,
- "type": [
- "number",
- "null"
- ]
- },
- "startDate": {
- "anyOf": [
- {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "The date on which the subscription begins."
- },
- "trialPeriodDays": {
- "description": "Trial period in days.",
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "description": "Recurring billing configuration. Never present together with paymentPlan."
- },
- "reference": {
- "description": "Merchant-facing internal id used in exports and reports (e.g. `price_one_time_fixed_5000`).",
- "type": [
- "string",
- "null"
- ]
- },
- "setupFee": {
- "description": "One-time setup fee in cents.",
- "type": [
- "number",
- "null"
- ]
- },
- "setupFeeMultipliesWithQuantity": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "amount",
- "currency",
- "id",
- "enabled",
- "isDefault",
- "billingType"
- ],
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Explicit price list for this product. Populated when the product was created with `prices[]`. Each entry includes an `isDefault` flag. Use `defaultPriceId` to find the pre-selected price. Disabled prices are filtered from customer-facing reads but appear in seller API responses."
- },
- "role": {
- "anyOf": [
- {
- "description": "What the product is for. `orderbump` products are the simplified add-ons a checkout page offers as order bumps and an event page offers as add-ons; they can never be sold as a page product, and a product cannot be converted between roles.",
- "enum": [
- "product",
- "orderbump"
- ],
- "example": "product",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "shortDescription": {
- "description": "Plain-text one-liner, shown where the full description is too long.",
- "type": [
- "string",
- "null"
- ]
- },
- "sku": {
- "type": [
- "string",
- "null"
- ]
- },
- "stock": {
- "type": [
- "number",
- "null"
- ]
- },
- "taxBehavior": {
- "anyOf": [
- {
- "description": "Tax behavior for this product. Determines how taxes are calculated and displayed. Options include inclusive (tax included in price), exclusive (tax added on top of price), automatic (tax behavior determined by Stripe based on tax settings), or default (use default tax behavior).",
- "enum": [
- "inclusive",
- "exclusive",
- "automatic",
- ""
- ],
- "example": "exclusive",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "taxCode": {
- "type": [
- "string",
- "null"
- ]
- },
- "title": {
- "description": "Product title.",
- "example": "Premium Course",
- "type": "string"
- },
- "type": {
- "description": "Product type.",
- "enum": [
- "charge",
- "subscription"
- ],
- "example": "charge",
- "type": "string"
- },
- "updatedAt": {
- "description": "ISO 8601 timestamp when the product was last updated.",
- "type": "string"
- },
- "variants": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "properties": {
- "hidden": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "id": {
- "type": [
- "string",
- "null"
- ]
- },
- "increasesWithQuantity": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "layout": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "collapseVariantOptions": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "imageSize": {
- "anyOf": [
- {
- "enum": [
- "small",
- "medium",
- "large",
- ""
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "showPwywPlaceholder": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "showVariantName": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "showVariantOptionNames": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "showVariantOptionPriceSign": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "showVariantOptionPrices": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "spacing": {
- "anyOf": [
- {
- "enum": [
- "comfortable",
- "compact",
- ""
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "textAlign": {
- "anyOf": [
- {
- "enum": [
- "left",
- "center",
- "stack",
- ""
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "variantOptionColumns": {
- "type": [
- "number",
- "null"
- ]
- },
- "variantOptionLayout": {
- "anyOf": [
- {
- "enum": [
- "list",
- "grid"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "manageVariantOptionStock": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "name": {
- "type": "string"
- },
- "options": {
- "anyOf": [
- {
- "items": {
- "additionalProperties": false,
- "properties": {
- "additionalChargeAmount": {
- "type": [
- "number",
- "null"
- ]
- },
- "description": {
- "type": [
- "string",
- "null"
- ]
- },
- "fileIds": {
- "anyOf": [
- {
- "items": {
- "pattern": "^[0-9a-fA-F]{24}$",
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "id": {
- "type": [
- "string",
- "null"
- ]
- },
- "image": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "fileId": {
- "type": [
- "string",
- "null"
- ]
- },
- "height": {
- "type": [
- "number",
- "null"
- ]
- },
- "name": {
- "type": [
- "string",
- "null"
- ]
- },
- "size": {
- "type": [
- "number",
- "null"
- ]
- },
- "url": {
- "type": [
- "string",
- "null"
- ]
- },
- "width": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "name": {
- "type": "string"
- },
- "payWhatYouWant": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "pwywSuggestedPrice": {
- "type": [
- "number",
- "null"
- ]
- },
- "sku": {
- "type": [
- "string",
- "null"
- ]
- },
- "status": {
- "anyOf": [
- {
- "description": "Status of a product variant, indicating whether it is enabled, disabled, or deleted.",
- "enum": [
- "enabled",
- "disabled",
- "deleted"
- ],
- "example": "enabled",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "stock": {
- "type": [
- "number",
- "null"
- ]
- },
- "type": {
- "anyOf": [
- {
- "enum": [
- "one_time",
- "recurring",
- "pay_what_you_want"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "order": {
- "type": [
- "number",
- "null"
- ]
- },
- "preselect": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "optionId": {
- "type": [
- "string",
- "null"
- ]
- },
- "quantity": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "priceIds": {
- "anyOf": [
- {
- "items": {
- "pattern": "^[0-9a-fA-F]{24}$",
- "type": "string"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Price IDs this variant group is scoped to. Present only when the product has multiple prices. Customers see this variant group only when the corresponding price is selected."
- },
- "reference": {
- "type": [
- "string",
- "null"
- ]
- },
- "required": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "selectionType": {
- "anyOf": [
- {
- "description": "Selection type for product variants, indicating how customers can select variant options in a variant. Options include single (only one option can be selected), multiple (multiple options can be selected), or quantity (customer can specify quantity for each option).",
- "enum": [
- "single",
- "multiple",
- "quantity"
- ],
- "example": "single",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "showHideLogic": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "comparison": {
- "anyOf": [
- {
- "enum": [
- "is",
- "is_not",
- "is_empty",
- "is_not_empty",
- "contains"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "element": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "elementId": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "enabled": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "value": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- {
- "type": "null"
- }
- ]
- },
- "status": {
- "anyOf": [
- {
- "description": "Status of a product variant, indicating whether it is enabled, disabled, or deleted.",
- "enum": [
- "enabled",
- "disabled",
- "deleted"
- ],
- "example": "enabled",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "useVariantOptionSkus": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "name"
- ],
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "Product variants."
- },
- "variantsRequired": {
- "type": [
- "boolean",
- "null"
- ]
- }
- },
- "required": [
- "id",
- "type",
- "title",
- "price",
- "createdAt",
- "updatedAt"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "callToActionText": {
+ "description": "Accept copy shown on an order-bump card, e.g. \"Yes! Add gift wrapping\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "calloutIcon": {
+ "anyOf": [
+ {
+ "description": "Icon shown before the badge text.",
+ "enum": [
+ "star",
+ "sparkles",
+ "fire",
+ "bolt",
+ "rocket",
+ "trophy",
+ "check",
+ "x-mark",
+ "plus",
+ "arrow-right",
+ "check-badge",
+ "check-circle",
+ "shield-check",
+ "thumbs-up",
+ "heart",
+ "smile",
+ "light-bulb",
+ "sun",
+ "moon",
+ "gift",
+ "tag",
+ "percent",
+ "dollar",
+ "banknotes",
+ "credit-card",
+ "shopping-bag",
+ "shopping-cart",
+ "truck",
+ "clock",
+ "calendar",
+ "bell",
+ "megaphone",
+ "trending-up",
+ "chart",
+ "refresh",
+ "lock",
+ "key",
+ "ticket",
+ "users",
+ "academic-cap",
+ "book",
+ "music",
+ "video",
+ "document",
+ "download",
+ "mobile",
+ "camera",
+ "paint-brush",
+ "puzzle",
+ "cube",
+ "globe",
+ "map-pin",
+ "storefront",
+ "tools",
+ "beaker",
+ "lifebuoy",
+ "chat",
+ "envelope",
+ "phone",
+ "cake",
+ "scale",
+ "eye"
+ ],
+ "example": "star",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Icon leading the call out box."
+ },
+ "calloutText": {
+ "description": "Call out box shown on an order-bump card under the description. Sanitised HTML: links and inline emphasis only.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "description": "ISO 8601 timestamp when the product was created.",
+ "type": "string"
+ },
+ "defaultPriceId": {
+ "description": "The price pre-selected at checkout: the saved default while it is enabled, or the only enabled price. Null when the product has several prices and no default, so the buyer chooses one.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "description": {
+ "description": "Product description as HTML.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "discounts": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "amountOff": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "maxQuantity": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "minQuantity": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "percentOff": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "quantityCondition": {
+ "enum": [
+ "checkout_quantity",
+ "variant_option_quantity"
+ ],
+ "type": "string"
+ },
+ "variantOptionIds": {
+ "anyOf": [
+ {
+ "items": {
+ "pattern": "^[0-9a-fA-F]{24}$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "quantityCondition"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Bulk discount tiers."
+ },
+ "enableFileAccessForInactiveSubscriptions": {
+ "description": "Whether customers with inactive subscriptions can still access file downloads.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "features": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "icon": {
+ "anyOf": [
+ {
+ "description": "Icon leading a feature line, or `none` for no icon.",
+ "enum": [
+ "star",
+ "sparkles",
+ "fire",
+ "bolt",
+ "rocket",
+ "trophy",
+ "check",
+ "x-mark",
+ "plus",
+ "arrow-right",
+ "check-badge",
+ "check-circle",
+ "shield-check",
+ "thumbs-up",
+ "heart",
+ "smile",
+ "light-bulb",
+ "sun",
+ "moon",
+ "gift",
+ "tag",
+ "percent",
+ "dollar",
+ "banknotes",
+ "credit-card",
+ "shopping-bag",
+ "shopping-cart",
+ "truck",
+ "clock",
+ "calendar",
+ "bell",
+ "megaphone",
+ "trending-up",
+ "chart",
+ "refresh",
+ "lock",
+ "key",
+ "ticket",
+ "users",
+ "academic-cap",
+ "book",
+ "music",
+ "video",
+ "document",
+ "download",
+ "mobile",
+ "camera",
+ "paint-brush",
+ "puzzle",
+ "cube",
+ "globe",
+ "map-pin",
+ "storefront",
+ "tools",
+ "beaker",
+ "lifebuoy",
+ "chat",
+ "envelope",
+ "phone",
+ "cake",
+ "scale",
+ "eye",
+ "none"
+ ],
+ "example": "check-circle",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Icon leading the line. Unset, the line leads with a check; `none` draws no icon."
+ },
+ "text": {
+ "description": "One line of the list.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "text"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Short list of what the customer gets, shown on an order-bump card above the description."
+ },
+ "fileIds": {
+ "anyOf": [
+ {
+ "items": {
+ "pattern": "^[0-9a-fA-F]{24}$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "fixedTaxRateIds": {
+ "anyOf": [
+ {
+ "items": {
+ "type": "string"
+ },
+ "maxItems": 1,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Applied Tax Rate IDs for this product."
+ },
+ "generateLicenseKeys": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "hasUnlimitedStock": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "headingText": {
+ "description": "Heading shown above an order-bump card, e.g. \"Special one time offer\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Unique identifier for the product.",
+ "type": "string"
+ },
+ "limitPayments": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "enabledAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
+ },
+ "limitSubscriptions": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "limitSubscriptionsStripe": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Duplicate-subscription prevention settings for this product."
+ },
+ "media": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "fileId": {
+ "description": "File ID of the media asset.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "height": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "size": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "url": {
+ "description": "CDN URL of the media asset.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "width": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Product images."
+ },
+ "price": {
+ "additionalProperties": false,
+ "properties": {
+ "amount": {
+ "description": "Price in smallest currency unit (cents).",
+ "example": 4900,
+ "type": "number"
+ },
+ "currency": {
+ "description": "Lowercase ISO 4217 currency code.",
+ "example": "usd",
+ "type": "string"
+ },
+ "discountedFromPrice": {
+ "description": "Original price before discount, in cents.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "payWhatYouWant": {
+ "description": "Whether pay-what-you-want pricing is enabled.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "paymentPlan": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "billingCycleAnchorConfig": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "dayOfMonth": {
+ "anyOf": [
+ {
+ "maximum": 31,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Day of month the billing cycle is anchored to."
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "month": {
+ "anyOf": [
+ {
+ "maximum": 12,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interval": {
+ "anyOf": [
+ {
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Billing interval (day, week, month, year).",
+ "example": "month"
+ },
+ "intervalCount": {
+ "description": "Number of intervals between billings.",
+ "example": 1,
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "planIterations": {
+ "description": "Number of billing cycles after which the plan completes.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "startDate": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The date on which the subscription begins."
+ },
+ "trialPeriodDays": {
+ "description": "Trial period in days.",
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Payment plan configuration — recurring billing that completes after `planIterations` cycles. Never present together with recurring."
+ },
+ "pricingType": {
+ "anyOf": [
+ {
+ "description": "Pricing type for this product - single price or multiple prices using variants.",
+ "enum": [
+ "single",
+ "multiple"
+ ],
+ "example": "single",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "deprecated": true,
+ "description": "Deprecated — superseded by `prices[]`. Retained for backward compatibility.",
+ "example": "single"
+ },
+ "recurring": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "billingCycleAnchorConfig": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "dayOfMonth": {
+ "anyOf": [
+ {
+ "maximum": 31,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Day of month the billing cycle is anchored to."
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "month": {
+ "anyOf": [
+ {
+ "maximum": 12,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interval": {
+ "anyOf": [
+ {
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Billing interval (day, week, month, year).",
+ "example": "month"
+ },
+ "intervalCount": {
+ "description": "Number of intervals between billings.",
+ "example": 1,
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "startDate": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The date on which the subscription begins."
+ },
+ "trialPeriodDays": {
+ "description": "Trial period in days.",
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Recurring billing configuration. Never present together with paymentPlan."
+ },
+ "setupFee": {
+ "description": "One-time setup fee in cents.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "setupFeeMultipliesWithQuantity": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "amount",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "pricePicker": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "description": "Text shown above the price options.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "priceDisplayDefaults": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "priceDisplayLabels": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "priceDisplayTabOrder": {
+ "anyOf": [
+ {
+ "additionalProperties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shortenDescription": {
+ "description": "Whether long price descriptions are cut behind a Show more link.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "title": {
+ "description": "Heading shown above the price options.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Price picker settings: the heading and description above the options, Show more / less, and tab labels, defaults and order."
+ },
+ "prices": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "description": "A single price entry on a multi-price product.",
+ "properties": {
+ "amount": {
+ "description": "Price in smallest currency unit (cents).",
+ "example": 4900,
+ "type": "number"
+ },
+ "badge": {
+ "description": "Optional short label shown over the price card.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "badgeIcon": {
+ "anyOf": [
+ {
+ "description": "Icon shown before the badge text.",
+ "enum": [
+ "star",
+ "sparkles",
+ "fire",
+ "bolt",
+ "rocket",
+ "trophy",
+ "check",
+ "x-mark",
+ "plus",
+ "arrow-right",
+ "check-badge",
+ "check-circle",
+ "shield-check",
+ "thumbs-up",
+ "heart",
+ "smile",
+ "light-bulb",
+ "sun",
+ "moon",
+ "gift",
+ "tag",
+ "percent",
+ "dollar",
+ "banknotes",
+ "credit-card",
+ "shopping-bag",
+ "shopping-cart",
+ "truck",
+ "clock",
+ "calendar",
+ "bell",
+ "megaphone",
+ "trending-up",
+ "chart",
+ "refresh",
+ "lock",
+ "key",
+ "ticket",
+ "users",
+ "academic-cap",
+ "book",
+ "music",
+ "video",
+ "document",
+ "download",
+ "mobile",
+ "camera",
+ "paint-brush",
+ "puzzle",
+ "cube",
+ "globe",
+ "map-pin",
+ "storefront",
+ "tools",
+ "beaker",
+ "lifebuoy",
+ "chat",
+ "envelope",
+ "phone",
+ "cake",
+ "scale",
+ "eye"
+ ],
+ "example": "star",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Optional icon shown before the badge text."
+ },
+ "billingType": {
+ "description": "Billing type. Immutable once the price exists (see the pricing-type identity lock).",
+ "enum": [
+ "one_time",
+ "recurring"
+ ],
+ "example": "one_time",
+ "type": "string"
+ },
+ "currency": {
+ "description": "Lowercase ISO 4217 currency code.",
+ "example": "usd",
+ "type": "string"
+ },
+ "discountedFromPrice": {
+ "description": "Original price before discount, in cents.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "enabled": {
+ "description": "Whether this price is selectable by customers.",
+ "type": "boolean"
+ },
+ "hidden": {
+ "description": "Hide this price. Hidden prices can still be shown using query parameters.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Unique price identifier.",
+ "example": "507f1f77bcf86cd799439011",
+ "type": "string"
+ },
+ "isDefault": {
+ "description": "Whether checkout pre-selects this price: the entry `defaultPriceId` names. False on every price when the product has several prices and no default.",
+ "type": "boolean"
+ },
+ "label": {
+ "description": "Optional seller-facing label (e.g. \"Monthly\", \"Annual\").",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "order": {
+ "description": "Dashboard display order.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "payWhatYouWant": {
+ "description": "Whether pay-what-you-want pricing is enabled.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "paymentPlan": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "billingCycleAnchorConfig": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "dayOfMonth": {
+ "anyOf": [
+ {
+ "maximum": 31,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Day of month the billing cycle is anchored to."
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "month": {
+ "anyOf": [
+ {
+ "maximum": 12,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interval": {
+ "anyOf": [
+ {
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Billing interval (day, week, month, year).",
+ "example": "month"
+ },
+ "intervalCount": {
+ "description": "Number of intervals between billings.",
+ "example": 1,
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "planIterations": {
+ "description": "Number of billing cycles after which the plan completes.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "startDate": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The date on which the subscription begins."
+ },
+ "trialPeriodDays": {
+ "description": "Trial period in days.",
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Payment plan configuration — recurring billing that completes after `planIterations` cycles. Never present together with recurring."
+ },
+ "pwywSuggestedPrice": {
+ "description": "Suggested price in cents for PWYW prices.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "recurring": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "billingCycleAnchorConfig": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "dayOfMonth": {
+ "anyOf": [
+ {
+ "maximum": 31,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Day of month the billing cycle is anchored to."
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "month": {
+ "anyOf": [
+ {
+ "maximum": 12,
+ "minimum": 1,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "interval": {
+ "anyOf": [
+ {
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "year"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Billing interval (day, week, month, year).",
+ "example": "month"
+ },
+ "intervalCount": {
+ "description": "Number of intervals between billings.",
+ "example": 1,
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "startDate": {
+ "anyOf": [
+ {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "The date on which the subscription begins."
+ },
+ "trialPeriodDays": {
+ "description": "Trial period in days.",
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Recurring billing configuration. Never present together with paymentPlan."
+ },
+ "reference": {
+ "description": "Stable label for this price, sent to exports, Zapier, Google Sheets and webhooks as `priceReference`. A generated reference can contain the amount the price was created with, such as `price_one_time_fixed_5000`. It is not updated when the amount changes, and does not need to be.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "setupFee": {
+ "description": "One-time setup fee in cents.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "setupFeeMultipliesWithQuantity": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "amount",
+ "currency",
+ "id",
+ "enabled",
+ "isDefault",
+ "billingType"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Explicit price list for this product. Populated when the product was created with `prices[]`. Each entry includes an `isDefault` flag. Use `defaultPriceId` to find the pre-selected price. Disabled prices are filtered from customer-facing reads but appear in seller API responses."
+ },
+ "role": {
+ "anyOf": [
+ {
+ "description": "What the product is for. `orderbump` products are the simplified add-ons a checkout page offers as order bumps and an event page offers as add-ons; they can never be sold as a page product, and a product cannot be converted between roles.",
+ "enum": [
+ "product",
+ "orderbump"
+ ],
+ "example": "product",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "shortDescription": {
+ "description": "Plain-text one-liner, shown where the full description is too long.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "stock": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "taxBehavior": {
+ "anyOf": [
+ {
+ "description": "Tax behavior for this product. Determines how taxes are calculated and displayed. Options include inclusive (tax included in price), exclusive (tax added on top of price), automatic (tax behavior determined by Stripe based on tax settings), or default (use default tax behavior).",
+ "enum": [
+ "inclusive",
+ "exclusive",
+ "automatic",
+ ""
+ ],
+ "example": "exclusive",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "taxCode": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "title": {
+ "description": "Product title.",
+ "example": "Premium Course",
+ "type": "string"
+ },
+ "type": {
+ "description": "Product type.",
+ "enum": [
+ "charge",
+ "subscription"
+ ],
+ "example": "charge",
+ "type": "string"
+ },
+ "updatedAt": {
+ "description": "ISO 8601 timestamp when the product was last updated.",
+ "type": "string"
+ },
+ "variants": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "hidden": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "increasesWithQuantity": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "layout": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "collapseVariantOptions": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "imageSize": {
+ "anyOf": [
+ {
+ "enum": [
+ "small",
+ "medium",
+ "large",
+ ""
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "showPwywPlaceholder": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "showVariantName": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "showVariantOptionNames": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "showVariantOptionPriceSign": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "showVariantOptionPrices": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "spacing": {
+ "anyOf": [
+ {
+ "enum": [
+ "comfortable",
+ "compact",
+ ""
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "textAlign": {
+ "anyOf": [
+ {
+ "enum": [
+ "left",
+ "center",
+ "stack",
+ ""
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "variantOptionColumns": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "variantOptionLayout": {
+ "anyOf": [
+ {
+ "enum": [
+ "list",
+ "grid"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "manageVariantOptionStock": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "options": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "additionalChargeAmount": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "fileIds": {
+ "anyOf": [
+ {
+ "items": {
+ "pattern": "^[0-9a-fA-F]{24}$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "image": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "fileId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "height": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "size": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "width": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "type": "string"
+ },
+ "payWhatYouWant": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "pwywSuggestedPrice": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "sku": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "anyOf": [
+ {
+ "description": "Status of a product variant, indicating whether it is enabled, disabled, or deleted.",
+ "enum": [
+ "enabled",
+ "disabled",
+ "deleted"
+ ],
+ "example": "enabled",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "stock": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "type": {
+ "anyOf": [
+ {
+ "enum": [
+ "one_time",
+ "recurring",
+ "pay_what_you_want"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "order": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "preselect": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "optionId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "quantity": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "priceIds": {
+ "anyOf": [
+ {
+ "items": {
+ "pattern": "^[0-9a-fA-F]{24}$",
+ "type": "string"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Price IDs this variant group is scoped to. Present only when the product has multiple prices. Customers see this variant group only when the corresponding price is selected."
+ },
+ "reference": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "required": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "selectionType": {
+ "anyOf": [
+ {
+ "description": "Selection type for product variants, indicating how customers can select variant options in a variant. Options include single (only one option can be selected), multiple (multiple options can be selected), or quantity (customer can specify quantity for each option).",
+ "enum": [
+ "single",
+ "multiple",
+ "quantity"
+ ],
+ "example": "single",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "showHideLogic": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "comparison": {
+ "anyOf": [
+ {
+ "enum": [
+ "is",
+ "is_not",
+ "is_empty",
+ "is_not_empty",
+ "contains"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "element": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "elementId": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "enabled": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "value": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "status": {
+ "anyOf": [
+ {
+ "description": "Status of a product variant, indicating whether it is enabled, disabled, or deleted.",
+ "enum": [
+ "enabled",
+ "disabled",
+ "deleted"
+ ],
+ "example": "enabled",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "useVariantOptionSkus": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Product variants."
+ },
+ "variantsRequired": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "id",
+ "type",
+ "title",
+ "price",
+ "createdAt",
+ "updatedAt"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]