Skip to main content
Glama

create_checkout_page

Create a new checkout page with an attached product and pricing.

Use this tool whenever a merchant wants to start accepting payments. The page is always created published and is immediately available at its hosted URL.

When the request is vague, create a minimal checkout page. Do not overcomplicate the setup with extra fields, redirects, discounts, variants, images, tracking, or copy unless the user asked for them or they are clearly required.

Prefer plain text for titles, descriptions, confirmation copy, and email copy. Only use HTML when it is genuinely needed to accomplish the task, such as when the user explicitly asks for formatting that plain text cannot express.

For the page's design and customer-facing labels (including translations), set themeOverrides and hostedLayoutType; list_theme_properties lists what can be set. Set themeId (from list_themes) to use a theme.

Fields:

  • Omit fields to get the defaults: Name, Email address, and a required billing Address.

  • If you pass fields, include at least one email element with type: "email" and required: true, or the request fails.

  • When tax is off and nothing is shipped, pass fields with just a name and a required email field so customers are not asked for an address.

  • To collect an address, prefer a single element: "address" field with collect: "billing" (or "billing_and_shipping" when you also need a shipping address). It renders a grouped address with country selector. The flat-field types (address-line1, shipping-address-line1, etc.) still work for niche cases but should not be the default.

  • Set disabled: true on a field to keep its settings but leave it off the page entirely. It is not rendered, cannot be revealed with show_fields, is not prefilled and is never submitted. The customer email field cannot be disabled.

Tax settings:

  • Tax is enabled by default with mode: "stripe". Omit tax entirely unless the merchant explicitly asks to change tax behaviour.

  • Three modes are available via tax.mode:

    • "stripe" - Stripe Tax calculates tax automatically based on the customer's address. Requires an address field on the page (use element: "address") and Stripe Tax configured in the merchant's account.

    • "fixed" - A fixed tax rate is applied. Call list_tax_rates first to find an existing rate. Pass its id as productData.fixedTaxRateIds, or omit it to use the account's default rate. If no suitable rate exists, use create_tax_rate to create one first.

    • "none" - No tax is collected. Set tax.enabled: false and tax.mode: "none" (or just tax.enabled: false).

  • If the merchant sells B2B, add a Tax ID field such as a VAT number.

Payment options:

  • Only these enabled combinations are supported: full, invoice, partial, cash_on_delivery, full + invoice, full + partial, or full + cash_on_delivery.

Example uses:

  • "Create a checkout page for my $49 online course" - set name, productData.title, price.amount: 4900, price.currency: "usd"

  • "Create a monthly subscription at $29/month" - set price.amount: 2900, price.currency: "usd", price.recurring: { interval: "month", intervalCount: 1 }

  • "Create a 3-payment plan of $100 each" - set price.amount: 10000, price.currency: "usd", price.paymentPlan: { interval: "month", intervalCount: 1, planIterations: 3 }

  • "Create a pay-what-you-want page with a $5 minimum" - set price.amount: 500, price.payWhatYouWant: true

  • "Create a checkout page with a one-time price and a monthly subscription option" - set productData.prices: [{ billingType: "one_time", amount: 4900, currency: "usd", label: "One-time" }, { billingType: "recurring", amount: 1000, currency: "usd", label: "Monthly", recurring: { interval: "month", intervalCount: 1 } }]

  • "Create a checkout page with annual and monthly plans" - set productData.prices: [{ billingType: "recurring", amount: 9900, currency: "usd", label: "Annual", recurring: { interval: "year", intervalCount: 1 } }, { billingType: "recurring", amount: 1000, currency: "usd", label: "Monthly", recurring: { interval: "month", intervalCount: 1 } }]

After creation, return:

  • data.id: the checkout page ID

  • data.name: the internal page name

  • data.hostedUrl: the live checkout page URL

  • data.dashboardUrl: the dashboard edit URL

If the user is building or editing a website, call add_to_website next with pageId set to data.id and pageType: "checkout", and put the returned code in the site. Do not wait for the user to ask for this step.

Input Schema

NameRequiredDescriptionDefault
taxNoTax configuration for this page. Defaults to Stripe Tax when omitted.
feesNo
nameYesInternal page name used in your dashboard and API responses.
slugNoPage URL slug. For events and forms the slug defaults to the slugified version of your `title`. For checkouts the slug defaults to the slugified version of your `productData.title`.
fieldsNoCustom checkout fields to create. When provided, at least one field must be an `email` element with `type` `email` and `required` `true`. When omitted, the page gets Name and Email address fields, plus a required billing Address on checkout and event pages. Forms get Name and Email address only.
localeNo
themeIdNoThe theme the page uses: one of your themes or a built-in one (see List themes). `themeOverrides` apply on top. Leave it out to use your store's default theme.
imageIdsNoArray of images for the page gallery. All referenced file IDs must exist and belong to your account.
redirectNoIf enabled, redirects the customer to the specified URL before the page loads.
testmodeNoPuts the page in test mode. While it is on, every purchase on this page is a test purchase: no money is taken, the buyer still receives everything the page delivers, and the records are created with `livemode: false`. Turn it off to take real payments again.
formLayoutNoHow to arrange the page's form, top to bottom. Reference a field by `fieldKey`: the `key` you gave it in `fields` in this request. Each item is one of: `field` (`fieldKey`), `heading` (`id`, `text`, `level` `heading` or `subheading`), `divider` (`id`), `discount-code` (no other properties) and `group` (`id`, optional `name`, `columns` 1 to 4, and `items` holding fields, headings, dividers or the discount code; groups never nest). You choose the `id` of each heading, divider and group: 1 to 64 characters, unique in the layout. Fields the layout leaves out are added after it, in their current order. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead. A `discount-code` item only places the discount code box: the box shows while `showCouponCodeField` is on, and the item does not switch it on. Forms have no discount code, so a form layout must leave it out. More item types may be added later. When reading a layout, skip any item type you do not recognise. When updating, send every item back as you received it, including those.
funnelStepsNoOrdered funnel configuration for this page. Supports intermediate checkout steps, one-click upsells, and confirmation behavior.
googleIndexNoAllow Google to index this page for search results. Defaults to `true`.
notifyEmailNoEmail addresses to send notifications to. Supports comma separated emails.
productDataNo
redirectUrlNoURL to redirect to after payment. Applies if `afterPaymentAction` is `redirect`.
trackingCodesNoCustom tracking scripts to include on the page. Supports HTML `<script>` tags.
paymentMethodsNo
paymentOptionsNo
redirectPageIdNoID of the page (checkout, event or form) to redirect to after payment. Applies when `afterPaymentAction` is `checkout`.
themeOverridesNoThe page's design and labels, set on top of its theme and nested by theme property path: `tokens.colorPrimary` is sent as `{ "tokens": { "colorPrimary": { "light": "#1A73E8" } } }`. Keys you leave out keep their current value, and `null` resets a property, or everything under a key, to the theme default. Call `list_theme_properties` for the supported properties, their value formats and, where a property has a fixed one, its default.
invoiceSettingsNo
redirectUrlPathNoAdditional path parameters appended to the `redirectUrl`. Applies if `afterPaymentAction` is `redirect` and `redirectUrl` is set. [Learn more](https://checkoutpage.com/docs/articles/add-field-and-variant-data-to-redirect-url)
hostedLayoutTypeNo
redirectUrlQueryNoQuery parameters for the `redirectUrl`. Applies if `afterPaymentAction` is `redirect` and `redirectUrl` is set. [Learn more](https://checkoutpage.com/docs/articles/add-field-and-variant-data-to-redirect-url)
allowDynamicLabelNo
allowDynamicPriceNo
allowDynamicTitleNoAllow page title to be overridden via URL query parameters.
savePaymentMethodNo
afterPaymentActionNoBehavior after checkout. `confirmation` shows the confirmation page. `checkout` redirects to `redirectPageId`. `redirect` sends the customer to `redirectUrl`. Defaults to `confirmation`.
limitSubscriptionsNoDeprecated — superseded by `productData.limitSubscriptions.enabled`. Accepted and applied to the page's product.
checkoutAbandonmentNo
coverProcessingFeesNoOptions that let customers choose to cover the processing fee. The list holds at most one option for now. Sending it replaces the whole list.
showCouponCodeFieldNo
sendEmailConfirmationNoSend an email confirmation to the customer. Defaults to `true`.
redirectUrlInsideEmbedNoIf the page is embedded, redirect the customer within the embed instead of redirecting the main browser window. Defaults to `false`.
allowDynamicDescriptionNoAllow page description to be overridden via URL query parameters.
allowDynamicRedirectUrlNo
sendPaymentNotificationNoSend payment/submission notification emails to the store owner.
showCouponCodeFieldTypeNo
closePopupOnClickOutsideNoWhether a popup embed closes when clicking outside the container. Defaults to `false`.
confirmationEmailMessageNoCustom confirmation email message. Accepts HTML or plain text. Write `{{id}}` where a customer's own details go, and it is filled in for each customer: `{{field_<field id>}}` for their answer to one of the page's fields, `{{variant_<variant id>}}` and `{{variant_<variant id>_sku}}` for their variant choice, or one of `price` (Amount), `amountDue` (Payment amount due), `amountPaid` (Payment amount paid), `currentPeriodEnd` (Next payment date), `planIterations` (No. of payments), `createdAt` (Created date), `status` (Status), `payment_method` (Payment method), `orderId` (Order ID), `product_title` (Product title), `order_summary` (Order summary), `variant_breakdown` (Variant selection), `license_key` (License key), `sku` (SKU), `form_title` (Form title), `event_name` (Event name), `event_date` (Event date/time), `event_location` (Event location), `event_tickets` (Tickets purchased), `booking_fee` (Booking fee), `event_meeting_link` (Virtual meeting link), `customer_portal_link` (Customer portal link), `coupon_code` (Coupon code), `coupon_discount` (Coupon discount). Product, variant, license key and billing variables apply to checkout pages, event variables to events, `form_title` to forms; a variable that does not apply is left blank. To show paragraphs only to some customers, wrap them in `<if variable="<id>" operator="<operator>" value="<value>">...</if>`, with operator one of equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, greater_than_or_equal, less_than_or_equal.
confirmationEmailSubjectNoCustom confirmation email subject.
limitSubscriptionsStripeNoDeprecated — superseded by `productData.limitSubscriptions.limitSubscriptionsStripe.enabled`. Accepted and applied to the page's product.
confirmationCheckoutTitleNoConfirmation title.
confirmationEmailShowLogoNoShow store logo in confirmation email.
allowDynamicPlanIterationsNoAllow subscription plan iterations to be overridden via URL query parameters.
customizeEmailConfirmationNoUse a custom email confirmation template. If enabled, provide `confirmationEmailSubject` and `confirmationEmailMessage`.
confirmationCheckoutMessageNoConfirmation message. Accepts HTML or plain text. Write `{{id}}` where a customer's own details go, and it is filled in for each customer: `{{field_<field id>}}` for their answer to one of the page's fields, `{{variant_<variant id>}}` and `{{variant_<variant id>_sku}}` for their variant choice, or one of `price` (Amount), `amountDue` (Payment amount due), `amountPaid` (Payment amount paid), `currentPeriodEnd` (Next payment date), `planIterations` (No. of payments), `createdAt` (Created date), `status` (Status), `payment_method` (Payment method), `orderId` (Order ID), `product_title` (Product title), `order_summary` (Order summary), `variant_breakdown` (Variant selection), `license_key` (License key), `sku` (SKU), `form_title` (Form title), `event_name` (Event name), `event_date` (Event date/time), `event_location` (Event location), `event_tickets` (Tickets purchased), `booking_fee` (Booking fee), `event_meeting_link` (Virtual meeting link), `customer_portal_link` (Customer portal link), `coupon_code` (Coupon code), `coupon_discount` (Coupon discount). Product, variant, license key and billing variables apply to checkout pages, event variables to events, `form_title` to forms; a variable that does not apply is left blank. To show paragraphs only to some customers, wrap them in `<if variable="<id>" operator="<operator>" value="<value>">...</if>`, with operator one of equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, greater_than_or_equal, less_than_or_equal.
allowDynamicPreselectedPriceNo
customizeCheckoutConfirmationNoIf set to true `confirmationCheckoutMessage` and `confirmationCheckoutTitle` will be displayed on the confirmation page. Defaults to `false`.
confirmationEmailShowStoreNameNoShow store name in confirmation email.
allowDynamicDiscountedFromPriceNo
sendCanceledSubscriptionNotificationsNoSend notifications when subscriptions are canceled.
sendRecurringPaymentFailedNotificationsNoSend notifications when recurring payments fail.
enableFileAccessForInactiveSubscriptionsNoDeprecated — superseded by `productData.enableFileAccessForInactiveSubscriptions`. Accepted and applied to the page's product.
sendRecurringPaymentSucceededNotificationsNoSend notifications when recurring payments succeed.

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / $defs / FormLayoutDivider / properties / disabled
      Added value: +{
      +  "description": "`true` keeps the divider in the layout but hides it from customers. Defaults to `false`.",
      +  "type": "boolean"
      +}
    • addedInput schema / $defs / FormLayoutHeading / properties / disabled
      Added value: +{
      +  "description": "`true` keeps the heading in the layout but hides it from customers. Defaults to `false`.",
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / FormLayoutDivider / properties / disabled
      Added value: +{
      +  "description": "`true` keeps the divider in the layout but hides it from customers. Defaults to `false`.",
      +  "type": "boolean"
      +}
    • addedOutput schema / $defs / FormLayoutHeading / properties / disabled
      Added value: +{
      +  "description": "`true` keeps the heading in the layout but hides it from customers. Defaults to `false`.",
      +  "type": "boolean"
      +}
  2. Changed5 schema fields changed
    • changedInput schema / $defs / PageCheckoutAbandonmentSettingsInput / properties / emailReminders / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "reminder1": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "body": {
      -                "description": "Email body. Accepts HTML or plain text.",
      -                "example": "<p>You left something behind!</p>",
      -                "type": "string"
      -              },
      -              "buttonText": {
      -                "description": "Email call-to-action button label.",
      -                "example": "Complete order",
      -                "type": "string"
      -              },
      -              "customizeEmail": {
      -                "description": "Enable a custom email for this reminder.",
      -                "example": true,
      -                "type": "boolean"
      -              },
      -              "subject": {
      -                "description": "Email subject line.",
      -                "example": "Complete your purchase",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "customizeEmail"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "reminder2": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "body": {
      -                "description": "Email body. Accepts HTML or plain text.",
      -                "example": "<p>You left something behind!</p>",
      -                "type": "string"
      -              },
      -              "buttonText": {
      -                "description": "Email call-to-action button label.",
      -                "example": "Complete order",
      -                "type": "string"
      -              },
      -              "customizeEmail": {
      -                "description": "Enable a custom email for this reminder.",
      -                "example": true,
      -                "type": "boolean"
      -              },
      -              "subject": {
      -                "description": "Email subject line.",
      -                "example": "Complete your purchase",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "customizeEmail"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "reminder3": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "body": {
      -                "description": "Email body. Accepts HTML or plain text.",
      -                "example": "<p>You left something behind!</p>",
      -                "type": "string"
      -              },
      -              "buttonText": {
      -                "description": "Email call-to-action button label.",
      -                "example": "Complete order",
      -                "type": "string"
      -              },
      -              "customizeEmail": {
      -                "description": "Enable a custom email for this reminder.",
      -                "example": true,
      -                "type": "boolean"
      -              },
      -              "subject": {
      -                "description": "Email subject line.",
      -                "example": "Complete your purchase",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "customizeEmail"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "reminder1": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "body": {
      +                "description": "Email body. Accepts HTML or plain text. Takes the same `{{id}}` variables as `confirmationEmailMessage`, except `amountDue`, `amountPaid`, `currentPeriodEnd`, `status`, `payment_method` and `customer_portal_link`: the customer has not paid yet.",
      +                "example": "<p>You left something behind!</p>",
      +                "type": "string"
      +              },
      +              "buttonText": {
      +                "description": "Email call-to-action button label.",
      +                "example": "Complete order",
      +                "type": "string"
      +              },
      +              "customizeEmail": {
      +                "description": "Enable a custom email for this reminder.",
      +                "example": true,
      +                "type": "boolean"
      +              },
      +              "subject": {
      +                "description": "Email subject line.",
      +                "example": "Complete your purchase",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "customizeEmail"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "reminder2": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "body": {
      +                "description": "Email body. Accepts HTML or plain text. Takes the same `{{id}}` variables as `confirmationEmailMessage`, except `amountDue`, `amountPaid`, `currentPeriodEnd`, `status`, `payment_method` and `customer_portal_link`: the customer has not paid yet.",
      +                "example": "<p>You left something behind!</p>",
      +                "type": "string"
      +              },
      +              "buttonText": {
      +                "description": "Email call-to-action button label.",
      +                "example": "Complete order",
      +                "type": "string"
      +              },
      +              "customizeEmail": {
      +                "description": "Enable a custom email for this reminder.",
      +                "example": true,
      +                "type": "boolean"
      +              },
      +              "subject": {
      +                "description": "Email subject line.",
      +                "example": "Complete your purchase",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "customizeEmail"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "reminder3": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "body": {
      +                "description": "Email body. Accepts HTML or plain text. Takes the same `{{id}}` variables as `confirmationEmailMessage`, except `amountDue`, `amountPaid`, `currentPeriodEnd`, `status`, `payment_method` and `customer_portal_link`: the customer has not paid yet.",
      +                "example": "<p>You left something behind!</p>",
      +                "type": "string"
      +              },
      +              "buttonText": {
      +                "description": "Email call-to-action button label.",
      +                "example": "Complete order",
      +                "type": "string"
      +              },
      +              "customizeEmail": {
      +                "description": "Enable a custom email for this reminder.",
      +                "example": true,
      +                "type": "boolean"
      +              },
      +              "subject": {
      +                "description": "Email subject line.",
      +                "example": "Complete your purchase",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "customizeEmail"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / confirmationCheckoutMessage / description
      Previous value: -"Confirmation message. Accepts HTML or plaintext."New value: +"Confirmation message. Accepts HTML or plain text. Write `{{id}}` where a customer's own details go, and it is filled in for each customer: `{{field_<field id>}}` for their answer to one of the page's fields, `{{variant_<variant id>}}` and `{{variant_<variant id>_sku}}` for their variant choice, or one of `price` (Amount), `amountDue` (Payment amount due), `amountPaid` (Payment amount paid), `currentPeriodEnd` (Next payment date), `planIterations` (No. of payments), `createdAt` (Created date), `status` (Status), `payment_method` (Payment method), `orderId` (Order ID), `product_title` (Product title), `order_summary` (Order summary), `variant_breakdown` (Variant selection), `license_key` (License key), `sku` (SKU), `form_title` (Form title), `event_name` (Event name), `event_date` (Event date/time), `event_location` (Event location), `event_tickets` (Tickets purchased), `booking_fee` (Booking fee), `event_meeting_link` (Virtual meeting link), `customer_portal_link` (Customer portal link), `coupon_code` (Coupon code), `coupon_discount` (Coupon discount). Product, variant, license key and billing variables apply to checkout pages, event variables to events, `form_title` to forms; a variable that does not apply is left blank. To show paragraphs only to some customers, wrap them in `<if variable=\"<id>\" operator=\"<operator>\" value=\"<value>\">...</if>`, with operator one of equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, greater_than_or_equal, less_than_or_equal."
    • changedInput schema / properties / confirmationEmailMessage / description
      Previous value: -"Custom confirmation email message. Accepts HTML or plain text."New value: +"Custom confirmation email message. Accepts HTML or plain text. Write `{{id}}` where a customer's own details go, and it is filled in for each customer: `{{field_<field id>}}` for their answer to one of the page's fields, `{{variant_<variant id>}}` and `{{variant_<variant id>_sku}}` for their variant choice, or one of `price` (Amount), `amountDue` (Payment amount due), `amountPaid` (Payment amount paid), `currentPeriodEnd` (Next payment date), `planIterations` (No. of payments), `createdAt` (Created date), `status` (Status), `payment_method` (Payment method), `orderId` (Order ID), `product_title` (Product title), `order_summary` (Order summary), `variant_breakdown` (Variant selection), `license_key` (License key), `sku` (SKU), `form_title` (Form title), `event_name` (Event name), `event_date` (Event date/time), `event_location` (Event location), `event_tickets` (Tickets purchased), `booking_fee` (Booking fee), `event_meeting_link` (Virtual meeting link), `customer_portal_link` (Customer portal link), `coupon_code` (Coupon code), `coupon_discount` (Coupon discount). Product, variant, license key and billing variables apply to checkout pages, event variables to events, `form_title` to forms; a variable that does not apply is left blank. To show paragraphs only to some customers, wrap them in `<if variable=\"<id>\" operator=\"<operator>\" value=\"<value>\">...</if>`, with operator one of equals, not_equals, contains, not_contains, starts_with, ends_with, greater_than, less_than, greater_than_or_equal, less_than_or_equal."
    • changedOutput schema / properties / data / properties / confirmationCheckoutMessage / description
      Previous value: -"Confirmation page message."New value: +"Confirmation page message. Variables read as `{{id}}` and conditional paragraphs as `<if variable=\"...\" operator=\"...\" value=\"...\">` blocks; send them back unchanged to keep them."
    • changedOutput schema / properties / data / properties / confirmationEmailMessage / description
      Previous value: -"Custom confirmation email message."New value: +"Custom confirmation email message. Variables read as `{{id}}` and conditional paragraphs as `<if variable=\"...\" operator=\"...\" value=\"...\">` blocks; send them back unchanged to keep them."
  3. Changed4 schema fields changed
    • changedInput schema / $defs / FieldInput / properties / reference / description
      Previous value: -"External reference ID for integration purposes. Generated from the field type or label when omitted."New value: +"Stable key that exports, Zapier, Google Sheets and webhooks use for this field's answers. Generated from the field type or label when omitted, and not updated when the label changes. Changing it breaks integrations that match on the old key, so only send it when the seller asks."
    • changedInput schema / properties / productData / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "defaultPriceId": {
      -        "description": "ID of the price pre-selected at checkout. Must reference an existing price `id` in `prices[]`. When omitted and there are several prices, checkout opens with none selected so the buyer chooses one.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "description": {
      -        "description": "Description of the product. Accepts HTML or plain text.",
      -        "example": "Join our premium course today learn more at <a href=\"https://checkoutpage.com\">Checkout Page</a>.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "discounts": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "properties": {
      -                "amountOff": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Fixed amount discount in cents. Cannot be used with `percentOff`.",
      -                  "example": 500
      -                },
      -                "maxQuantity": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Maximum quantity for this discount tier. Leave empty for no upper limit.",
      -                  "example": 10
      -                },
      -                "minQuantity": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Minimum quantity required for this discount to apply.",
      -                  "example": 5
      -                },
      -                "percentOff": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 100,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Percentage discount to apply. Cannot be used with `amountOff`.",
      -                  "example": 10
      -                },
      -                "quantityCondition": {
      -                  "description": "How this bulk discount is triggered. Use `checkout_quantity` to apply the discount based on the total checkout quantity. Use `variant_option_quantity` only when this same request also includes `variants` and matching option `key` values referenced by `variantOptionIds`. Defaults to `checkout_quantity`.",
      -                  "enum": [
      -                    "checkout_quantity",
      -                    "variant_option_quantity"
      -                  ],
      -                  "example": "checkout_quantity",
      -                  "type": "string"
      -                },
      -                "variantOptionIds": {
      -                  "anyOf": [
      -                    {
      -                      "items": {
      -                        "properties": {
      -                          "key": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "key"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      "type": "array"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Variant option keys that this discount applies to. Only use this when `quantityCondition` is `variant_option_quantity`. Each entry must exactly match a temporary `key` from `variants[].options[].key` in the same request. These keys are caller-defined handles that are resolved to MongoDB ObjectIds at save time and do not appear in the response."
      -                }
      -              },
      -              "required": [
      -                "quantityCondition"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Bulk discounts for the product.\n\nUse `checkout_quantity` when the discount should apply to the total checkout quantity.\n\nUse `variant_option_quantity` when the discount should apply only to specific variant options. In that mode, you must do all of the following in the same request:\n1. Include `productData.variants`.\n2. Give each target variant option a temporary `key` in `variants[].options[].key`.\n3. Reference those exact keys in `discounts[].variantOptionIds[].key`.\n\n- `variants[].options`: [{ name: \"Red\", key: \"red\" }, { name: \"Blue\", key: \"blue\" }]\n- `discounts`: [{ quantityCondition: \"variant_option_quantity\", variantOptionIds: [{ key: \"red\" }, { key: \"blue\" }], minQuantity: 3, percentOff: 10 }]\n\n[Learn more](https://checkoutpage.com/docs/articles/bulk-discounts)",
      -        "example": [
      -          {
      -            "minQuantity": 3,
      -            "percentOff": 10,
      -            "quantityCondition": "variant_option_quantity",
      -            "variantOptionIds": [
      -              {
      -                "key": "red"
      -              },
      -              {
      -                "key": "blue"
      -              }
      -            ]
      -          }
      -        ]
      -      },
      -      "enableFileAccessForInactiveSubscriptions": {
      -        "description": "Allow customers with inactive subscriptions to keep accessing file downloads.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "fileIds": {
      -        "description": "Files for the product. Available to the customer after purchase.",
      -        "example": [
      -          "507f1f77bcf86cd799439011"
      -        ],
      -        "items": {
      -          "pattern": "^[0-9a-fA-F]{24}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "fixedTaxRateIds": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "pattern": "^[0-9a-fA-F]{24}$",
      -              "type": "string"
      -            },
      -            "maxItems": 1,
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "List of Tax Rate IDs applied to this product. When the page's `tax.mode` is `fixed` and this is omitted on create, the seller default rate is applied. Call `list_tax_rates` first to find an existing rate; use `create_tax_rate` to add a new one."
      -      },
      -      "generateLicenseKeys": {
      -        "description": "If true, on purchase a license key for the product is generated",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "hasUnlimitedStock": {
      -        "description": "Whether or not the stock of the product is unlimited. If set to `true`, the `stock` field is ignored.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "imageIds": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "pattern": "^[0-9a-fA-F]{24}$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Images for the product. Provide a list of image file IDs. Use the `/files/upload` API to add images.",
      -        "example": [
      -          "507f1f77bcf86cd799439011"
      -        ]
      -      },
      -      "limitPayments": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "enabled": {
      -                "description": "Prevent a customer who has already paid for this product from paying again. One-time payments only. Defaults to `false`.",
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
      -      },
      -      "limitSubscriptions": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "enabled": {
      -                "description": "Enable subscription limits. Defaults to `false`.",
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              },
      -              "limitSubscriptionsStripe": {
      -                "anyOf": [
      -                  {
      -                    "properties": {
      -                      "enabled": {
      -                        "description": "Enable Stripe-level subscription limits (checks active subscriptions in Stripe). Defaults to `false`.",
      -                        "type": [
      -                          "boolean",
      -                          "null"
      -                        ]
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Stripe-specific subscription limit configuration."
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Configuration to limit the number of active subscriptions for this product. Used to cap subscriptions to a specific number."
      -      },
      -      "price": {
      -        "description": "The singular way to set a product price — equivalent to `prices: [entry]` and materialized as one. When `prices` is also provided it takes precedence and `price` is ignored. On update, `price` is only valid while the product has at most one price (a legacy product transitions to `prices[]` on first use); products with multiple prices must be updated through `prices[]`.",
      -        "properties": {
      -          "amount": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Price in smallest currency unit (cents). Defaults to `0`.",
      -            "example": 4900
      -          },
      -          "badge": {
      -            "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      -            "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. `null` removes it."
      -          },
      -          "billingType": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "one_time",
      -                  "recurring"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Billing type. Derived when omitted: `recurring`/`paymentPlan` present → recurring, else one_time. Part of the pricing-type identity fixed at creation — cannot change on an existing price."
      -          },
      -          "currency": {
      -            "anyOf": [
      -              {
      -                "maxLength": 3,
      -                "minLength": 3,
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Currency code (lowercase). Defaults to `usd`.",
      -            "example": "usd"
      -          },
      -          "discountedFromPrice": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The original price of the product in the smallest currency unit (cents).",
      -            "example": 9900
      -          },
      -          "enabled": {
      -            "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "hidden": {
      -            "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "description": "Existing price id (omit when creating a new price).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "label": {
      -            "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "order": {
      -            "description": "Dashboard display order. Lower numbers appear first.",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "payWhatYouWant": {
      -            "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "paymentPlan": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "billingCycleAnchorConfig": {
      -                    "anyOf": [
      -                      {
      -                        "properties": {
      -                          "dayOfMonth": {
      -                            "anyOf": [
      -                              {
      -                                "maximum": 31,
      -                                "minimum": 1,
      -                                "type": "number"
      -                              },
      -                              {
      -                                "type": "null"
      -                              }
      -                            ],
      -                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      -                            "example": 1
      -                          },
      -                          "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 for subscriptions.",
      -                    "example": "month"
      -                  },
      -                  "intervalCount": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 1,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Number of intervals between billings.",
      -                    "example": 1
      -                  },
      -                  "planIterations": {
      -                    "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      -                    "example": 3,
      -                    "minimum": 1,
      -                    "type": "number"
      -                  },
      -                  "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.",
      -                    "example": "2026-02-25T06:40:09.463Z"
      -                  },
      -                  "trialPeriodDays": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Trial period in days for subscriptions."
      -                  }
      -                },
      -                "required": [
      -                  "planIterations"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      -          },
      -          "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[]`. Accepted and ignored.",
      -            "example": "single"
      -          },
      -          "pwywSuggestedPrice": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      -            "example": 2500
      -          },
      -          "recurring": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "billingCycleAnchorConfig": {
      -                    "anyOf": [
      -                      {
      -                        "properties": {
      -                          "dayOfMonth": {
      -                            "anyOf": [
      -                              {
      -                                "maximum": 31,
      -                                "minimum": 1,
      -                                "type": "number"
      -                              },
      -                              {
      -                                "type": "null"
      -                              }
      -                            ],
      -                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      -                            "example": 1
      -                          },
      -                          "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 for subscriptions.",
      -                    "example": "month"
      -                  },
      -                  "intervalCount": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 1,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Number of intervals between billings.",
      -                    "example": 1
      -                  },
      -                  "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.",
      -                    "example": "2026-02-25T06:40:09.463Z"
      -                  },
      -                  "trialPeriodDays": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Trial period in days for subscriptions."
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The recurring components of a price such as `interval` and `intervalCount`"
      -          },
      -          "reference": {
      -            "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      -            "example": "price_one_time_fixed_5000",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "setupFee": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "One-time setup fee in cents."
      -          },
      -          "setupFeeMultipliesWithQuantity": {
      -            "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      -            "example": false,
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "pricePicker": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "description": {
      -                "description": "Text shown under the heading, above the price options. Line breaks are kept.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "priceDisplayDefaults": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "type": "string"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis default tab selection. Keyed by grouping axis. E.g. `{ interval: \"Monthly\" }`."
      -              },
      -              "priceDisplayLabels": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "additionalProperties": {
      -                        "type": "string"
      -                      },
      -                      "propertyNames": {
      -                        "type": "string"
      -                      },
      -                      "type": "object"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis label overrides for price tabs. Keyed by grouping axis (`billing` or `interval`), then by derived group name. E.g. `{ interval: { \"One-time\": \"Lifetime\" } }`."
      -              },
      -              "priceDisplayTabOrder": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "items": {
      -                        "type": "string"
      -                      },
      -                      "type": "array"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis tab display order. Keyed by grouping axis, value is ordered array of group names. E.g. `{ interval: [\"Monthly\", \"Yearly\"] }`."
      -              },
      -              "shortenDescription": {
      -                "description": "Cut long price descriptions to their first lines behind a Show more link. Defaults to `true`.",
      -                "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": {
      -        "description": "Explicit price list for this product. When provided alongside variants, use `variant.priceIds` to scope each variant group to its price. At least one entry must be enabled. When present, `prices[]` takes precedence over the legacy `price` field for determining what is shown at checkout.\n\nExample — one-time + monthly subscription:\n```json\n[\n  { \"billingType\": \"one_time\", \"amount\": 4900, \"currency\": \"usd\", \"label\": \"One-time\" },\n  { \"billingType\": \"recurring\", \"amount\": 1000, \"currency\": \"usd\", \"label\": \"Monthly\", \"recurring\": { \"interval\": \"month\", \"intervalCount\": 1 } }\n]\n```",
      -        "example": [
      -          {
      -            "amount": 4900,
      -            "billingType": "one_time",
      -            "currency": "usd",
      -            "label": "One-time"
      -          },
      -          {
      -            "amount": 1000,
      -            "billingType": "recurring",
      -            "currency": "usd",
      -            "label": "Monthly",
      -            "recurring": {
      -              "interval": "month",
      -              "intervalCount": 1
      -            }
      -          }
      -        ],
      -        "items": {
      -          "properties": {
      -            "amount": {
      -              "description": "Price in smallest currency unit (cents).",
      -              "example": 4900,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "badge": {
      -              "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      -              "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. `null` removes it."
      -            },
      -            "billingType": {
      -              "description": "Billing type. Part of the pricing-type identity fixed at creation — cannot change on an existing price.",
      -              "enum": [
      -                "one_time",
      -                "recurring"
      -              ],
      -              "example": "one_time",
      -              "type": "string"
      -            },
      -            "currency": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 3,
      -                  "minLength": 3,
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Currency code (lowercase). Defaults to `usd`.",
      -              "example": "usd"
      -            },
      -            "discountedFromPrice": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The original price of the product in the smallest currency unit (cents).",
      -              "example": 9900
      -            },
      -            "enabled": {
      -              "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "hidden": {
      -              "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "id": {
      -              "description": "Existing price id (omit when creating a new price).",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "label": {
      -              "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "order": {
      -              "description": "Dashboard display order. Lower numbers appear first.",
      -              "type": [
      -                "number",
      -                "null"
      -              ]
      -            },
      -            "payWhatYouWant": {
      -              "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "paymentPlan": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "billingCycleAnchorConfig": {
      -                      "anyOf": [
      -                        {
      -                          "properties": {
      -                            "dayOfMonth": {
      -                              "anyOf": [
      -                                {
      -                                  "maximum": 31,
      -                                  "minimum": 1,
      -                                  "type": "number"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ],
      -                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      -                              "example": 1
      -                            },
      -                            "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 for subscriptions.",
      -                      "example": "month"
      -                    },
      -                    "intervalCount": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 1,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Number of intervals between billings.",
      -                      "example": 1
      -                    },
      -                    "planIterations": {
      -                      "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      -                      "example": 3,
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    "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.",
      -                      "example": "2026-02-25T06:40:09.463Z"
      -                    },
      -                    "trialPeriodDays": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 0,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Trial period in days for subscriptions."
      -                    }
      -                  },
      -                  "required": [
      -                    "planIterations"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      -            },
      -            "pwywSuggestedPrice": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      -              "example": 2500
      -            },
      -            "recurring": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "billingCycleAnchorConfig": {
      -                      "anyOf": [
      -                        {
      -                          "properties": {
      -                            "dayOfMonth": {
      -                              "anyOf": [
      -                                {
      -                                  "maximum": 31,
      -                                  "minimum": 1,
      -                                  "type": "number"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ],
      -                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      -                              "example": 1
      -                            },
      -                            "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 for subscriptions.",
      -                      "example": "month"
      -                    },
      -                    "intervalCount": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 1,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Number of intervals between billings.",
      -                      "example": 1
      -                    },
      -                    "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.",
      -                      "example": "2026-02-25T06:40:09.463Z"
      -                    },
      -                    "trialPeriodDays": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 0,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Trial period in days for subscriptions."
      -                    }
      -                  },
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The recurring components of a price such as `interval` and `intervalCount`"
      -            },
      -            "reference": {
      -              "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      -              "example": "price_one_time_fixed_5000",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "setupFee": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "One-time setup fee in cents."
      -            },
      -            "setupFeeMultipliesWithQuantity": {
      -              "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      -              "example": false,
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            }
      -          },
      -          "required": [
      -            "amount",
      -            "billingType"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "sku": {
      -        "anyOf": [
      -          {
      -            "maxLength": 200,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "SKU of the product."
      -      },
      -      "stock": {
      -        "anyOf": [
      -          {
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Available stock of the product.",
      -        "example": 100
      -      },
      -      "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"
      -          }
      -        ],
      -        "description": "If Stripe Tax is enabled, determines the behaviour of Stripe Tax. Defaults to your Stripe Tax settings.",
      -        "example": ""
      -      },
      -      "taxCode": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(txcd_[a-zA-Z0-9]+)?$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "If Stripe Tax is enabled, determines the tax code used when calculating tax. Defaults to your Stripe Tax settings."
      -      },
      -      "title": {
      -        "anyOf": [
      -          {
      -            "maxLength": 200,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Product title. Defaults to page name if not provided.",
      -        "example": "Premium Course"
      -      },
      -      "variants": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "properties": {
      -                "hidden": {
      -                  "description": "Whether this variant is hidden. Hidden variants can be shown or filled with data by query paramers. [Learn more](https://checkoutpage.com/docs/articles/preselect-checkout-variants). Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "increasesWithQuantity": {
      -                  "description": "Whether or not the variant quantity matches the checkout quantity. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "key": {
      -                  "description": "Optional caller-defined key for this variant. Not persisted to the database. Required when other variants reference this variant in `showHideLogic.element.elementId`. Bulk discounts with `variant_option_quantity` use option-level keys from `variants[].options[].key`.",
      -                  "example": "select-package-tier",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "layout": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "collapseVariantOptions": {
      -                          "description": "If enabled, variant options are collapsed by default. Defaults to `false`.",
      -                          "example": false,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "imageSize": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "small",
      -                                "medium",
      -                                "large",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Size of variant option images. Defaults to `small`.",
      -                          "example": "small"
      -                        },
      -                        "showPwywPlaceholder": {
      -                          "description": "Show placeholder text for Pay What You Want inputs. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantName": {
      -                          "description": "Show the variant name. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionNames": {
      -                          "description": "Show variant option names. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionPriceSign": {
      -                          "description": "Show price sign (+ or -) for variant option prices. Defaults to `false`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionPrices": {
      -                          "description": "Show variant option prices. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "spacing": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "comfortable",
      -                                "compact",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Spacing between variant options. Defaults to `comfortable`.",
      -                          "example": "comfortable"
      -                        },
      -                        "textAlign": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "left",
      -                                "center",
      -                                "stack",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Text alignment for variant options. Defaults to `left`.",
      -                          "example": "left"
      -                        },
      -                        "variantOptionColumns": {
      -                          "anyOf": [
      -                            {
      -                              "maximum": 10,
      -                              "minimum": 1,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Number of columns for grid layout. Defaults to `2`.",
      -                          "example": 2
      -                        },
      -                        "variantOptionLayout": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "list",
      -                                "grid"
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Layout style for variant options. Defaults to `list`.",
      -                          "example": "list"
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Layout configuration for this variant."
      -                },
      -                "manageVariantOptionStock": {
      -                  "description": "If enabled stock is managed by the variant options. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "name": {
      -                  "description": "Name of the variant.",
      -                  "example": "Plan Type",
      -                  "type": "string"
      -                },
      -                "options": {
      -                  "description": "Options within this variant. Variant must have at least one option.",
      -                  "items": {
      -                    "properties": {
      -                      "additionalChargeAmount": {
      -                        "description": "The additional charge for selecting this variant option in cents.",
      -                        "example": 1000,
      -                        "type": [
      -                          "number",
      -                          "null"
      -                        ]
      -                      },
      -                      "description": {
      -                        "description": "Description of the variant option. Supports HTML or plain text.",
      -                        "type": [
      -                          "string",
      -                          "null"
      -                        ]
      -                      },
      -                      "discountedFromPrice": {
      -                        "anyOf": [
      -                          {
      -                            "minimum": 0,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "The original price of this variant option in cents.",
      -                        "example": 1500
      -                      },
      -                      "fileIds": {
      -                        "anyOf": [
      -                          {
      -                            "items": {
      -                              "pattern": "^[0-9a-fA-F]{24}$",
      -                              "type": "string"
      -                            },
      -                            "type": "array"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Files specific to this variant option. Available to the customer after purchase."
      -                      },
      -                      "imageId": {
      -                        "anyOf": [
      -                          {
      -                            "pattern": "^[0-9a-fA-F]{24}$",
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ]
      -                      },
      -                      "key": {
      -                        "description": "Optional caller-defined key for this option. Not persisted to the database. Required when `preselect.optionId` on the same variant, `showHideLogic.value` on another variant, or a `discounts[].variantOptionIds[].key` entry needs to reference this option in the same request.",
      -                        "example": "pro-option",
      -                        "type": [
      -                          "string",
      -                          "null"
      -                        ]
      -                      },
      -                      "name": {
      -                        "description": "Name of the variant option.",
      -                        "example": "Basic",
      -                        "type": "string"
      -                      },
      -                      "payWhatYouWant": {
      -                        "description": "If enabled, customers can choose their own price for this variant option. The minimum price is based on the additionalChargeAmount. This is only supported for `one_time` options. Defaults to `false`.",
      -                        "example": false,
      -                        "type": [
      -                          "boolean",
      -                          "null"
      -                        ]
      -                      },
      -                      "pwywSuggestedPrice": {
      -                        "anyOf": [
      -                          {
      -                            "minimum": 0,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Suggested price for Pay What You Want options in cents. This is a cosmetic field used to display a suggested amount to the customer. Defaults to `0`.",
      -                        "example": 2500
      -                      },
      -                      "sku": {
      -                        "description": "SKU for this option.",
      -                        "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"
      -                          }
      -                        ],
      -                        "description": "Status of the variant option. Defaults to `enabled`.",
      -                        "example": "enabled"
      -                      },
      -                      "stock": {
      -                        "description": "Stock quantity for this option.",
      -                        "example": 10,
      -                        "type": [
      -                          "number",
      -                          "null"
      -                        ]
      -                      },
      -                      "type": {
      -                        "anyOf": [
      -                          {
      -                            "enum": [
      -                              "one_time",
      -                              "recurring"
      -                            ],
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Type of variant option - one-time purchase or recurring subscription. For Pay What You Want options, `type` must be `one_time` and set `payWhatYouWant: true`.",
      -                        "example": "one_time"
      -                      }
      -                    },
      -                    "required": [
      -                      "name"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "minItems": 1,
      -                  "type": "array"
      -                },
      -                "order": {
      -                  "description": "Display order of the variant. Defaults to `0`.",
      -                  "example": 0,
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "preselect": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "enabled": {
      -                          "description": "Enable preselecting a variant option. Defaults to `false`.",
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "optionId": {
      -                          "description": "The `key` of the variant option to preselect. Must match the `key` of an option on this variant.",
      -                          "example": "pro-option",
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "quantity": {
      -                          "description": "Quantity to preselect for quantity selection type variants. Defaults to `1` for `single` and `multiple` selection types.",
      -                          "example": 2,
      -                          "type": [
      -                            "number",
      -                            "null"
      -                          ]
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Preselect configuration for this variant.",
      -                  "example": {
      -                    "enabled": true,
      -                    "optionId": "pro-option",
      -                    "quantity": 1
      -                  }
      -                },
      -                "priceIds": {
      -                  "anyOf": [
      -                    {
      -                      "items": {
      -                        "pattern": "^[0-9a-fA-F]{24}$",
      -                        "type": "string"
      -                      },
      -                      "type": "array"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Price IDs this variant group is scoped to. Required when the product has multiple prices configured via `prices[]`. Customers will only see this variant group when the scoped price is selected.",
      -                  "example": [
      -                    "507f1f77bcf86cd799439011"
      -                  ]
      -                },
      -                "reference": {
      -                  "anyOf": [
      -                    {
      -                      "maxLength": 36,
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "External reference ID. Generated from the variant name when omitted.",
      -                  "example": "fd3136f8-da1f-4a4c-b381-32a097b60c38"
      -                },
      -                "required": {
      -                  "description": "Whether the customer must select at least one option in the variant.",
      -                  "example": true,
      -                  "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"
      -                    }
      -                  ],
      -                  "description": "Type of selection. If `single` the customer can choose one option in the variant group. If `multiple` the customer can choose multiple options in the variant group. If `quantity` the customer can select multiple options and set a quantity of each variant in the variant group. Defaults to `single`",
      -                  "example": "single"
      -                },
      -                "showHideLogic": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "comparison": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "is",
      -                                "is_not",
      -                                "is_empty",
      -                                "is_not_empty",
      -                                "contains"
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Comparison operator for the condition. Defaults to `is`. Use `value` with `is`, `is_not`, and `contains`. Omit `value` for `is_empty` and `is_not_empty`.",
      -                          "example": "is"
      -                        },
      -                        "element": {
      -                          "anyOf": [
      -                            {
      -                              "properties": {
      -                                "elementId": {
      -                                  "description": "The `key` of the source variant used in the condition. Must match the `key` of another variant in the same batch.",
      -                                  "example": "select-package-tier",
      -                                  "type": [
      -                                    "string",
      -                                    "null"
      -                                  ]
      -                                }
      -                              },
      -                              "type": "object"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Element (variant) to compare against."
      -                        },
      -                        "enabled": {
      -                          "description": "Enable conditional show/hide logic. Defaults to `false`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "value": {
      -                          "description": "The `key` of the variant option being referenced. Must match the `key` of an option on the source variant identified by `showHideLogic.element.elementId`. Use this with `is`, `is_not`, and `contains`. Omit this field for `is_empty` and `is_not_empty`.",
      -                          "example": "pro-option",
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Conditional logic to show or hide this variant based on other form elements."
      -                },
      -                "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"
      -                    }
      -                  ],
      -                  "description": "Status of the variant. Defaults to `enabled`",
      -                  "example": "enabled"
      -                },
      -                "useVariantOptionSkus": {
      -                  "description": "If enabled, use SKUs from variant options instead of the product SKU. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "name",
      -                "options"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Product variants and options. To link a discount to specific variant options, assign a `key` to each relevant option here and reference those keys in `discounts[].variantOptionIds[].key` within the same request."
      -      },
      -      "variantsRequired": {
      -        "description": "Use when no variants are marked as required but you still need the customer to select at least one variant option. Ignored when any variant is individually required. Defaults to `false`.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "defaultPriceId": {
      +        "description": "ID of the price pre-selected at checkout. Must reference an existing price `id` in `prices[]`. When omitted and there are several prices, checkout opens with none selected so the buyer chooses one.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "description": {
      +        "description": "Description of the product. Accepts HTML or plain text.",
      +        "example": "Join our premium course today learn more at <a href=\"https://checkoutpage.com\">Checkout Page</a>.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "discounts": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "properties": {
      +                "amountOff": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Fixed amount discount in cents. Cannot be used with `percentOff`.",
      +                  "example": 500
      +                },
      +                "maxQuantity": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Maximum quantity for this discount tier. Leave empty for no upper limit.",
      +                  "example": 10
      +                },
      +                "minQuantity": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Minimum quantity required for this discount to apply.",
      +                  "example": 5
      +                },
      +                "percentOff": {
      +                  "anyOf": [
      +                    {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Percentage discount to apply. Cannot be used with `amountOff`.",
      +                  "example": 10
      +                },
      +                "quantityCondition": {
      +                  "description": "How this bulk discount is triggered. Use `checkout_quantity` to apply the discount based on the total checkout quantity. Use `variant_option_quantity` only when this same request also includes `variants` and matching option `key` values referenced by `variantOptionIds`. Defaults to `checkout_quantity`.",
      +                  "enum": [
      +                    "checkout_quantity",
      +                    "variant_option_quantity"
      +                  ],
      +                  "example": "checkout_quantity",
      +                  "type": "string"
      +                },
      +                "variantOptionIds": {
      +                  "anyOf": [
      +                    {
      +                      "items": {
      +                        "properties": {
      +                          "key": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "key"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "type": "array"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Variant option keys that this discount applies to. Only use this when `quantityCondition` is `variant_option_quantity`. Each entry must exactly match a temporary `key` from `variants[].options[].key` in the same request. These keys are caller-defined handles that are resolved to MongoDB ObjectIds at save time and do not appear in the response."
      +                }
      +              },
      +              "required": [
      +                "quantityCondition"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Bulk discounts for the product.\n\nUse `checkout_quantity` when the discount should apply to the total checkout quantity.\n\nUse `variant_option_quantity` when the discount should apply only to specific variant options. In that mode, you must do all of the following in the same request:\n1. Include `productData.variants`.\n2. Give each target variant option a temporary `key` in `variants[].options[].key`.\n3. Reference those exact keys in `discounts[].variantOptionIds[].key`.\n\n- `variants[].options`: [{ name: \"Red\", key: \"red\" }, { name: \"Blue\", key: \"blue\" }]\n- `discounts`: [{ quantityCondition: \"variant_option_quantity\", variantOptionIds: [{ key: \"red\" }, { key: \"blue\" }], minQuantity: 3, percentOff: 10 }]\n\n[Learn more](https://checkoutpage.com/docs/articles/bulk-discounts)",
      +        "example": [
      +          {
      +            "minQuantity": 3,
      +            "percentOff": 10,
      +            "quantityCondition": "variant_option_quantity",
      +            "variantOptionIds": [
      +              {
      +                "key": "red"
      +              },
      +              {
      +                "key": "blue"
      +              }
      +            ]
      +          }
      +        ]
      +      },
      +      "enableFileAccessForInactiveSubscriptions": {
      +        "description": "Allow customers with inactive subscriptions to keep accessing file downloads.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "fileIds": {
      +        "description": "Files for the product. Available to the customer after purchase.",
      +        "example": [
      +          "507f1f77bcf86cd799439011"
      +        ],
      +        "items": {
      +          "pattern": "^[0-9a-fA-F]{24}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "fixedTaxRateIds": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "pattern": "^[0-9a-fA-F]{24}$",
      +              "type": "string"
      +            },
      +            "maxItems": 1,
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "List of Tax Rate IDs applied to this product. When the page's `tax.mode` is `fixed` and this is omitted on create, the seller default rate is applied. Call `list_tax_rates` first to find an existing rate; use `create_tax_rate` to add a new one."
      +      },
      +      "generateLicenseKeys": {
      +        "description": "If true, on purchase a license key for the product is generated",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "hasUnlimitedStock": {
      +        "description": "Whether or not the stock of the product is unlimited. If set to `true`, the `stock` field is ignored.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "imageIds": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "pattern": "^[0-9a-fA-F]{24}$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Images for the product. Provide a list of image file IDs. Use the `/files/upload` API to add images.",
      +        "example": [
      +          "507f1f77bcf86cd799439011"
      +        ]
      +      },
      +      "limitPayments": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "enabled": {
      +                "description": "Prevent a customer who has already paid for this product from paying again. One-time payments only. Defaults to `false`.",
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
      +      },
      +      "limitSubscriptions": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "enabled": {
      +                "description": "Enable subscription limits. Defaults to `false`.",
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              },
      +              "limitSubscriptionsStripe": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "enabled": {
      +                        "description": "Enable Stripe-level subscription limits (checks active subscriptions in Stripe). Defaults to `false`.",
      +                        "type": [
      +                          "boolean",
      +                          "null"
      +                        ]
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Stripe-specific subscription limit configuration."
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Configuration to limit the number of active subscriptions for this product. Used to cap subscriptions to a specific number."
      +      },
      +      "price": {
      +        "description": "The singular way to set a product price — equivalent to `prices: [entry]` and materialized as one. When `prices` is also provided it takes precedence and `price` is ignored. On update, `price` is only valid while the product has at most one price (a legacy product transitions to `prices[]` on first use); products with multiple prices must be updated through `prices[]`.",
      +        "properties": {
      +          "amount": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Price in smallest currency unit (cents). Defaults to `0`.",
      +            "example": 4900
      +          },
      +          "badge": {
      +            "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      +            "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. `null` removes it."
      +          },
      +          "billingType": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "one_time",
      +                  "recurring"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Billing type. Derived when omitted: `recurring`/`paymentPlan` present → recurring, else one_time. Part of the pricing-type identity fixed at creation — cannot change on an existing price."
      +          },
      +          "currency": {
      +            "anyOf": [
      +              {
      +                "maxLength": 3,
      +                "minLength": 3,
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Currency code (lowercase). Defaults to `usd`.",
      +            "example": "usd"
      +          },
      +          "discountedFromPrice": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The original price of the product in the smallest currency unit (cents).",
      +            "example": 9900
      +          },
      +          "enabled": {
      +            "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "hidden": {
      +            "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Existing price id (omit when creating a new price).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "label": {
      +            "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "order": {
      +            "description": "Dashboard display order. Lower numbers appear first.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "payWhatYouWant": {
      +            "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "paymentPlan": {
      +            "anyOf": [
      +              {
      +                "properties": {
      +                  "billingCycleAnchorConfig": {
      +                    "anyOf": [
      +                      {
      +                        "properties": {
      +                          "dayOfMonth": {
      +                            "anyOf": [
      +                              {
      +                                "maximum": 31,
      +                                "minimum": 1,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                            "example": 1
      +                          },
      +                          "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 for subscriptions.",
      +                    "example": "month"
      +                  },
      +                  "intervalCount": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Number of intervals between billings.",
      +                    "example": 1
      +                  },
      +                  "planIterations": {
      +                    "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      +                    "example": 3,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "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.",
      +                    "example": "2026-02-25T06:40:09.463Z"
      +                  },
      +                  "trialPeriodDays": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Trial period in days for subscriptions."
      +                  }
      +                },
      +                "required": [
      +                  "planIterations"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      +          },
      +          "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[]`. Accepted and ignored.",
      +            "example": "single"
      +          },
      +          "pwywSuggestedPrice": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      +            "example": 2500
      +          },
      +          "recurring": {
      +            "anyOf": [
      +              {
      +                "properties": {
      +                  "billingCycleAnchorConfig": {
      +                    "anyOf": [
      +                      {
      +                        "properties": {
      +                          "dayOfMonth": {
      +                            "anyOf": [
      +                              {
      +                                "maximum": 31,
      +                                "minimum": 1,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                            "example": 1
      +                          },
      +                          "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 for subscriptions.",
      +                    "example": "month"
      +                  },
      +                  "intervalCount": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Number of intervals between billings.",
      +                    "example": 1
      +                  },
      +                  "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.",
      +                    "example": "2026-02-25T06:40:09.463Z"
      +                  },
      +                  "trialPeriodDays": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Trial period in days for subscriptions."
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The recurring components of a price such as `interval` and `intervalCount`"
      +          },
      +          "reference": {
      +            "description": "Stable label for this price, sent to exports, Zapier, Google Sheets and webhooks as `priceReference`. Each sale keeps the reference it was bought with, so changing it gives the same price two names in the seller's data. Generated when omitted, and a price resent by id keeps its stored reference. Only send it when the seller asks to set or change the reference: never to match a new amount or name. Don't put an amount in it, since a coupon or a later price change makes the number wrong.",
      +            "example": "complete-bundle",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "setupFee": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "One-time setup fee in cents."
      +          },
      +          "setupFeeMultipliesWithQuantity": {
      +            "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      +            "example": false,
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "pricePicker": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "description": {
      +                "description": "Text shown under the heading, above the price options. Line breaks are kept.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "priceDisplayDefaults": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "type": "string"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis default tab selection. Keyed by grouping axis. E.g. `{ interval: \"Monthly\" }`."
      +              },
      +              "priceDisplayLabels": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "additionalProperties": {
      +                        "type": "string"
      +                      },
      +                      "propertyNames": {
      +                        "type": "string"
      +                      },
      +                      "type": "object"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis label overrides for price tabs. Keyed by grouping axis (`billing` or `interval`), then by derived group name. E.g. `{ interval: { \"One-time\": \"Lifetime\" } }`."
      +              },
      +              "priceDisplayTabOrder": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "items": {
      +                        "type": "string"
      +                      },
      +                      "type": "array"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis tab display order. Keyed by grouping axis, value is ordered array of group names. E.g. `{ interval: [\"Monthly\", \"Yearly\"] }`."
      +              },
      +              "shortenDescription": {
      +                "description": "Cut long price descriptions to their first lines behind a Show more link. Defaults to `true`.",
      +                "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": {
      +        "description": "Explicit price list for this product. When provided alongside variants, use `variant.priceIds` to scope each variant group to its price. At least one entry must be enabled. When present, `prices[]` takes precedence over the legacy `price` field for determining what is shown at checkout.\n\nExample — one-time + monthly subscription:\n```json\n[\n  { \"billingType\": \"one_time\", \"amount\": 4900, \"currency\": \"usd\", \"label\": \"One-time\" },\n  { \"billingType\": \"recurring\", \"amount\": 1000, \"currency\": \"usd\", \"label\": \"Monthly\", \"recurring\": { \"interval\": \"month\", \"intervalCount\": 1 } }\n]\n```",
      +        "example": [
      +          {
      +            "amount": 4900,
      +            "billingType": "one_time",
      +            "currency": "usd",
      +            "label": "One-time"
      +          },
      +          {
      +            "amount": 1000,
      +            "billingType": "recurring",
      +            "currency": "usd",
      +            "label": "Monthly",
      +            "recurring": {
      +              "interval": "month",
      +              "intervalCount": 1
      +            }
      +          }
      +        ],
      +        "items": {
      +          "properties": {
      +            "amount": {
      +              "description": "Price in smallest currency unit (cents).",
      +              "example": 4900,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "badge": {
      +              "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      +              "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. `null` removes it."
      +            },
      +            "billingType": {
      +              "description": "Billing type. Part of the pricing-type identity fixed at creation — cannot change on an existing price.",
      +              "enum": [
      +                "one_time",
      +                "recurring"
      +              ],
      +              "example": "one_time",
      +              "type": "string"
      +            },
      +            "currency": {
      +              "anyOf": [
      +                {
      +                  "maxLength": 3,
      +                  "minLength": 3,
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Currency code (lowercase). Defaults to `usd`.",
      +              "example": "usd"
      +            },
      +            "discountedFromPrice": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The original price of the product in the smallest currency unit (cents).",
      +              "example": 9900
      +            },
      +            "enabled": {
      +              "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "hidden": {
      +              "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "id": {
      +              "description": "Existing price id (omit when creating a new price).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "label": {
      +              "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "order": {
      +              "description": "Dashboard display order. Lower numbers appear first.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "payWhatYouWant": {
      +              "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "paymentPlan": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "billingCycleAnchorConfig": {
      +                      "anyOf": [
      +                        {
      +                          "properties": {
      +                            "dayOfMonth": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 31,
      +                                  "minimum": 1,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                              "example": 1
      +                            },
      +                            "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 for subscriptions.",
      +                      "example": "month"
      +                    },
      +                    "intervalCount": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 1,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Number of intervals between billings.",
      +                      "example": 1
      +                    },
      +                    "planIterations": {
      +                      "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      +                      "example": 3,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "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.",
      +                      "example": "2026-02-25T06:40:09.463Z"
      +                    },
      +                    "trialPeriodDays": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Trial period in days for subscriptions."
      +                    }
      +                  },
      +                  "required": [
      +                    "planIterations"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      +            },
      +            "pwywSuggestedPrice": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      +              "example": 2500
      +            },
      +            "recurring": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "billingCycleAnchorConfig": {
      +                      "anyOf": [
      +                        {
      +                          "properties": {
      +                            "dayOfMonth": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 31,
      +                                  "minimum": 1,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                              "example": 1
      +                            },
      +                            "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 for subscriptions.",
      +                      "example": "month"
      +                    },
      +                    "intervalCount": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 1,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Number of intervals between billings.",
      +                      "example": 1
      +                    },
      +                    "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.",
      +                      "example": "2026-02-25T06:40:09.463Z"
      +                    },
      +                    "trialPeriodDays": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Trial period in days for subscriptions."
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The recurring components of a price such as `interval` and `intervalCount`"
      +            },
      +            "reference": {
      +              "description": "Stable label for this price, sent to exports, Zapier, Google Sheets and webhooks as `priceReference`. Each sale keeps the reference it was bought with, so changing it gives the same price two names in the seller's data. Generated when omitted, and a price resent by id keeps its stored reference. Only send it when the seller asks to set or change the reference: never to match a new amount or name. Don't put an amount in it, since a coupon or a later price change makes the number wrong.",
      +              "example": "complete-bundle",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "setupFee": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "One-time setup fee in cents."
      +            },
      +            "setupFeeMultipliesWithQuantity": {
      +              "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      +              "example": false,
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "amount",
      +            "billingType"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "sku": {
      +        "anyOf": [
      +          {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "SKU of the product."
      +      },
      +      "stock": {
      +        "anyOf": [
      +          {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Available stock of the product.",
      +        "example": 100
      +      },
      +      "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"
      +          }
      +        ],
      +        "description": "If Stripe Tax is enabled, determines the behaviour of Stripe Tax. Defaults to your Stripe Tax settings.",
      +        "example": ""
      +      },
      +      "taxCode": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(txcd_[a-zA-Z0-9]+)?$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "If Stripe Tax is enabled, determines the tax code used when calculating tax. Defaults to your Stripe Tax settings."
      +      },
      +      "title": {
      +        "anyOf": [
      +          {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Product title. Defaults to page name if not provided.",
      +        "example": "Premium Course"
      +      },
      +      "variants": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "properties": {
      +                "hidden": {
      +                  "description": "Whether this variant is hidden. Hidden variants can be shown or filled with data by query paramers. [Learn more](https://checkoutpage.com/docs/articles/preselect-checkout-variants). Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "increasesWithQuantity": {
      +                  "description": "Whether or not the variant quantity matches the checkout quantity. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "key": {
      +                  "description": "Optional caller-defined key for this variant. Not persisted to the database. Required when other variants reference this variant in `showHideLogic.element.elementId`. Bulk discounts with `variant_option_quantity` use option-level keys from `variants[].options[].key`.",
      +                  "example": "select-package-tier",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "layout": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "collapseVariantOptions": {
      +                          "description": "If enabled, variant options are collapsed by default. Defaults to `false`.",
      +                          "example": false,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "imageSize": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "small",
      +                                "medium",
      +                                "large",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Size of variant option images. Defaults to `small`.",
      +                          "example": "small"
      +                        },
      +                        "showPwywPlaceholder": {
      +                          "description": "Show placeholder text for Pay What You Want inputs. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantName": {
      +                          "description": "Show the variant name. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionNames": {
      +                          "description": "Show variant option names. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionPriceSign": {
      +                          "description": "Show price sign (+ or -) for variant option prices. Defaults to `false`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionPrices": {
      +                          "description": "Show variant option prices. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "spacing": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "comfortable",
      +                                "compact",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Spacing between variant options. Defaults to `comfortable`.",
      +                          "example": "comfortable"
      +                        },
      +                        "textAlign": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "left",
      +                                "center",
      +                                "stack",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Text alignment for variant options. Defaults to `left`.",
      +                          "example": "left"
      +                        },
      +                        "variantOptionColumns": {
      +                          "anyOf": [
      +                            {
      +                              "maximum": 10,
      +                              "minimum": 1,
      +                              "type": "number"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Number of columns for grid layout. Defaults to `2`.",
      +                          "example": 2
      +                        },
      +                        "variantOptionLayout": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "list",
      +                                "grid"
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Layout style for variant options. Defaults to `list`.",
      +                          "example": "list"
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Layout configuration for this variant."
      +                },
      +                "manageVariantOptionStock": {
      +                  "description": "If enabled stock is managed by the variant options. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "name": {
      +                  "description": "Name of the variant.",
      +                  "example": "Plan Type",
      +                  "type": "string"
      +                },
      +                "options": {
      +                  "description": "Options within this variant. Variant must have at least one option.",
      +                  "items": {
      +                    "properties": {
      +                      "additionalChargeAmount": {
      +                        "description": "The additional charge for selecting this variant option in cents.",
      +                        "example": 1000,
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "description": {
      +                        "description": "Description of the variant option. Supports HTML or plain text.",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "discountedFromPrice": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 0,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "The original price of this variant option in cents.",
      +                        "example": 1500
      +                      },
      +                      "fileIds": {
      +                        "anyOf": [
      +                          {
      +                            "items": {
      +                              "pattern": "^[0-9a-fA-F]{24}$",
      +                              "type": "string"
      +                            },
      +                            "type": "array"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Files specific to this variant option. Available to the customer after purchase."
      +                      },
      +                      "imageId": {
      +                        "anyOf": [
      +                          {
      +                            "pattern": "^[0-9a-fA-F]{24}$",
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ]
      +                      },
      +                      "key": {
      +                        "description": "Optional caller-defined key for this option. Not persisted to the database. Required when `preselect.optionId` on the same variant, `showHideLogic.value` on another variant, or a `discounts[].variantOptionIds[].key` entry needs to reference this option in the same request.",
      +                        "example": "pro-option",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "name": {
      +                        "description": "Name of the variant option.",
      +                        "example": "Basic",
      +                        "type": "string"
      +                      },
      +                      "payWhatYouWant": {
      +                        "description": "If enabled, customers can choose their own price for this variant option. The minimum price is based on the additionalChargeAmount. This is only supported for `one_time` options. Defaults to `false`.",
      +                        "example": false,
      +                        "type": [
      +                          "boolean",
      +                          "null"
      +                        ]
      +                      },
      +                      "pwywSuggestedPrice": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 0,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Suggested price for Pay What You Want options in cents. This is a cosmetic field used to display a suggested amount to the customer. Defaults to `0`.",
      +                        "example": 2500
      +                      },
      +                      "sku": {
      +                        "description": "SKU for this option.",
      +                        "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"
      +                          }
      +                        ],
      +                        "description": "Status of the variant option. Defaults to `enabled`.",
      +                        "example": "enabled"
      +                      },
      +                      "stock": {
      +                        "description": "Stock quantity for this option.",
      +                        "example": 10,
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "type": {
      +                        "anyOf": [
      +                          {
      +                            "enum": [
      +                              "one_time",
      +                              "recurring"
      +                            ],
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Type of variant option - one-time purchase or recurring subscription. For Pay What You Want options, `type` must be `one_time` and set `payWhatYouWant: true`.",
      +                        "example": "one_time"
      +                      }
      +                    },
      +                    "required": [
      +                      "name"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "minItems": 1,
      +                  "type": "array"
      +                },
      +                "order": {
      +                  "description": "Display order of the variant. Defaults to `0`.",
      +                  "example": 0,
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "preselect": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "enabled": {
      +                          "description": "Enable preselecting a variant option. Defaults to `false`.",
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "optionId": {
      +                          "description": "The `key` of the variant option to preselect. Must match the `key` of an option on this variant.",
      +                          "example": "pro-option",
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "quantity": {
      +                          "description": "Quantity to preselect for quantity selection type variants. Defaults to `1` for `single` and `multiple` selection types.",
      +                          "example": 2,
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Preselect configuration for this variant.",
      +                  "example": {
      +                    "enabled": true,
      +                    "optionId": "pro-option",
      +                    "quantity": 1
      +                  }
      +                },
      +                "priceIds": {
      +                  "anyOf": [
      +                    {
      +                      "items": {
      +                        "pattern": "^[0-9a-fA-F]{24}$",
      +                        "type": "string"
      +                      },
      +                      "type": "array"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Price IDs this variant group is scoped to. Required when the product has multiple prices configured via `prices[]`. Customers will only see this variant group when the scoped price is selected.",
      +                  "example": [
      +                    "507f1f77bcf86cd799439011"
      +                  ]
      +                },
      +                "reference": {
      +                  "anyOf": [
      +                    {
      +                      "maxLength": 36,
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Stable ID that exports and integrations use for this variant. Generated from the variant name when omitted, and not updated when the name changes. Changing it breaks integrations that match on the old one, so only send it when the seller asks.",
      +                  "example": "fd3136f8-da1f-4a4c-b381-32a097b60c38"
      +                },
      +                "required": {
      +                  "description": "Whether the customer must select at least one option in the variant.",
      +                  "example": true,
      +                  "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"
      +                    }
      +                  ],
      +                  "description": "Type of selection. If `single` the customer can choose one option in the variant group. If `multiple` the customer can choose multiple options in the variant group. If `quantity` the customer can select multiple options and set a quantity of each variant in the variant group. Defaults to `single`",
      +                  "example": "single"
      +                },
      +                "showHideLogic": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "comparison": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "is",
      +                                "is_not",
      +                                "is_empty",
      +                                "is_not_empty",
      +                                "contains"
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Comparison operator for the condition. Defaults to `is`. Use `value` with `is`, `is_not`, and `contains`. Omit `value` for `is_empty` and `is_not_empty`.",
      +                          "example": "is"
      +                        },
      +                        "element": {
      +                          "anyOf": [
      +                            {
      +                              "properties": {
      +                                "elementId": {
      +                                  "description": "The `key` of the source variant used in the condition. Must match the `key` of another variant in the same batch.",
      +                                  "example": "select-package-tier",
      +                                  "type": [
      +                                    "string",
      +                                    "null"
      +                                  ]
      +                                }
      +                              },
      +                              "type": "object"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Element (variant) to compare against."
      +                        },
      +                        "enabled": {
      +                          "description": "Enable conditional show/hide logic. Defaults to `false`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "value": {
      +                          "description": "The `key` of the variant option being referenced. Must match the `key` of an option on the source variant identified by `showHideLogic.element.elementId`. Use this with `is`, `is_not`, and `contains`. Omit this field for `is_empty` and `is_not_empty`.",
      +                          "example": "pro-option",
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Conditional logic to show or hide this variant based on other form elements."
      +                },
      +                "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"
      +                    }
      +                  ],
      +                  "description": "Status of the variant. Defaults to `enabled`",
      +                  "example": "enabled"
      +                },
      +                "useVariantOptionSkus": {
      +                  "description": "If enabled, use SKUs from variant options instead of the product SKU. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "name",
      +                "options"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Product variants and options. To link a discount to specific variant options, assign a `key` to each relevant option here and reference those keys in `discounts[].variantOptionIds[].key` within the same request."
      +      },
      +      "variantsRequired": {
      +        "description": "Use when no variants are marked as required but you still need the customer to select at least one variant option. Ignored when any variant is individually required. Defaults to `false`.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / $defs / Field / properties / reference / description
      Previous value: -"External reference ID for mapping this field in downstream systems."New value: +"Stable key that exports, Zapier, Google Sheets and webhooks use for this field's answers. Not updated when the label changes."
    • changedOutput schema / properties / data / 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"
      +  }
      +]
  4. Changed16 schema fields changed
    • changedInput schema / $defs / FieldInput / properties / order / description
      Previous value: -"Display order of this field. When omitted, order is determined by the position of the field in the array."New value: +"Position of this field among the page's fields, from 0. When omitted, a new field goes after the current ones, or follows its position in `fields` when a page is created. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead."
    • addedInput schema / $defs / FormLayoutDiscountCode
      Added value: +{
      +  "description": "Where the discount code box sits. This item only places the box: the box shows while the page has `showCouponCodeField` on. Checkout pages and events only.",
      +  "properties": {
      +    "type": {
      +      "const": "discount-code",
      +      "description": "Always `discount-code`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / $defs / FormLayoutDivider
      Added value: +{
      +  "description": "A line that separates parts of the form.",
      +  "properties": {
      +    "id": {
      +      "description": "The divider's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "divider",
      +      "description": "Always `divider`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / $defs / FormLayoutFieldInput
      Added value: +{
      +  "description": "A field on the page, shown where it sits in the layout.",
      +  "properties": {
      +    "fieldKey": {
      +      "description": "The `key` you gave the field in `fields` in this request. A key that matches no field is rejected.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "field",
      +      "description": "Always `field`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "fieldKey"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / $defs / FormLayoutGroupInput
      Added value: +{
      +  "description": "Items shown side by side in columns.",
      +  "properties": {
      +    "columns": {
      +      "description": "How many items sit side by side, 1 to 4. On phones the group stacks by default.",
      +      "maximum": 4,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "The group's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "items": {
      +      "description": "What the group holds, filled row by row: fields, headings, dividers and the discount code. Groups never nest.",
      +      "items": {
      +        "oneOf": [
      +          {
      +            "$ref": "#/$defs/FormLayoutFieldInput"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutHeading"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutDivider"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutDiscountCode"
      +          }
      +        ]
      +      },
      +      "maxItems": 200,
      +      "type": "array"
      +    },
      +    "name": {
      +      "description": "A name for the group, seen only in the dashboard. Up to 100 characters.",
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "group",
      +      "description": "Always `group`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id",
      +    "columns",
      +    "items"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / $defs / FormLayoutHeading
      Added value: +{
      +  "description": "A heading or subheading shown above the items after it.",
      +  "properties": {
      +    "id": {
      +      "description": "The heading's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "level": {
      +      "description": "`heading` for a section title, `subheading` for a smaller one.",
      +      "enum": [
      +        "heading",
      +        "subheading"
      +      ],
      +      "type": "string"
      +    },
      +    "text": {
      +      "description": "The text shown, up to 200 characters.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "heading",
      +      "description": "Always `heading`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id",
      +    "text",
      +    "level"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / $defs / FormLayoutItemInput
      Added value: +{
      +  "description": "More item types may be added later. When reading a layout, skip any item type you do not recognise. When updating, send every item back as you received it, including those.",
      +  "oneOf": [
      +    {
      +      "$ref": "#/$defs/FormLayoutFieldInput"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutHeading"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutDivider"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutDiscountCode"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutGroupInput"
      +    }
      +  ]
      +}
    • addedInput schema / properties / formLayout
      Added value: +{
      +  "description": "How to arrange the page's form, top to bottom. Reference a field by `fieldKey`: the `key` you gave it in `fields` in this request. Each item is one of: `field` (`fieldKey`), `heading` (`id`, `text`, `level` `heading` or `subheading`), `divider` (`id`), `discount-code` (no other properties) and `group` (`id`, optional `name`, `columns` 1 to 4, and `items` holding fields, headings, dividers or the discount code; groups never nest). You choose the `id` of each heading, divider and group: 1 to 64 characters, unique in the layout. Fields the layout leaves out are added after it, in their current order. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead. A `discount-code` item only places the discount code box: the box shows while `showCouponCodeField` is on, and the item does not switch it on. Forms have no discount code, so a form layout must leave it out. More item types may be added later. When reading a layout, skip any item type you do not recognise. When updating, send every item back as you received it, including those.",
      +  "items": {
      +    "$ref": "#/$defs/FormLayoutItemInput"
      +  },
      +  "maxItems": 500,
      +  "type": "array"
      +}
    • changedOutput schema / $defs / Field / properties / order / description
      Previous value: -"Display order of the field within the form."New value: +"Position of the field among the page's fields, from 0. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead."
    • addedOutput schema / $defs / FormLayoutDiscountCode
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Where the discount code box sits. This item only places the box: the box shows while the page has `showCouponCodeField` on. Checkout pages and events only.",
      +  "properties": {
      +    "type": {
      +      "const": "discount-code",
      +      "description": "Always `discount-code`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / FormLayoutDivider
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A line that separates parts of the form.",
      +  "properties": {
      +    "id": {
      +      "description": "The divider's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "divider",
      +      "description": "Always `divider`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / FormLayoutField
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A field on the page, shown where it sits in the layout.",
      +  "properties": {
      +    "fieldId": {
      +      "description": "The `id` of a field in the page's `fields`.",
      +      "pattern": "^[0-9a-fA-F]{24}$",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "field",
      +      "description": "Always `field`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "fieldId"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / FormLayoutGroup
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Items shown side by side in columns.",
      +  "properties": {
      +    "columns": {
      +      "description": "How many items sit side by side, 1 to 4. On phones the group stacks by default.",
      +      "maximum": 4,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    "id": {
      +      "description": "The group's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "items": {
      +      "description": "What the group holds, filled row by row: fields, headings, dividers and the discount code. Groups never nest.",
      +      "items": {
      +        "oneOf": [
      +          {
      +            "$ref": "#/$defs/FormLayoutField"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutHeading"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutDivider"
      +          },
      +          {
      +            "$ref": "#/$defs/FormLayoutDiscountCode"
      +          }
      +        ]
      +      },
      +      "maxItems": 200,
      +      "type": "array"
      +    },
      +    "name": {
      +      "description": "A name for the group, seen only in the dashboard. Up to 100 characters.",
      +      "maxLength": 100,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "group",
      +      "description": "Always `group`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id",
      +    "columns",
      +    "items"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / FormLayoutHeading
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A heading or subheading shown above the items after it.",
      +  "properties": {
      +    "id": {
      +      "description": "The heading's id, chosen by you: 1 to 64 characters, unique in the layout.",
      +      "maxLength": 64,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "level": {
      +      "description": "`heading` for a section title, `subheading` for a smaller one.",
      +      "enum": [
      +        "heading",
      +        "subheading"
      +      ],
      +      "type": "string"
      +    },
      +    "text": {
      +      "description": "The text shown, up to 200 characters.",
      +      "maxLength": 200,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "heading",
      +      "description": "Always `heading`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "id",
      +    "text",
      +    "level"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / $defs / FormLayoutItem
      Added value: +{
      +  "description": "More item types may be added later. When reading a layout, skip any item type you do not recognise. When updating, send every item back as you received it, including those.",
      +  "oneOf": [
      +    {
      +      "$ref": "#/$defs/FormLayoutField"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutHeading"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutDivider"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutDiscountCode"
      +    },
      +    {
      +      "$ref": "#/$defs/FormLayoutGroup"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / data / properties / formLayout
      Added value: +{
      +  "description": "How the page's form is arranged, top to bottom: fields, headings, dividers, groups of fields shown side by side in columns, and where the discount code box sits. Always returned, even for a page that was never arranged: every field on the page is listed, and `fieldId` matches the `id` of an entry in `fields`. A `discount-code` item only places the box, which shows while `showCouponCodeField` is on. A placement you saved is returned whether the box is on or off; when none was saved and the box is on, the item is at the end, where the box shows. Forms never have one. Each item is one of: `field` (`fieldId`), `heading` (`id`, `text`, `level` `heading` or `subheading`), `divider` (`id`), `discount-code` (no other properties) and `group` (`id`, optional `name`, `columns` 1 to 4, and `items` holding fields, headings, dividers or the discount code; groups never nest). You choose the `id` of each heading, divider and group: 1 to 64 characters, unique in the layout. `formLayout` on the page decides the form's order. Each field's `order` is its position among the page's fields and follows the layout: saving a layout (in the dashboard or through the API) rewrites every field's `order`. On a page that has never saved a layout, setting `order` moves the field; once a layout is saved, move fields with `formLayout` instead. More item types may be added later. When reading a layout, skip any item type you do not recognise. When updating, send every item back as you received it, including those.",
      +  "items": {
      +    "$ref": "#/$defs/FormLayoutItem"
      +  },
      +  "type": "array"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / productData / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "defaultPriceId": {
      -        "description": "ID of the price pre-selected at checkout. Must reference an existing price `id` in `prices[]`. When omitted and there are several prices, checkout opens with none selected so the buyer chooses one.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "description": {
      -        "description": "Description of the product. Accepts HTML or plain text.",
      -        "example": "Join our premium course today learn more at <a href=\"https://checkoutpage.com\">Checkout Page</a>.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "discounts": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "properties": {
      -                "amountOff": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Fixed amount discount in cents. Cannot be used with `percentOff`.",
      -                  "example": 500
      -                },
      -                "maxQuantity": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Maximum quantity for this discount tier. Leave empty for no upper limit.",
      -                  "example": 10
      -                },
      -                "minQuantity": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Minimum quantity required for this discount to apply.",
      -                  "example": 5
      -                },
      -                "percentOff": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 100,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Percentage discount to apply. Cannot be used with `amountOff`.",
      -                  "example": 10
      -                },
      -                "quantityCondition": {
      -                  "description": "How this bulk discount is triggered. Use `checkout_quantity` to apply the discount based on the total checkout quantity. Use `variant_option_quantity` only when this same request also includes `variants` and matching option `key` values referenced by `variantOptionIds`. Defaults to `checkout_quantity`.",
      -                  "enum": [
      -                    "checkout_quantity",
      -                    "variant_option_quantity"
      -                  ],
      -                  "example": "checkout_quantity",
      -                  "type": "string"
      -                },
      -                "variantOptionIds": {
      -                  "anyOf": [
      -                    {
      -                      "items": {
      -                        "properties": {
      -                          "key": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "key"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      "type": "array"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Variant option keys that this discount applies to. Only use this when `quantityCondition` is `variant_option_quantity`. Each entry must exactly match a temporary `key` from `variants[].options[].key` in the same request. These keys are caller-defined handles that are resolved to MongoDB ObjectIds at save time and do not appear in the response."
      -                }
      -              },
      -              "required": [
      -                "quantityCondition"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Bulk discounts for the product.\n\nUse `checkout_quantity` when the discount should apply to the total checkout quantity.\n\nUse `variant_option_quantity` when the discount should apply only to specific variant options. In that mode, you must do all of the following in the same request:\n1. Include `productData.variants`.\n2. Give each target variant option a temporary `key` in `variants[].options[].key`.\n3. Reference those exact keys in `discounts[].variantOptionIds[].key`.\n\n- `variants[].options`: [{ name: \"Red\", key: \"red\" }, { name: \"Blue\", key: \"blue\" }]\n- `discounts`: [{ quantityCondition: \"variant_option_quantity\", variantOptionIds: [{ key: \"red\" }, { key: \"blue\" }], minQuantity: 3, percentOff: 10 }]\n\n[Learn more](https://checkoutpage.com/docs/articles/bulk-discounts)",
      -        "example": [
      -          {
      -            "minQuantity": 3,
      -            "percentOff": 10,
      -            "quantityCondition": "variant_option_quantity",
      -            "variantOptionIds": [
      -              {
      -                "key": "red"
      -              },
      -              {
      -                "key": "blue"
      -              }
      -            ]
      -          }
      -        ]
      -      },
      -      "enableFileAccessForInactiveSubscriptions": {
      -        "description": "Allow customers with inactive subscriptions to keep accessing file downloads.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "fileIds": {
      -        "description": "Files for the product. Available to the customer after purchase.",
      -        "example": [
      -          "507f1f77bcf86cd799439011"
      -        ],
      -        "items": {
      -          "pattern": "^[0-9a-fA-F]{24}$",
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "fixedTaxRateIds": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "pattern": "^[0-9a-fA-F]{24}$",
      -              "type": "string"
      -            },
      -            "maxItems": 1,
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "List of Tax Rate IDs applied to this product. When the page's `tax.mode` is `fixed` and this is omitted on create, the seller default rate is applied. Call `list_tax_rates` first to find an existing rate; use `create_tax_rate` to add a new one."
      -      },
      -      "generateLicenseKeys": {
      -        "description": "If true, on purchase a license key for the product is generated",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "hasUnlimitedStock": {
      -        "description": "Whether or not the stock of the product is unlimited. If set to `true`, the `stock` field is ignored.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      },
      -      "imageIds": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "pattern": "^[0-9a-fA-F]{24}$",
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Images for the product. Provide a list of image file IDs. Use the `/files/upload` API to add images.",
      -        "example": [
      -          "507f1f77bcf86cd799439011"
      -        ]
      -      },
      -      "limitPayments": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "enabled": {
      -                "description": "Prevent a customer who has already paid for this product from paying again. One-time payments only. Defaults to `false`.",
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
      -      },
      -      "limitSubscriptions": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "enabled": {
      -                "description": "Enable subscription limits. Defaults to `false`.",
      -                "type": [
      -                  "boolean",
      -                  "null"
      -                ]
      -              },
      -              "limitSubscriptionsStripe": {
      -                "anyOf": [
      -                  {
      -                    "properties": {
      -                      "enabled": {
      -                        "description": "Enable Stripe-level subscription limits (checks active subscriptions in Stripe). Defaults to `false`.",
      -                        "type": [
      -                          "boolean",
      -                          "null"
      -                        ]
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Stripe-specific subscription limit configuration."
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Configuration to limit the number of active subscriptions for this product. Used to cap subscriptions to a specific number."
      -      },
      -      "price": {
      -        "description": "The singular way to set a product price — equivalent to `prices: [entry]` and materialized as one. When `prices` is also provided it takes precedence and `price` is ignored. On update, `price` is only valid while the product has at most one price (a legacy product transitions to `prices[]` on first use); products with multiple prices must be updated through `prices[]`.",
      -        "properties": {
      -          "amount": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Price in smallest currency unit (cents). Defaults to `0`.",
      -            "example": 4900
      -          },
      -          "badge": {
      -            "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      -            "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. `null` removes it."
      -          },
      -          "billingType": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "one_time",
      -                  "recurring"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Billing type. Derived when omitted: `recurring`/`paymentPlan` present → recurring, else one_time. Part of the pricing-type identity fixed at creation — cannot change on an existing price."
      -          },
      -          "currency": {
      -            "anyOf": [
      -              {
      -                "maxLength": 3,
      -                "minLength": 3,
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Currency code (lowercase). Defaults to `usd`.",
      -            "example": "usd"
      -          },
      -          "discountedFromPrice": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The original price of the product in the smallest currency unit (cents).",
      -            "example": 9900
      -          },
      -          "enabled": {
      -            "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "hidden": {
      -            "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "description": "Existing price id (omit when creating a new price).",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "label": {
      -            "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "order": {
      -            "description": "Dashboard display order. Lower numbers appear first.",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "payWhatYouWant": {
      -            "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "paymentPlan": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "billingCycleAnchorConfig": {
      -                    "anyOf": [
      -                      {
      -                        "properties": {
      -                          "dayOfMonth": {
      -                            "anyOf": [
      -                              {
      -                                "maximum": 31,
      -                                "minimum": 1,
      -                                "type": "number"
      -                              },
      -                              {
      -                                "type": "null"
      -                              }
      -                            ],
      -                            "description": "The first billing period will be prorated based on the remaining days in the month. Defaults to `1`.",
      -                            "example": 1
      -                          },
      -                          "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 for subscriptions.",
      -                    "example": "month"
      -                  },
      -                  "intervalCount": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 1,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Number of intervals between billings.",
      -                    "example": 1
      -                  },
      -                  "planIterations": {
      -                    "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      -                    "example": 3,
      -                    "minimum": 1,
      -                    "type": "number"
      -                  },
      -                  "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.",
      -                    "example": "2026-02-25T06:40:09.463Z"
      -                  },
      -                  "trialPeriodDays": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Trial period in days for subscriptions."
      -                  }
      -                },
      -                "required": [
      -                  "planIterations"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      -          },
      -          "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[]`. Accepted and ignored.",
      -            "example": "single"
      -          },
      -          "pwywSuggestedPrice": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      -            "example": 2500
      -          },
      -          "recurring": {
      -            "anyOf": [
      -              {
      -                "properties": {
      -                  "billingCycleAnchorConfig": {
      -                    "anyOf": [
      -                      {
      -                        "properties": {
      -                          "dayOfMonth": {
      -                            "anyOf": [
      -                              {
      -                                "maximum": 31,
      -                                "minimum": 1,
      -                                "type": "number"
      -                              },
      -                              {
      -                                "type": "null"
      -                              }
      -                            ],
      -                            "description": "The first billing period will be prorated based on the remaining days in the month. Defaults to `1`.",
      -                            "example": 1
      -                          },
      -                          "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 for subscriptions.",
      -                    "example": "month"
      -                  },
      -                  "intervalCount": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 1,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Number of intervals between billings.",
      -                    "example": 1
      -                  },
      -                  "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.",
      -                    "example": "2026-02-25T06:40:09.463Z"
      -                  },
      -                  "trialPeriodDays": {
      -                    "anyOf": [
      -                      {
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "description": "Trial period in days for subscriptions."
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "The recurring components of a price such as `interval` and `intervalCount`"
      -          },
      -          "reference": {
      -            "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      -            "example": "price_one_time_fixed_5000",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "setupFee": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "description": "One-time setup fee in cents."
      -          },
      -          "setupFeeMultipliesWithQuantity": {
      -            "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      -            "example": false,
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "pricePicker": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "description": {
      -                "description": "Text shown under the heading, above the price options. Line breaks are kept.",
      -                "type": [
      -                  "string",
      -                  "null"
      -                ]
      -              },
      -              "priceDisplayDefaults": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "type": "string"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis default tab selection. Keyed by grouping axis. E.g. `{ interval: \"Monthly\" }`."
      -              },
      -              "priceDisplayLabels": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "additionalProperties": {
      -                        "type": "string"
      -                      },
      -                      "propertyNames": {
      -                        "type": "string"
      -                      },
      -                      "type": "object"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis label overrides for price tabs. Keyed by grouping axis (`billing` or `interval`), then by derived group name. E.g. `{ interval: { \"One-time\": \"Lifetime\" } }`."
      -              },
      -              "priceDisplayTabOrder": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": {
      -                      "items": {
      -                        "type": "string"
      -                      },
      -                      "type": "array"
      -                    },
      -                    "propertyNames": {
      -                      "type": "string"
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Per-axis tab display order. Keyed by grouping axis, value is ordered array of group names. E.g. `{ interval: [\"Monthly\", \"Yearly\"] }`."
      -              },
      -              "shortenDescription": {
      -                "description": "Cut long price descriptions to their first lines behind a Show more link. Defaults to `true`.",
      -                "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": {
      -        "description": "Explicit price list for this product. When provided alongside variants, use `variant.priceIds` to scope each variant group to its price. At least one entry must be enabled. When present, `prices[]` takes precedence over the legacy `price` field for determining what is shown at checkout.\n\nExample — one-time + monthly subscription:\n```json\n[\n  { \"billingType\": \"one_time\", \"amount\": 4900, \"currency\": \"usd\", \"label\": \"One-time\" },\n  { \"billingType\": \"recurring\", \"amount\": 1000, \"currency\": \"usd\", \"label\": \"Monthly\", \"recurring\": { \"interval\": \"month\", \"intervalCount\": 1 } }\n]\n```",
      -        "example": [
      -          {
      -            "amount": 4900,
      -            "billingType": "one_time",
      -            "currency": "usd",
      -            "label": "One-time"
      -          },
      -          {
      -            "amount": 1000,
      -            "billingType": "recurring",
      -            "currency": "usd",
      -            "label": "Monthly",
      -            "recurring": {
      -              "interval": "month",
      -              "intervalCount": 1
      -            }
      -          }
      -        ],
      -        "items": {
      -          "properties": {
      -            "amount": {
      -              "description": "Price in smallest currency unit (cents).",
      -              "example": 4900,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "badge": {
      -              "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      -              "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. `null` removes it."
      -            },
      -            "billingType": {
      -              "description": "Billing type. Part of the pricing-type identity fixed at creation — cannot change on an existing price.",
      -              "enum": [
      -                "one_time",
      -                "recurring"
      -              ],
      -              "example": "one_time",
      -              "type": "string"
      -            },
      -            "currency": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 3,
      -                  "minLength": 3,
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Currency code (lowercase). Defaults to `usd`.",
      -              "example": "usd"
      -            },
      -            "discountedFromPrice": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The original price of the product in the smallest currency unit (cents).",
      -              "example": 9900
      -            },
      -            "enabled": {
      -              "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "hidden": {
      -              "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "id": {
      -              "description": "Existing price id (omit when creating a new price).",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "label": {
      -              "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "order": {
      -              "description": "Dashboard display order. Lower numbers appear first.",
      -              "type": [
      -                "number",
      -                "null"
      -              ]
      -            },
      -            "payWhatYouWant": {
      -              "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            },
      -            "paymentPlan": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "billingCycleAnchorConfig": {
      -                      "anyOf": [
      -                        {
      -                          "properties": {
      -                            "dayOfMonth": {
      -                              "anyOf": [
      -                                {
      -                                  "maximum": 31,
      -                                  "minimum": 1,
      -                                  "type": "number"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ],
      -                              "description": "The first billing period will be prorated based on the remaining days in the month. Defaults to `1`.",
      -                              "example": 1
      -                            },
      -                            "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 for subscriptions.",
      -                      "example": "month"
      -                    },
      -                    "intervalCount": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 1,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Number of intervals between billings.",
      -                      "example": 1
      -                    },
      -                    "planIterations": {
      -                      "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      -                      "example": 3,
      -                      "minimum": 1,
      -                      "type": "number"
      -                    },
      -                    "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.",
      -                      "example": "2026-02-25T06:40:09.463Z"
      -                    },
      -                    "trialPeriodDays": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 0,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Trial period in days for subscriptions."
      -                    }
      -                  },
      -                  "required": [
      -                    "planIterations"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      -            },
      -            "pwywSuggestedPrice": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      -              "example": 2500
      -            },
      -            "recurring": {
      -              "anyOf": [
      -                {
      -                  "properties": {
      -                    "billingCycleAnchorConfig": {
      -                      "anyOf": [
      -                        {
      -                          "properties": {
      -                            "dayOfMonth": {
      -                              "anyOf": [
      -                                {
      -                                  "maximum": 31,
      -                                  "minimum": 1,
      -                                  "type": "number"
      -                                },
      -                                {
      -                                  "type": "null"
      -                                }
      -                              ],
      -                              "description": "The first billing period will be prorated based on the remaining days in the month. Defaults to `1`.",
      -                              "example": 1
      -                            },
      -                            "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 for subscriptions.",
      -                      "example": "month"
      -                    },
      -                    "intervalCount": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 1,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Number of intervals between billings.",
      -                      "example": 1
      -                    },
      -                    "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.",
      -                      "example": "2026-02-25T06:40:09.463Z"
      -                    },
      -                    "trialPeriodDays": {
      -                      "anyOf": [
      -                        {
      -                          "minimum": 0,
      -                          "type": "number"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "description": "Trial period in days for subscriptions."
      -                    }
      -                  },
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "The recurring components of a price such as `interval` and `intervalCount`"
      -            },
      -            "reference": {
      -              "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      -              "example": "price_one_time_fixed_5000",
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "setupFee": {
      -              "anyOf": [
      -                {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "One-time setup fee in cents."
      -            },
      -            "setupFeeMultipliesWithQuantity": {
      -              "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      -              "example": false,
      -              "type": [
      -                "boolean",
      -                "null"
      -              ]
      -            }
      -          },
      -          "required": [
      -            "amount",
      -            "billingType"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "sku": {
      -        "anyOf": [
      -          {
      -            "maxLength": 200,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "SKU of the product."
      -      },
      -      "stock": {
      -        "anyOf": [
      -          {
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Available stock of the product.",
      -        "example": 100
      -      },
      -      "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"
      -          }
      -        ],
      -        "description": "If Stripe Tax is enabled, determines the behaviour of Stripe Tax. Defaults to your Stripe Tax settings.",
      -        "example": ""
      -      },
      -      "taxCode": {
      -        "anyOf": [
      -          {
      -            "pattern": "^(txcd_[a-zA-Z0-9]+)?$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "If Stripe Tax is enabled, determines the tax code used when calculating tax. Defaults to your Stripe Tax settings."
      -      },
      -      "title": {
      -        "anyOf": [
      -          {
      -            "maxLength": 200,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Product title. Defaults to page name if not provided.",
      -        "example": "Premium Course"
      -      },
      -      "variants": {
      -        "anyOf": [
      -          {
      -            "items": {
      -              "properties": {
      -                "hidden": {
      -                  "description": "Whether this variant is hidden. Hidden variants can be shown or filled with data by query paramers. [Learn more](https://checkoutpage.com/docs/articles/preselect-checkout-variants). Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "increasesWithQuantity": {
      -                  "description": "Whether or not the variant quantity matches the checkout quantity. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "key": {
      -                  "description": "Optional caller-defined key for this variant. Not persisted to the database. Required when other variants reference this variant in `showHideLogic.element.elementId`. Bulk discounts with `variant_option_quantity` use option-level keys from `variants[].options[].key`.",
      -                  "example": "select-package-tier",
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "layout": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "collapseVariantOptions": {
      -                          "description": "If enabled, variant options are collapsed by default. Defaults to `false`.",
      -                          "example": false,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "imageSize": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "small",
      -                                "medium",
      -                                "large",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Size of variant option images. Defaults to `small`.",
      -                          "example": "small"
      -                        },
      -                        "showPwywPlaceholder": {
      -                          "description": "Show placeholder text for Pay What You Want inputs. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantName": {
      -                          "description": "Show the variant name. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionNames": {
      -                          "description": "Show variant option names. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionPriceSign": {
      -                          "description": "Show price sign (+ or -) for variant option prices. Defaults to `false`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "showVariantOptionPrices": {
      -                          "description": "Show variant option prices. Defaults to `true`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "spacing": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "comfortable",
      -                                "compact",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Spacing between variant options. Defaults to `comfortable`.",
      -                          "example": "comfortable"
      -                        },
      -                        "textAlign": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "left",
      -                                "center",
      -                                "stack",
      -                                ""
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Text alignment for variant options. Defaults to `left`.",
      -                          "example": "left"
      -                        },
      -                        "variantOptionColumns": {
      -                          "anyOf": [
      -                            {
      -                              "maximum": 10,
      -                              "minimum": 1,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Number of columns for grid layout. Defaults to `2`.",
      -                          "example": 2
      -                        },
      -                        "variantOptionLayout": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "list",
      -                                "grid"
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Layout style for variant options. Defaults to `list`.",
      -                          "example": "list"
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Layout configuration for this variant."
      -                },
      -                "manageVariantOptionStock": {
      -                  "description": "If enabled stock is managed by the variant options. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                },
      -                "name": {
      -                  "description": "Name of the variant.",
      -                  "example": "Plan Type",
      -                  "type": "string"
      -                },
      -                "options": {
      -                  "description": "Options within this variant. Variant must have at least one option.",
      -                  "items": {
      -                    "properties": {
      -                      "additionalChargeAmount": {
      -                        "description": "The additional charge for selecting this variant option in cents.",
      -                        "example": 1000,
      -                        "type": [
      -                          "number",
      -                          "null"
      -                        ]
      -                      },
      -                      "description": {
      -                        "description": "Description of the variant option. Supports HTML or plain text.",
      -                        "type": [
      -                          "string",
      -                          "null"
      -                        ]
      -                      },
      -                      "discountedFromPrice": {
      -                        "anyOf": [
      -                          {
      -                            "minimum": 0,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "The original price of this variant option in cents.",
      -                        "example": 1500
      -                      },
      -                      "fileIds": {
      -                        "anyOf": [
      -                          {
      -                            "items": {
      -                              "pattern": "^[0-9a-fA-F]{24}$",
      -                              "type": "string"
      -                            },
      -                            "type": "array"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Files specific to this variant option. Available to the customer after purchase."
      -                      },
      -                      "imageId": {
      -                        "anyOf": [
      -                          {
      -                            "pattern": "^[0-9a-fA-F]{24}$",
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ]
      -                      },
      -                      "key": {
      -                        "description": "Optional caller-defined key for this option. Not persisted to the database. Required when `preselect.optionId` on the same variant, `showHideLogic.value` on another variant, or a `discounts[].variantOptionIds[].key` entry needs to reference this option in the same request.",
      -                        "example": "pro-option",
      -                        "type": [
      -                          "string",
      -                          "null"
      -                        ]
      -                      },
      -                      "name": {
      -                        "description": "Name of the variant option.",
      -                        "example": "Basic",
      -                        "type": "string"
      -                      },
      -                      "payWhatYouWant": {
      -                        "description": "If enabled, customers can choose their own price for this variant option. The minimum price is based on the additionalChargeAmount. This is only supported for `one_time` options. Defaults to `false`.",
      -                        "example": false,
      -                        "type": [
      -                          "boolean",
      -                          "null"
      -                        ]
      -                      },
      -                      "pwywSuggestedPrice": {
      -                        "anyOf": [
      -                          {
      -                            "minimum": 0,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Suggested price for Pay What You Want options in cents. This is a cosmetic field used to display a suggested amount to the customer. Defaults to `0`.",
      -                        "example": 2500
      -                      },
      -                      "sku": {
      -                        "description": "SKU for this option.",
      -                        "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"
      -                          }
      -                        ],
      -                        "description": "Status of the variant option. Defaults to `enabled`.",
      -                        "example": "enabled"
      -                      },
      -                      "stock": {
      -                        "description": "Stock quantity for this option.",
      -                        "example": 10,
      -                        "type": [
      -                          "number",
      -                          "null"
      -                        ]
      -                      },
      -                      "type": {
      -                        "anyOf": [
      -                          {
      -                            "enum": [
      -                              "one_time",
      -                              "recurring"
      -                            ],
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Type of variant option - one-time purchase or recurring subscription. For Pay What You Want options, `type` must be `one_time` and set `payWhatYouWant: true`.",
      -                        "example": "one_time"
      -                      }
      -                    },
      -                    "required": [
      -                      "name"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "minItems": 1,
      -                  "type": "array"
      -                },
      -                "order": {
      -                  "description": "Display order of the variant. Defaults to `0`.",
      -                  "example": 0,
      -                  "type": [
      -                    "number",
      -                    "null"
      -                  ]
      -                },
      -                "preselect": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "enabled": {
      -                          "description": "Enable preselecting a variant option. Defaults to `false`.",
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "optionId": {
      -                          "description": "The `key` of the variant option to preselect. Must match the `key` of an option on this variant.",
      -                          "example": "pro-option",
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        },
      -                        "quantity": {
      -                          "description": "Quantity to preselect for quantity selection type variants. Defaults to `1` for `single` and `multiple` selection types.",
      -                          "example": 2,
      -                          "type": [
      -                            "number",
      -                            "null"
      -                          ]
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Preselect configuration for this variant.",
      -                  "example": {
      -                    "enabled": true,
      -                    "optionId": "pro-option",
      -                    "quantity": 1
      -                  }
      -                },
      -                "priceIds": {
      -                  "anyOf": [
      -                    {
      -                      "items": {
      -                        "pattern": "^[0-9a-fA-F]{24}$",
      -                        "type": "string"
      -                      },
      -                      "type": "array"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Price IDs this variant group is scoped to. Required when the product has multiple prices configured via `prices[]`. Customers will only see this variant group when the scoped price is selected.",
      -                  "example": [
      -                    "507f1f77bcf86cd799439011"
      -                  ]
      -                },
      -                "reference": {
      -                  "anyOf": [
      -                    {
      -                      "maxLength": 36,
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "External reference ID. Generated from the variant name when omitted.",
      -                  "example": "fd3136f8-da1f-4a4c-b381-32a097b60c38"
      -                },
      -                "required": {
      -                  "description": "Whether the customer must select at least one option in the variant.",
      -                  "example": true,
      -                  "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"
      -                    }
      -                  ],
      -                  "description": "Type of selection. If `single` the customer can choose one option in the variant group. If `multiple` the customer can choose multiple options in the variant group. If `quantity` the customer can select multiple options and set a quantity of each variant in the variant group. Defaults to `single`",
      -                  "example": "single"
      -                },
      -                "showHideLogic": {
      -                  "anyOf": [
      -                    {
      -                      "properties": {
      -                        "comparison": {
      -                          "anyOf": [
      -                            {
      -                              "enum": [
      -                                "is",
      -                                "is_not",
      -                                "is_empty",
      -                                "is_not_empty",
      -                                "contains"
      -                              ],
      -                              "type": "string"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Comparison operator for the condition. Defaults to `is`. Use `value` with `is`, `is_not`, and `contains`. Omit `value` for `is_empty` and `is_not_empty`.",
      -                          "example": "is"
      -                        },
      -                        "element": {
      -                          "anyOf": [
      -                            {
      -                              "properties": {
      -                                "elementId": {
      -                                  "description": "The `key` of the source variant used in the condition. Must match the `key` of another variant in the same batch.",
      -                                  "example": "select-package-tier",
      -                                  "type": [
      -                                    "string",
      -                                    "null"
      -                                  ]
      -                                }
      -                              },
      -                              "type": "object"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ],
      -                          "description": "Element (variant) to compare against."
      -                        },
      -                        "enabled": {
      -                          "description": "Enable conditional show/hide logic. Defaults to `false`.",
      -                          "example": true,
      -                          "type": [
      -                            "boolean",
      -                            "null"
      -                          ]
      -                        },
      -                        "value": {
      -                          "description": "The `key` of the variant option being referenced. Must match the `key` of an option on the source variant identified by `showHideLogic.element.elementId`. Use this with `is`, `is_not`, and `contains`. Omit this field for `is_empty` and `is_not_empty`.",
      -                          "example": "pro-option",
      -                          "type": [
      -                            "string",
      -                            "null"
      -                          ]
      -                        }
      -                      },
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Conditional logic to show or hide this variant based on other form elements."
      -                },
      -                "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"
      -                    }
      -                  ],
      -                  "description": "Status of the variant. Defaults to `enabled`",
      -                  "example": "enabled"
      -                },
      -                "useVariantOptionSkus": {
      -                  "description": "If enabled, use SKUs from variant options instead of the product SKU. Defaults to `false`.",
      -                  "type": [
      -                    "boolean",
      -                    "null"
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "name",
      -                "options"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "Product variants and options. To link a discount to specific variant options, assign a `key` to each relevant option here and reference those keys in `discounts[].variantOptionIds[].key` within the same request."
      -      },
      -      "variantsRequired": {
      -        "description": "Use when no variants are marked as required but you still need the customer to select at least one variant option. Ignored when any variant is individually required. Defaults to `false`.",
      -        "example": false,
      -        "type": [
      -          "boolean",
      -          "null"
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "defaultPriceId": {
      +        "description": "ID of the price pre-selected at checkout. Must reference an existing price `id` in `prices[]`. When omitted and there are several prices, checkout opens with none selected so the buyer chooses one.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "description": {
      +        "description": "Description of the product. Accepts HTML or plain text.",
      +        "example": "Join our premium course today learn more at <a href=\"https://checkoutpage.com\">Checkout Page</a>.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "discounts": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "properties": {
      +                "amountOff": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Fixed amount discount in cents. Cannot be used with `percentOff`.",
      +                  "example": 500
      +                },
      +                "maxQuantity": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Maximum quantity for this discount tier. Leave empty for no upper limit.",
      +                  "example": 10
      +                },
      +                "minQuantity": {
      +                  "anyOf": [
      +                    {
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Minimum quantity required for this discount to apply.",
      +                  "example": 5
      +                },
      +                "percentOff": {
      +                  "anyOf": [
      +                    {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Percentage discount to apply. Cannot be used with `amountOff`.",
      +                  "example": 10
      +                },
      +                "quantityCondition": {
      +                  "description": "How this bulk discount is triggered. Use `checkout_quantity` to apply the discount based on the total checkout quantity. Use `variant_option_quantity` only when this same request also includes `variants` and matching option `key` values referenced by `variantOptionIds`. Defaults to `checkout_quantity`.",
      +                  "enum": [
      +                    "checkout_quantity",
      +                    "variant_option_quantity"
      +                  ],
      +                  "example": "checkout_quantity",
      +                  "type": "string"
      +                },
      +                "variantOptionIds": {
      +                  "anyOf": [
      +                    {
      +                      "items": {
      +                        "properties": {
      +                          "key": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "key"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "type": "array"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Variant option keys that this discount applies to. Only use this when `quantityCondition` is `variant_option_quantity`. Each entry must exactly match a temporary `key` from `variants[].options[].key` in the same request. These keys are caller-defined handles that are resolved to MongoDB ObjectIds at save time and do not appear in the response."
      +                }
      +              },
      +              "required": [
      +                "quantityCondition"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Bulk discounts for the product.\n\nUse `checkout_quantity` when the discount should apply to the total checkout quantity.\n\nUse `variant_option_quantity` when the discount should apply only to specific variant options. In that mode, you must do all of the following in the same request:\n1. Include `productData.variants`.\n2. Give each target variant option a temporary `key` in `variants[].options[].key`.\n3. Reference those exact keys in `discounts[].variantOptionIds[].key`.\n\n- `variants[].options`: [{ name: \"Red\", key: \"red\" }, { name: \"Blue\", key: \"blue\" }]\n- `discounts`: [{ quantityCondition: \"variant_option_quantity\", variantOptionIds: [{ key: \"red\" }, { key: \"blue\" }], minQuantity: 3, percentOff: 10 }]\n\n[Learn more](https://checkoutpage.com/docs/articles/bulk-discounts)",
      +        "example": [
      +          {
      +            "minQuantity": 3,
      +            "percentOff": 10,
      +            "quantityCondition": "variant_option_quantity",
      +            "variantOptionIds": [
      +              {
      +                "key": "red"
      +              },
      +              {
      +                "key": "blue"
      +              }
      +            ]
      +          }
      +        ]
      +      },
      +      "enableFileAccessForInactiveSubscriptions": {
      +        "description": "Allow customers with inactive subscriptions to keep accessing file downloads.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "fileIds": {
      +        "description": "Files for the product. Available to the customer after purchase.",
      +        "example": [
      +          "507f1f77bcf86cd799439011"
      +        ],
      +        "items": {
      +          "pattern": "^[0-9a-fA-F]{24}$",
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "fixedTaxRateIds": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "pattern": "^[0-9a-fA-F]{24}$",
      +              "type": "string"
      +            },
      +            "maxItems": 1,
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "List of Tax Rate IDs applied to this product. When the page's `tax.mode` is `fixed` and this is omitted on create, the seller default rate is applied. Call `list_tax_rates` first to find an existing rate; use `create_tax_rate` to add a new one."
      +      },
      +      "generateLicenseKeys": {
      +        "description": "If true, on purchase a license key for the product is generated",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "hasUnlimitedStock": {
      +        "description": "Whether or not the stock of the product is unlimited. If set to `true`, the `stock` field is ignored.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "imageIds": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "pattern": "^[0-9a-fA-F]{24}$",
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Images for the product. Provide a list of image file IDs. Use the `/files/upload` API to add images.",
      +        "example": [
      +          "507f1f77bcf86cd799439011"
      +        ]
      +      },
      +      "limitPayments": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "enabled": {
      +                "description": "Prevent a customer who has already paid for this product from paying again. One-time payments only. Defaults to `false`.",
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Duplicate-payment prevention settings for this product. Applies to one-time payments only."
      +      },
      +      "limitSubscriptions": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "enabled": {
      +                "description": "Enable subscription limits. Defaults to `false`.",
      +                "type": [
      +                  "boolean",
      +                  "null"
      +                ]
      +              },
      +              "limitSubscriptionsStripe": {
      +                "anyOf": [
      +                  {
      +                    "properties": {
      +                      "enabled": {
      +                        "description": "Enable Stripe-level subscription limits (checks active subscriptions in Stripe). Defaults to `false`.",
      +                        "type": [
      +                          "boolean",
      +                          "null"
      +                        ]
      +                      }
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Stripe-specific subscription limit configuration."
      +              }
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Configuration to limit the number of active subscriptions for this product. Used to cap subscriptions to a specific number."
      +      },
      +      "price": {
      +        "description": "The singular way to set a product price — equivalent to `prices: [entry]` and materialized as one. When `prices` is also provided it takes precedence and `price` is ignored. On update, `price` is only valid while the product has at most one price (a legacy product transitions to `prices[]` on first use); products with multiple prices must be updated through `prices[]`.",
      +        "properties": {
      +          "amount": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Price in smallest currency unit (cents). Defaults to `0`.",
      +            "example": 4900
      +          },
      +          "badge": {
      +            "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      +            "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. `null` removes it."
      +          },
      +          "billingType": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "one_time",
      +                  "recurring"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Billing type. Derived when omitted: `recurring`/`paymentPlan` present → recurring, else one_time. Part of the pricing-type identity fixed at creation — cannot change on an existing price."
      +          },
      +          "currency": {
      +            "anyOf": [
      +              {
      +                "maxLength": 3,
      +                "minLength": 3,
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Currency code (lowercase). Defaults to `usd`.",
      +            "example": "usd"
      +          },
      +          "discountedFromPrice": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The original price of the product in the smallest currency unit (cents).",
      +            "example": 9900
      +          },
      +          "enabled": {
      +            "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "hidden": {
      +            "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "id": {
      +            "description": "Existing price id (omit when creating a new price).",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "label": {
      +            "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "order": {
      +            "description": "Dashboard display order. Lower numbers appear first.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "payWhatYouWant": {
      +            "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "paymentPlan": {
      +            "anyOf": [
      +              {
      +                "properties": {
      +                  "billingCycleAnchorConfig": {
      +                    "anyOf": [
      +                      {
      +                        "properties": {
      +                          "dayOfMonth": {
      +                            "anyOf": [
      +                              {
      +                                "maximum": 31,
      +                                "minimum": 1,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                            "example": 1
      +                          },
      +                          "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 for subscriptions.",
      +                    "example": "month"
      +                  },
      +                  "intervalCount": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Number of intervals between billings.",
      +                    "example": 1
      +                  },
      +                  "planIterations": {
      +                    "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      +                    "example": 3,
      +                    "minimum": 1,
      +                    "type": "number"
      +                  },
      +                  "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.",
      +                    "example": "2026-02-25T06:40:09.463Z"
      +                  },
      +                  "trialPeriodDays": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Trial period in days for subscriptions."
      +                  }
      +                },
      +                "required": [
      +                  "planIterations"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      +          },
      +          "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[]`. Accepted and ignored.",
      +            "example": "single"
      +          },
      +          "pwywSuggestedPrice": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      +            "example": 2500
      +          },
      +          "recurring": {
      +            "anyOf": [
      +              {
      +                "properties": {
      +                  "billingCycleAnchorConfig": {
      +                    "anyOf": [
      +                      {
      +                        "properties": {
      +                          "dayOfMonth": {
      +                            "anyOf": [
      +                              {
      +                                "maximum": 31,
      +                                "minimum": 1,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ],
      +                            "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                            "example": 1
      +                          },
      +                          "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 for subscriptions.",
      +                    "example": "month"
      +                  },
      +                  "intervalCount": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 1,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Number of intervals between billings.",
      +                    "example": 1
      +                  },
      +                  "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.",
      +                    "example": "2026-02-25T06:40:09.463Z"
      +                  },
      +                  "trialPeriodDays": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Trial period in days for subscriptions."
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "The recurring components of a price such as `interval` and `intervalCount`"
      +          },
      +          "reference": {
      +            "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      +            "example": "price_one_time_fixed_5000",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "setupFee": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "One-time setup fee in cents."
      +          },
      +          "setupFeeMultipliesWithQuantity": {
      +            "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      +            "example": false,
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "pricePicker": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "description": {
      +                "description": "Text shown under the heading, above the price options. Line breaks are kept.",
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "priceDisplayDefaults": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "type": "string"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis default tab selection. Keyed by grouping axis. E.g. `{ interval: \"Monthly\" }`."
      +              },
      +              "priceDisplayLabels": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "additionalProperties": {
      +                        "type": "string"
      +                      },
      +                      "propertyNames": {
      +                        "type": "string"
      +                      },
      +                      "type": "object"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis label overrides for price tabs. Keyed by grouping axis (`billing` or `interval`), then by derived group name. E.g. `{ interval: { \"One-time\": \"Lifetime\" } }`."
      +              },
      +              "priceDisplayTabOrder": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": {
      +                      "items": {
      +                        "type": "string"
      +                      },
      +                      "type": "array"
      +                    },
      +                    "propertyNames": {
      +                      "type": "string"
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Per-axis tab display order. Keyed by grouping axis, value is ordered array of group names. E.g. `{ interval: [\"Monthly\", \"Yearly\"] }`."
      +              },
      +              "shortenDescription": {
      +                "description": "Cut long price descriptions to their first lines behind a Show more link. Defaults to `true`.",
      +                "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": {
      +        "description": "Explicit price list for this product. When provided alongside variants, use `variant.priceIds` to scope each variant group to its price. At least one entry must be enabled. When present, `prices[]` takes precedence over the legacy `price` field for determining what is shown at checkout.\n\nExample — one-time + monthly subscription:\n```json\n[\n  { \"billingType\": \"one_time\", \"amount\": 4900, \"currency\": \"usd\", \"label\": \"One-time\" },\n  { \"billingType\": \"recurring\", \"amount\": 1000, \"currency\": \"usd\", \"label\": \"Monthly\", \"recurring\": { \"interval\": \"month\", \"intervalCount\": 1 } }\n]\n```",
      +        "example": [
      +          {
      +            "amount": 4900,
      +            "billingType": "one_time",
      +            "currency": "usd",
      +            "label": "One-time"
      +          },
      +          {
      +            "amount": 1000,
      +            "billingType": "recurring",
      +            "currency": "usd",
      +            "label": "Monthly",
      +            "recurring": {
      +              "interval": "month",
      +              "intervalCount": 1
      +            }
      +          }
      +        ],
      +        "items": {
      +          "properties": {
      +            "amount": {
      +              "description": "Price in smallest currency unit (cents).",
      +              "example": 4900,
      +              "minimum": 0,
      +              "type": "number"
      +            },
      +            "badge": {
      +              "description": "Optional short label shown over the price card (e.g. \"Save $50\", \"Most popular\").",
      +              "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. `null` removes it."
      +            },
      +            "billingType": {
      +              "description": "Billing type. Part of the pricing-type identity fixed at creation — cannot change on an existing price.",
      +              "enum": [
      +                "one_time",
      +                "recurring"
      +              ],
      +              "example": "one_time",
      +              "type": "string"
      +            },
      +            "currency": {
      +              "anyOf": [
      +                {
      +                  "maxLength": 3,
      +                  "minLength": 3,
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Currency code (lowercase). Defaults to `usd`.",
      +              "example": "usd"
      +            },
      +            "discountedFromPrice": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The original price of the product in the smallest currency unit (cents).",
      +              "example": 9900
      +            },
      +            "enabled": {
      +              "description": "Whether this price is selectable by customers. Defaults to `true`. At least one price must remain enabled.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "hidden": {
      +              "description": "Hide this price. Hidden prices can still be shown using query parameters.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "id": {
      +              "description": "Existing price id (omit when creating a new price).",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "label": {
      +              "description": "Optional seller-facing label for this price (e.g. \"Monthly\", \"Annual\").",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "order": {
      +              "description": "Dashboard display order. Lower numbers appear first.",
      +              "type": [
      +                "number",
      +                "null"
      +              ]
      +            },
      +            "payWhatYouWant": {
      +              "description": "If enabled `amount` field becomes the minimum price and customers can choose to pay what they want. If `amount` is empty or `0` customer can purchase the product for free. Pay What You Want applies to one-time prices and subscriptions, but not payment plans.",
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            },
      +            "paymentPlan": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "billingCycleAnchorConfig": {
      +                      "anyOf": [
      +                        {
      +                          "properties": {
      +                            "dayOfMonth": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 31,
      +                                  "minimum": 1,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                              "example": 1
      +                            },
      +                            "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 for subscriptions.",
      +                      "example": "month"
      +                    },
      +                    "intervalCount": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 1,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Number of intervals between billings.",
      +                      "example": 1
      +                    },
      +                    "planIterations": {
      +                      "description": "The number of times a subscription renews. After set number of renewals the payment plan is complete.",
      +                      "example": 3,
      +                      "minimum": 1,
      +                      "type": "number"
      +                    },
      +                    "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.",
      +                      "example": "2026-02-25T06:40:09.463Z"
      +                    },
      +                    "trialPeriodDays": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Trial period in days for subscriptions."
      +                    }
      +                  },
      +                  "required": [
      +                    "planIterations"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The payment plan components of a price such as `interval` and `intervalCount`"
      +            },
      +            "pwywSuggestedPrice": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "Suggested price in cents shown to customers when `payWhatYouWant` is `true`.",
      +              "example": 2500
      +            },
      +            "recurring": {
      +              "anyOf": [
      +                {
      +                  "properties": {
      +                    "billingCycleAnchorConfig": {
      +                      "anyOf": [
      +                        {
      +                          "properties": {
      +                            "dayOfMonth": {
      +                              "anyOf": [
      +                                {
      +                                  "maximum": 31,
      +                                  "minimum": 1,
      +                                  "type": "number"
      +                                },
      +                                {
      +                                  "type": "null"
      +                                }
      +                              ],
      +                              "description": "Day of the month subscriptions renew on. Renewals happen at 00:00 UTC. Customers who subscribe between renewal days pay a prorated amount for their first period. Customers who subscribe in the first 24 hours of the renewal day (00:00 to 24:00 UTC) are backdated to 00:00 and pay the full price. The full-price rule applies to subscriptions billed every month or every year, not payment plans. Defaults to `1`.",
      +                              "example": 1
      +                            },
      +                            "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 for subscriptions.",
      +                      "example": "month"
      +                    },
      +                    "intervalCount": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 1,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Number of intervals between billings.",
      +                      "example": 1
      +                    },
      +                    "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.",
      +                      "example": "2026-02-25T06:40:09.463Z"
      +                    },
      +                    "trialPeriodDays": {
      +                      "anyOf": [
      +                        {
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Trial period in days for subscriptions."
      +                    }
      +                  },
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The recurring components of a price such as `interval` and `intervalCount`"
      +            },
      +            "reference": {
      +              "description": "Merchant-facing internal id used in exports and reports (SKU-like). Derived from the price data when omitted, e.g. `price_one_time_fixed_5000`. A price resent by id keeps its stored reference.",
      +              "example": "price_one_time_fixed_5000",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "setupFee": {
      +              "anyOf": [
      +                {
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "One-time setup fee in cents."
      +            },
      +            "setupFeeMultipliesWithQuantity": {
      +              "description": "Whether or not the setup fee is multipled by the selected quantity. Applies to `one-time` and `pwyw` only. Defaults to `false`.",
      +              "example": false,
      +              "type": [
      +                "boolean",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "amount",
      +            "billingType"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "sku": {
      +        "anyOf": [
      +          {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "SKU of the product."
      +      },
      +      "stock": {
      +        "anyOf": [
      +          {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Available stock of the product.",
      +        "example": 100
      +      },
      +      "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"
      +          }
      +        ],
      +        "description": "If Stripe Tax is enabled, determines the behaviour of Stripe Tax. Defaults to your Stripe Tax settings.",
      +        "example": ""
      +      },
      +      "taxCode": {
      +        "anyOf": [
      +          {
      +            "pattern": "^(txcd_[a-zA-Z0-9]+)?$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "If Stripe Tax is enabled, determines the tax code used when calculating tax. Defaults to your Stripe Tax settings."
      +      },
      +      "title": {
      +        "anyOf": [
      +          {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Product title. Defaults to page name if not provided.",
      +        "example": "Premium Course"
      +      },
      +      "variants": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "properties": {
      +                "hidden": {
      +                  "description": "Whether this variant is hidden. Hidden variants can be shown or filled with data by query paramers. [Learn more](https://checkoutpage.com/docs/articles/preselect-checkout-variants). Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "increasesWithQuantity": {
      +                  "description": "Whether or not the variant quantity matches the checkout quantity. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "key": {
      +                  "description": "Optional caller-defined key for this variant. Not persisted to the database. Required when other variants reference this variant in `showHideLogic.element.elementId`. Bulk discounts with `variant_option_quantity` use option-level keys from `variants[].options[].key`.",
      +                  "example": "select-package-tier",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "layout": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "collapseVariantOptions": {
      +                          "description": "If enabled, variant options are collapsed by default. Defaults to `false`.",
      +                          "example": false,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "imageSize": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "small",
      +                                "medium",
      +                                "large",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Size of variant option images. Defaults to `small`.",
      +                          "example": "small"
      +                        },
      +                        "showPwywPlaceholder": {
      +                          "description": "Show placeholder text for Pay What You Want inputs. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantName": {
      +                          "description": "Show the variant name. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionNames": {
      +                          "description": "Show variant option names. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionPriceSign": {
      +                          "description": "Show price sign (+ or -) for variant option prices. Defaults to `false`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "showVariantOptionPrices": {
      +                          "description": "Show variant option prices. Defaults to `true`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "spacing": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "comfortable",
      +                                "compact",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Spacing between variant options. Defaults to `comfortable`.",
      +                          "example": "comfortable"
      +                        },
      +                        "textAlign": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "left",
      +                                "center",
      +                                "stack",
      +                                ""
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Text alignment for variant options. Defaults to `left`.",
      +                          "example": "left"
      +                        },
      +                        "variantOptionColumns": {
      +                          "anyOf": [
      +                            {
      +                              "maximum": 10,
      +                              "minimum": 1,
      +                              "type": "number"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Number of columns for grid layout. Defaults to `2`.",
      +                          "example": 2
      +                        },
      +                        "variantOptionLayout": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "list",
      +                                "grid"
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Layout style for variant options. Defaults to `list`.",
      +                          "example": "list"
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Layout configuration for this variant."
      +                },
      +                "manageVariantOptionStock": {
      +                  "description": "If enabled stock is managed by the variant options. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                },
      +                "name": {
      +                  "description": "Name of the variant.",
      +                  "example": "Plan Type",
      +                  "type": "string"
      +                },
      +                "options": {
      +                  "description": "Options within this variant. Variant must have at least one option.",
      +                  "items": {
      +                    "properties": {
      +                      "additionalChargeAmount": {
      +                        "description": "The additional charge for selecting this variant option in cents.",
      +                        "example": 1000,
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "description": {
      +                        "description": "Description of the variant option. Supports HTML or plain text.",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "discountedFromPrice": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 0,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "The original price of this variant option in cents.",
      +                        "example": 1500
      +                      },
      +                      "fileIds": {
      +                        "anyOf": [
      +                          {
      +                            "items": {
      +                              "pattern": "^[0-9a-fA-F]{24}$",
      +                              "type": "string"
      +                            },
      +                            "type": "array"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Files specific to this variant option. Available to the customer after purchase."
      +                      },
      +                      "imageId": {
      +                        "anyOf": [
      +                          {
      +                            "pattern": "^[0-9a-fA-F]{24}$",
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ]
      +                      },
      +                      "key": {
      +                        "description": "Optional caller-defined key for this option. Not persisted to the database. Required when `preselect.optionId` on the same variant, `showHideLogic.value` on another variant, or a `discounts[].variantOptionIds[].key` entry needs to reference this option in the same request.",
      +                        "example": "pro-option",
      +                        "type": [
      +                          "string",
      +                          "null"
      +                        ]
      +                      },
      +                      "name": {
      +                        "description": "Name of the variant option.",
      +                        "example": "Basic",
      +                        "type": "string"
      +                      },
      +                      "payWhatYouWant": {
      +                        "description": "If enabled, customers can choose their own price for this variant option. The minimum price is based on the additionalChargeAmount. This is only supported for `one_time` options. Defaults to `false`.",
      +                        "example": false,
      +                        "type": [
      +                          "boolean",
      +                          "null"
      +                        ]
      +                      },
      +                      "pwywSuggestedPrice": {
      +                        "anyOf": [
      +                          {
      +                            "minimum": 0,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Suggested price for Pay What You Want options in cents. This is a cosmetic field used to display a suggested amount to the customer. Defaults to `0`.",
      +                        "example": 2500
      +                      },
      +                      "sku": {
      +                        "description": "SKU for this option.",
      +                        "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"
      +                          }
      +                        ],
      +                        "description": "Status of the variant option. Defaults to `enabled`.",
      +                        "example": "enabled"
      +                      },
      +                      "stock": {
      +                        "description": "Stock quantity for this option.",
      +                        "example": 10,
      +                        "type": [
      +                          "number",
      +                          "null"
      +                        ]
      +                      },
      +                      "type": {
      +                        "anyOf": [
      +                          {
      +                            "enum": [
      +                              "one_time",
      +                              "recurring"
      +                            ],
      +                            "type": "string"
      +                          },
      +                          {
      +                            "type": "null"
      +                          }
      +                        ],
      +                        "description": "Type of variant option - one-time purchase or recurring subscription. For Pay What You Want options, `type` must be `one_time` and set `payWhatYouWant: true`.",
      +                        "example": "one_time"
      +                      }
      +                    },
      +                    "required": [
      +                      "name"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "minItems": 1,
      +                  "type": "array"
      +                },
      +                "order": {
      +                  "description": "Display order of the variant. Defaults to `0`.",
      +                  "example": 0,
      +                  "type": [
      +                    "number",
      +                    "null"
      +                  ]
      +                },
      +                "preselect": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "enabled": {
      +                          "description": "Enable preselecting a variant option. Defaults to `false`.",
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "optionId": {
      +                          "description": "The `key` of the variant option to preselect. Must match the `key` of an option on this variant.",
      +                          "example": "pro-option",
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        },
      +                        "quantity": {
      +                          "description": "Quantity to preselect for quantity selection type variants. Defaults to `1` for `single` and `multiple` selection types.",
      +                          "example": 2,
      +                          "type": [
      +                            "number",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Preselect configuration for this variant.",
      +                  "example": {
      +                    "enabled": true,
      +                    "optionId": "pro-option",
      +                    "quantity": 1
      +                  }
      +                },
      +                "priceIds": {
      +                  "anyOf": [
      +                    {
      +                      "items": {
      +                        "pattern": "^[0-9a-fA-F]{24}$",
      +                        "type": "string"
      +                      },
      +                      "type": "array"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Price IDs this variant group is scoped to. Required when the product has multiple prices configured via `prices[]`. Customers will only see this variant group when the scoped price is selected.",
      +                  "example": [
      +                    "507f1f77bcf86cd799439011"
      +                  ]
      +                },
      +                "reference": {
      +                  "anyOf": [
      +                    {
      +                      "maxLength": 36,
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "External reference ID. Generated from the variant name when omitted.",
      +                  "example": "fd3136f8-da1f-4a4c-b381-32a097b60c38"
      +                },
      +                "required": {
      +                  "description": "Whether the customer must select at least one option in the variant.",
      +                  "example": true,
      +                  "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"
      +                    }
      +                  ],
      +                  "description": "Type of selection. If `single` the customer can choose one option in the variant group. If `multiple` the customer can choose multiple options in the variant group. If `quantity` the customer can select multiple options and set a quantity of each variant in the variant group. Defaults to `single`",
      +                  "example": "single"
      +                },
      +                "showHideLogic": {
      +                  "anyOf": [
      +                    {
      +                      "properties": {
      +                        "comparison": {
      +                          "anyOf": [
      +                            {
      +                              "enum": [
      +                                "is",
      +                                "is_not",
      +                                "is_empty",
      +                                "is_not_empty",
      +                                "contains"
      +                              ],
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Comparison operator for the condition. Defaults to `is`. Use `value` with `is`, `is_not`, and `contains`. Omit `value` for `is_empty` and `is_not_empty`.",
      +                          "example": "is"
      +                        },
      +                        "element": {
      +                          "anyOf": [
      +                            {
      +                              "properties": {
      +                                "elementId": {
      +                                  "description": "The `key` of the source variant used in the condition. Must match the `key` of another variant in the same batch.",
      +                                  "example": "select-package-tier",
      +                                  "type": [
      +                                    "string",
      +                                    "null"
      +                                  ]
      +                                }
      +                              },
      +                              "type": "object"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Element (variant) to compare against."
      +                        },
      +                        "enabled": {
      +                          "description": "Enable conditional show/hide logic. Defaults to `false`.",
      +                          "example": true,
      +                          "type": [
      +                            "boolean",
      +                            "null"
      +                          ]
      +                        },
      +                        "value": {
      +                          "description": "The `key` of the variant option being referenced. Must match the `key` of an option on the source variant identified by `showHideLogic.element.elementId`. Use this with `is`, `is_not`, and `contains`. Omit this field for `is_empty` and `is_not_empty`.",
      +                          "example": "pro-option",
      +                          "type": [
      +                            "string",
      +                            "null"
      +                          ]
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ],
      +                  "description": "Conditional logic to show or hide this variant based on other form elements."
      +                },
      +                "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"
      +                    }
      +                  ],
      +                  "description": "Status of the variant. Defaults to `enabled`",
      +                  "example": "enabled"
      +                },
      +                "useVariantOptionSkus": {
      +                  "description": "If enabled, use SKUs from variant options instead of the product SKU. Defaults to `false`.",
      +                  "type": [
      +                    "boolean",
      +                    "null"
      +                  ]
      +                }
      +              },
      +              "required": [
      +                "name",
      +                "options"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "Product variants and options. To link a discount to specific variant options, assign a `key` to each relevant option here and reference those keys in `discounts[].variantOptionIds[].key` within the same request."
      +      },
      +      "variantsRequired": {
      +        "description": "Use when no variants are marked as required but you still need the customer to select at least one variant option. Ignored when any variant is individually required. Defaults to `false`.",
      +        "example": false,
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  6. Changed2 schema fields changed
    • addedInput schema / $defs / FieldInput / properties / disabled
      Added value: +{
      +  "description": "Whether this field is switched off. A disabled field keeps its settings but is removed from the page entirely: it is not rendered, cannot be revealed with `show_fields`, is not prefilled and is never submitted.",
      +  "example": false,
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
    • addedOutput schema / $defs / Field / properties / disabled
      Added value: +{
      +  "description": "Whether this field is switched off. A disabled field keeps its settings but is removed from the page entirely.",
      +  "example": false,
      +  "type": [
      +    "boolean",
      +    "null"
      +  ]
      +}
  7. Changed4 schema fields changed
    • addedInput schema / $defs / PageCoverProcessingFees
      Added value: +{
      +  "description": "An option that lets customers choose to cover the processing fee. The contribution is `percentage` of the total plus `amount`, and is not an Additional fee.",
      +  "properties": {
      +    "amount": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "enabled": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "label": {
      +      "anyOf": [
      +        {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "percentage": {
      +      "anyOf": [
      +        {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "preselected": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "showAmount": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / coverProcessingFees
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/PageCoverProcessingFees"
      +      },
      +      "maxItems": 1,
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Options that let customers choose to cover the processing fee. The list holds at most one option for now. Sending it replaces the whole list."
      +}
    • addedOutput schema / $defs / PageCoverProcessingFees
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "An option that lets customers choose to cover the processing fee. The contribution is `percentage` of the total plus `amount`, and is not an Additional fee.",
      +  "properties": {
      +    "amount": {
      +      "anyOf": [
      +        {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "enabled": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "label": {
      +      "anyOf": [
      +        {
      +          "maxLength": 200,
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "percentage": {
      +      "anyOf": [
      +        {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "preselected": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "showAmount": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / properties / coverProcessingFees
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/PageCoverProcessingFees"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Options that let customers choose to cover the processing fee. Empty when the page has none. The list holds at most one option for now."
      +}
  8. Changed1 schema field changed
    • changedOutput schema / properties / data / 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. `orderbump` products are only available for beta testing of the order bump feature.",
      -            "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": "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"
      +  }
      +]
  9. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-destructive creation tool, and the description adds material context beyond them: the page is created published and immediately live at a hosted URL, tax defaults to Stripe Tax, fields default to name/email/address, and omitting the required email field causes failure. It also explains side-effect semantics for disabled fields and supported payment-option combinations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is long, but it is front-loaded with purpose and organized under Fields, Tax settings, Payment options, and Example uses, so an agent can scan to the relevant section. It loses a point for some repetition with the schema descriptions, particularly the tax-mode and payment-combination explanations that are restated in structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 57 parameters, numerous nested pricing and field structures, and an output schema, the description covers the decisions an agent must make: defaults, constraints that cause failure, tax prerequisites, and the follow-up add_to_website step. It also names the return fields, which is useful for chaining even though the output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 72%, the description carries substantial meaning beyond the schema: it explains when to omit fields, the required email field constraint, the grouped address element versus flat fields, the three tax modes and their prerequisites, and the only supported payment-option combinations. The worked examples map natural language pricing requests directly onto productData.price / prices fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb and resource ('Create a new checkout page with an attached product and pricing'), which lets an agent separate this from get_checkout_page, update_checkout_page, and list_checkout_pages without opening the schema. It also names what the page contains, so the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it 'whenever a merchant wants to start accepting payments' and instructs a minimal page when the request is vague. It routes to concrete alternatives in the same ecosystem: list_theme_properties for design, list_themes for themeId, list_tax_rates/create_tax_rate for fixed tax, and add_to_website as the next step for website work.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources