> ## Documentation Index
> Fetch the complete documentation index at: https://developer.surecart.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve

> Retrieves details of a specific refund.



## OpenAPI

````yaml /openapi/v1/orders.json get /v1/refunds/{id}
openapi: 3.1.0
info:
  title: SureCart Orders & Payments API
  description: >-
    Order processing and payment management including checkouts, charges,
    invoices, refunds, and disputes
  termsOfService: https://surecart.com/terms-and-conditions
  version: '1.0'
servers:
  - url: https://{defaultHost}
    variables:
      defaultHost:
        default: api.surecart.com
security:
  - bearer_auth: []
tags:
  - name: Abandonded Checkouts
    description: >-
      An abandonded checkout represents a customer's most recent incomplete
      checkout.

      When a checkout is associated with a customer and is left unpaid for 30
      minutes a corresponding abandoned checkout is created. Only one abandoned
      checkout will be created per customer every 10 days.
  - name: Abandoned Checkout Protocols
    description: >-
      An abandoned checkout protocol represents the abandoned checkout settings
      for an account.
  - name: Accounts
    description: >-
      This is an object representing a SureCart account. You can retrieve it to
      see properties on the account like it's current - name or default
      currency.
  - name: Activations
    description: An activation represents a single use of a license.
  - name: Affiliation Products
    description: >-
      An affiliation product allows for setting a specific commission structure
      for a product and affiliation.
  - name: Affiliation Protocols
    description: An affiliation protocol represents the affiliate settings for an account.
  - name: Affiliation Requests
    description: >-
      An affiliation request represents a request from an affiliate to join an
      account's affiliate program.
  - name: Affiliations
    description: >-
      An affiliation represents a relationship between an affiliate and an
      account.
  - name: Balance Transactions
    description: >-
      You may modify a customer's balance by creating a balance transaction,
      which increments or decrements the customer's balance by the specified
      amount.
  - name: Balances
    description: >-
      Each customer has a balance value for each currency, which denotes a debit
      or credit that's automatically applied to their next invoice upon
      finalizing.
  - name: Brands
    description: A brand represents the design and branding settings for an account.
  - name: Bulk Actions
    description: >-
      A bulk action is a way to perform a single action on multiple resources at
      once.
  - name: Bumps
    description: >-
      A bump represents a price that will be conditionally recommended to
      customers during checkout. Bumps are displayed below the checkout summary
      and offer an easy way to add additional products to the checkout. They are
      a more powerful alternative to swaps, but they are more intrusive to the
      checkout experience.
  - name: Cancellation Acts
    description: A cancellation act represents a customer attempt to cancel a subscription.
  - name: Cancellation Reasons
    description: >-
      Cancellation reasons are specific reasons that a customer can select from
      when cancelling a subscription.
  - name: Charges
    description: >-
      A Charge represents a credit or debit card transaction that was captured
      through one of your processors. Only succesfully captured charges are
      recorded in SureCart.
  - name: Checkouts
    description: >-
      A checkout represents a collection of one-time and/or subscription
      products that a customer intends to purchase.
  - name: Checkout Portal Protocols
    description: >-
      A checkout portal protocol represents the checkout portal settings for an
      account.
  - name: Clicks
    description: >-
      A click is a record of a customer clicking on an affiliate link. Click
      records are associated with checkouts to create referrals.
  - name: Coupons
    description: >-
      A coupon contains information about a percent-off or amount-off discount.

      The coupon object can be used to discount either one-time payments or
      subscriptions. There are some additional parameters that apply to
      subscriptions, but are not applicable to one-time payments, such as
      duration. Regardless of what duration is set to, it only applies once for
      one-time payments.
  - name: Customer Links
    description: >-
      Customer links are temporary objects that allow access to customers
      through email lookup.

      Each customer link is valid for the greater of 1 hour after it's
      `created_at` time or 1 hour after it's `first_used_at` time. This means
      that if a customer link is not used within the first hour it expires. If a
      customer link is used within the first hour then it is valid for another
      hour starting from the time it was first used. So, a customer link that is
      used 30min after it's created will be valid for a total of 1hr 30min.
  - name: Customer Notification Protocols
    description: >-
      A customer notification protocol represents the customer notification
      settings for an account.
  - name: Customers
    description: >-
      Customer objects allow you to perform recurring charges, and to track
      multiple charges, that are associated with the same customer.
  - name: Customer Portal Protocols
    description: >-
      A customer portal protocol represents the customer portal settings for an
      account.
  - name: Display Currencies
    description: >-
      Display currencies are the currencies that are available to customers from
      the currency selector on your store.
  - name: Downloads
    description: >-
      Downloads represent the medias that can be downloaded when a specific
      product is purchased.
  - name: Events
    description: >-
      Events are our way of letting you know when something interesting happens
      in your account. When an interesting event occurs, we create a new `Event`
      object. For example, when a subscription updates, we create a
      `subscription.updated` event.
  - name: Exports
    description: Exports allow you to download your raw data from your SureCart account.
  - name: Fees
    description: >-
      A fee represents an additional amount added or subtracted from a specific
      line item.
  - name: Fulfillment Items
    description: >-
      A fulfillment item represents a specific line item being shipped to a
      customer within a fulfillment.
  - name: Fulfillments
    description: >-
      A fulfillment represents a shipment of products within an order to a
      customer.
  - name: Imports
    description: >-
      Imports allow you to upload raw data into your SureCart account to batch
      create customers, products, subscriptions, etc.
  - name: Invoices
    description: >-
      Invoices are statements of amounts owed by a customer. They wrap a
      checkout and can be configured to collect payment automatically or be sent
      to the customer for payment.
  - name: Licenses
    description: >-
      A license represents permission for a customer to use a specific product.
      Each license has an auto-generated `key` which can be used with the public
      license endpoints.
  - name: Line Items
    description: >-
      A line item represents a price and it's quantity being purchased by a
      customer within a checkout.
  - name: Manual Charges
    description: >-
      A manual charge represents record of a payment that was captured outside
      of SureCart.
  - name: Manual Payment Methods
    description: >-
      Manual payment methods are used to allow customers to checkout with manual
      approval – i.e. cash on delivery, bank transfers, etc.
  - name: Medias
    description: >-
      Medias represent files that are hosted on our servers. Medias are uploaded
      directly to the underlying hosting service. To learn more about how medias
      work, please contact support.
  - name: Notes
    description: >-
      Notes are snippets of text that can be attached to objects to provide
      extra context. Notes can be added to `Customer`, `Order`, and
      `Subscription` objects.
  - name: Order Protocols
    description: A order protocol represents the order settings for an account.
  - name: Orders
    description: >-
      An order is a customer's completed request to purchase one or more
      products. An order is created when a checkout is paid.
  - name: Parcel Templates
    description: >-
      A parcel template is a saved set of package dimensions and weight that can
      be reused for shipping calculations.
  - name: Payment Failures
    description: A payment failure represents an attempt to pay a checkout that failed.
  - name: Payment Intents
    description: >-
      A payment intent represents the process of collecting a payment method
      from your customer.
  - name: Payment Methods
    description: Payment method objects represent your customer's payment instruments.
  - name: Payout Groups
    description: A payout group represents a group of payouts that are created together.
  - name: Payouts
    description: A payout represents a payment to an affiliate.
  - name: Periods
    description: A period represents a billing interval for a subscription.
  - name: Prices
    description: >-
      Prices define the unit cost, currency, and (optional) billing cycle for
      both recurring and one-time purchases of products. Products help you track
      inventory or provisioning, and prices help you track payment terms.
      Different physical goods or levels of service should be represented by
      products, and pricing options should be represented by prices.

      This approach lets you change prices without having to change your
      provisioning scheme. For example, you might have a single \"gold\" product
      that has prices for $10/month, $100/year, and €9 once.
  - name: Processors
    description: >-
      A processor represents a connection to a third-party payment processor
      like Stripe.
  - name: Product Collections
    description: A list of related products - used to categorize products.
  - name: Product Groups
    description: >-
      A group of related products – used to configure which products a customer
      can switch between when updating a subscription.
  - name: Product Medias
    description: Product medias represent a product's images.
  - name: Products
    description: >-
      Products describe the specific goods or services you offer to your
      customers. For example, you might offer a Standard and Premium version of
      your goods or service; each version would be a separate Product. They can
      be used in conjunction with Prices to configure pricing and Subscriptions.
  - name: Promotions
    description: >-
      A Promotion represents a customer-redeemable code for a coupon. It can be
      used to create multiple codes for a single coupon.
  - name: Purchases
    description: >-
      A purchase represents a specific product that a customer has paid for
      (one-time products), or is currently paying for (recurring products via a
      subscription). The purchase model is a summary of all products that a
      customer current should have "access" to.
  - name: Referral Items
    description: A referral item represents a specific line item within a referral.
  - name: Referrals
    description: A referral represents a checkout that is associated with an affiliate.
  - name: Refunds
    description: >-
      Refund objects allow you to refund a charge that has previously been
      created but not yet refunded. Funds will be refunded to the credit or
      debit card that was originally charged.
  - name: Return Items
    description: >-
      A return item represents a specific line item being returned from a
      customer within a return request.
  - name: Return Requests
    description: >-
      A return request represents a return of products within an order from a
      customer.
  - name: Reviews
    description: A review represents a customer's review of a product.
  - name: Review Medias
    description: Review medias represent the media that is associated with a review.
  - name: Review Protocols
    description: A review protocol represents the review settings for an account.
  - name: Shipments
    description: >-
      A shipment represents a package being sent via a shipping provider (e.g.
      Shippo) with rate quoting, label purchasing, and tracking.
  - name: Shipping Methods
    description: >-
      Shipping methods represent the different speeds/classes of shipping that a
      store offers – i.e. `Express`, `Ground`, etc.
  - name: Shipping Profiles
    description: >-
      A shipping profile is a grouping of products that have the same shipping
      zones and rates. Each product can belong to one shipping profile.
  - name: Shipping Protocols
    description: A shipping protocol represents the shipping settings for an account.
  - name: Shipping Rates
    description: >-
      Shipping rates represent the specific rules for determining the cost of
      shipping based on the products within a checkout.
  - name: Shipping Zones
    description: >-
      A shipping zone represents a geographical (group of countries) boundary
      for setting specific shipping rates within a shipping profile.
  - name: Statistics
    description: A group of endpoints that provide high level statistics on resources.
  - name: Subscription Protocols
    description: >-
      A subscription protocol represents the subscription settings for an
      account.
  - name: Subscriptions
    description: >-
      A Subscription represents a recurring schedule to charge a customer on one
      of your processors.
  - name: Swaps
    description: >-
      A swap represents a price that will be conditionally recommended to
      customers during checkout. Swaps are displayed in the checkout summary and
      can be easily toggled on or off. They are non-intrusive alternative to
      bumps, and offer customers an easy way to flip between two prices.
  - name: Tax Overrides
    description: >-
      A tax override is a manual tax rate that will be applied to products in a
      collection or shipping within a specific tax zone.
  - name: Tax Protocols
    description: A tax protocol represents the tax settings for an account.
  - name: Tax Registrations
    description: >-
      A tax registration represents a tax zone that is enabled for an account.
      Taxes will not be calculated for checkouts within a tax zone unless a
      matching tax registration exists.
  - name: Tax Zones
    description: >-
      A tax zone represents a geographic area (country and state combinations)
      that taxes can be calculated for.
  - name: Trackings
    description: >-
      A tracking represents the tracking number information from a shipping
      courier.
  - name: Upsell Funnels
    description: >-
      An upsell funnel represents a group of upsells that will be presented to
      customers after checkout in a specific order.
  - name: Upsells
    description: >-
      An upsell represents a price (maybe discounted) that will be offered to
      customers after checkout.
  - name: Variant Options
    description: >-
      Variant options represent the custom properties of a product – i.e.
      `Size`, `Color`, etc.
  - name: Variant Values
    description: >-
      Variant values represent the custom values of a specific variant option.
      For example, a variant option named `Color` could have variant values of
      `Red` and `Blue`.
  - name: Variants
    description: >-
      A variant represents one version of a product with several options. Each
      product can have a maximum of three variant options and a maximum of 100
      variants.
  - name: Warehouses
    description: >-
      A warehouse represents a "ship from" address that can be set as the
      account default for outbound shipments.
  - name: Verification Codes
    description: >-
      Verification codes are short-lived authentication codes that can be used
      to verify access to an email address. They provide a secure way of
      granting access to the customer portal without requiring the customer to
      have a password.

      Each verification code is valid for 10 minutes, and you are limited to
      creating 1 every minute per email address.
  - name: Webhook Endpoints
    description: >-
      You can configure webhook endpoints via the API to be notified about
      events that happen in your SureCart account.

      Most users configure webhooks from the dashboard, which provides a user
      interface for registering and testing your webhook endpoints.
paths:
  /v1/refunds/{id}:
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Refunds
      summary: Retrieve
      description: Retrieves details of a specific refund.
      operationId: retrieve_refund
      responses:
        '200':
          description: Success
          content:
            application/json:
              example:
                id: 2370a8ed-0716-45bf-86dc-e999fb8b247a
                object: refund
                amount: 1450
                currency: usd
                external_refund_id: hymzp7sbauksdzg
                failure_reason: null
                live_mode: true
                metadata: {}
                reason: requested_by_customer
                status: pending
                charge: 5d958a69-43b1-40b7-892e-571e1b32c0c1
                customer: a57b333a-e9d6-4c51-bb94-57356e2fa997
                return_request: null
                created_at: 1778010920
                updated_at: 1778010920
              schema:
                $ref: '#/components/schemas/refund_response'
components:
  schemas:
    refund_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/refund_base'
        - properties:
            charge:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated charge ID.
                - $ref: '#/components/schemas/charge_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated charge object.
            currency:
              type: string
              description: Three-letter ISO currency code, in lowercase.
            customer:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            external_refund_id:
              type: string
              description: The external processor ID representing this refund.
            failure_reason:
              type: string
              nullable: true
              description: >-
                The reason this refund failed, which can currently only be
                `insufficient_funds`.
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this refund is in live mode, and set to `false`
                if it is in test mode.
            refund_items:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated refund item objects.
            return_request:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated return request ID.
                - $ref: '#/components/schemas/return_request_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated return request object.
            status:
              type: string
              description: >-
                The current status of this refund, which can be one of
                `pending`, `succeeded`, `failed`, or `canceled`.
        - $ref: '#/components/schemas/model_timestamps'
    model_identifiers:
      properties:
        id:
          type: string
          nullable: true
          description: The UUID of the specific object.
        object:
          type: string
          description: A string describing the object type returned.
    refund_base:
      allOf:
        - properties:
            amount:
              type: integer
              description: >-
                The amount in cents that was refunded, represented as a whole
                integer. For example `9900` is equivalent to `$99`.
            reason:
              type: string
              description: >-
                The reason for this refund, which can be one of `duplicate`,
                `fraudulent`, `requested_by_customer`, or
                `expired_uncaptured_charge`.
        - $ref: '#/components/schemas/model_metadata'
    charge_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            amount:
              type: integer
              description: >-
                The amount in cents that was charged, represented as a whole
                integer. For example `9900` is equivalent to `$99`.
            currency:
              type: string
              description: Three-letter ISO currency code, in lowercase.
            disputed_amount:
              type: integer
              description: The amount in cents that has been disputed.
            external_charge_id:
              type: string
              description: The external processor ID representing this charge.
            fully_refunded:
              type: boolean
              description: Whether or not this charge has been refunded completely.
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this charge is in live mode, and set to `false`
                if it is in test mode.
            refunded_amount:
              type: integer
              description: >-
                Amount in cents refunded (can be less than the amount attribute
                on the charge if a partial refund was issued).
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            checkout:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
            disputes:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated dispute objects.
            payment_intent:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment intent ID.
                - $ref: '#/components/schemas/payment_intent_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment intent object.
            payment_method:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment method ID.
                - $ref: '#/components/schemas/payment_method_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment method object.
            refunds:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated refund objects.
        - $ref: '#/components/schemas/model_timestamps'
    customer_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/customer_base'
        - properties:
            first_name:
              type: string
              nullable: true
              description: The customer’s first name.
            indexed:
              type: boolean
              description: >-
                Whether or not this customer is included in the `/customers`
                list endpoint. Only customers that have been manually created or
                have a purchase are indexed.
            last_name:
              type: string
              nullable: true
              description: The customer’s last name.
            affiliation:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated affiliation ID.
                - $ref: '#/components/schemas/affiliation_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated affiliation object.
            balances:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    this customer's balances.
            billing_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            default_payment_method:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment method ID.
                - $ref: '#/components/schemas/payment_method_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment method object.
            licenses:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated license objects.
            portal_url:
              type: string
              nullable: true
              description: >-
                A URL that will redirect to this customer's correct portal page
                (hosted or external).
            purchases:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated purchase objects.
            shipping_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            tax_identifier:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated tax identifier ID.
                - $ref: '#/components/schemas/tax_identifier_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated tax identifier object.
            reviews:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated review objects.
        - $ref: '#/components/schemas/model_timestamps'
    list_response:
      type: object
      properties:
        object:
          type: string
          description: A string describing the object type returned.
        pagination:
          type: object
          properties:
            count:
              type: integer
              description: The total number of items.
            limit:
              type: integer
              nullable: true
              description: >-
                The number of items per page. The default is `20` and the
                maximum is `100`.
            page:
              type: integer
              nullable: true
              description: The current page.
        data:
          type: array
          description: An array of objects.
    return_request_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/return_request_base'
        - properties:
            number:
              type: string
              description: >-
                The unique identifier for this return request that is auto
                generated based on this account's order protocol.
            order:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated order ID.
                - $ref: '#/components/schemas/order_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated order object.
            return_items:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated return item objects.
            status:
              type: string
              description: >-
                The current status of this return request – either `open` or
                `complete`.
        - $ref: '#/components/schemas/model_timestamps'
    model_timestamps:
      properties:
        created_at:
          type: integer
          nullable: true
          description: >-
            Time at which the object was created. Measured in seconds since the
            Unix epoch.
        updated_at:
          type: integer
          nullable: true
          description: >-
            Time at which the object was last updated. Measured in seconds since
            the Unix epoch.
    model_metadata:
      properties:
        metadata:
          type: object
          description: >-
            Set of key-value pairs that you can attach to an object. This can be
            useful for storing additional information about the object in a
            structured format.
    checkout_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/checkout_base'
        - properties:
            amount_due:
              type: integer
              description: >-
                Total amount due after all adjustments (i.e. trials, credits,
                proration).
            applied_balance_amount:
              type: integer
              description: The customer balance amount that was applied to this checkout.
            available_countries:
              type: array
              description: >-
                A list of countries available for this checkout, represented in
                the two-letter (ISO 3166-1 alpha-2) format.
            billing_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            charges:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated charge objects.
            checkout_fees:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated checkout fee objects.
            checkout_fees_amount:
              type: integer
              description: The total amount of checkout fees applied to this checkout.
            credited_balance_amount:
              type: integer
              description: >-
                The amount the customer's balance was credited from this
                checkout.
            current_payment_intent:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The current payment intent to be used to pay the checkout.
                    (This will only be set once the checkout has been
                    finalized.)


                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment intent ID.
                - $ref: '#/components/schemas/payment_intent_response'
                  description: >-
                    The current payment intent to be used to pay the checkout.
                    (This will only be set once the checkout has been
                    finalized.)


                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment intent object.
            current_upsell:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The upsell to be shown to the customer. (This will only be
                    set once the checkout has been paid and an upsell funnel is
                    set on the checkout.)


                    [Expandable](/api-reference/expanding-responses) – The
                    associated upsell ID.
                - $ref: '#/components/schemas/upsell_response'
                  description: >-
                    The upsell to be shown to the customer. (This will only be
                    set once the checkout has been paid and an upsell funnel is
                    set on the checkout.)


                    [Expanded](/api-reference/expanding-responses) – The
                    associated upsell object.
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The customer will only be set once the checkout has been
                    finalized.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    The customer will only be set once the checkout has been
                    finalized.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            discount:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated discount ID.
                - $ref: '#/components/schemas/discount_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated discount object.
            discount_amount:
              type: integer
              description: Total discount amount of all line items.
            free_shipping_choice_shortage_amount:
              type: integer
              nullable: true
              description: >-
                The amount that needs to be added to the checkout to qualify for
                free shipping. If `null`, then a free shipping choice is not
                available or it has already qualified.
            full_amount:
              type: integer
              description: The full amount to be charged across all periods.
            g_weight:
              type: number
              description: Total weight of the entire checkout in grams.
            inherited_billing_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The inherited billing address of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    The inherited billing address of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            inherited_email:
              type: string
              nullable: true
              description: >-
                The inherited email of the checkout or customer. This is
                controlled by the `inherit_customer_enabled` attribute on the
                account's order protocol.
            inherited_name:
              type: string
              nullable: true
              description: >-
                The inherited name of the checkout or customer. This is
                controlled by the `inherit_customer_enabled` attribute on the
                account's order protocol.
            inherited_phone:
              type: string
              nullable: true
              description: >-
                The inherited phone of the checkout or customer. This is
                controlled by the `inherit_customer_enabled` attribute on the
                account's order protocol.
            inherited_shipping_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The inherited shipping address of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    The inherited shipping address of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            inherited_tax_identifier:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The inherited tax identifier of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated tax identifier ID.
                - $ref: '#/components/schemas/tax_identifier_response'
                  description: >-
                    The inherited tax identifier of the checkout or customer.
                    This is controlled by the `inherit_customer_enabled`
                    attribute on the account's order protocol.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated tax identifier object.
            invoice:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated invoice ID.
                - $ref: '#/components/schemas/invoice_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated invoice object.
            last_click:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated click ID.
                - $ref: '#/components/schemas/click_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated click object.
            line_items:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated line item objects.
            manual_charges:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated manual charge objects.
            manual_payment:
              type: boolean
              description: >-
                Whether or not this checkout has been finalized with the
                `manual_payment=true` option.
            manual_payment_method:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated manual payment method ID.
                - $ref: '#/components/schemas/manual_payment_method_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated manual payment method object.
            remaining_amount_due:
              type: integer
              description: >-
                The remaining amount that is due for this checkout – the
                `amount_due` - `paid_amount`.
            net_paid_amount:
              type: integer
              description: >-
                The net amount that has been paid for this checkout – the
                `paid_amount` minus the `refunded_amount`.
            order:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated order ID.
                - $ref: '#/components/schemas/order_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated order object.
            paid_amount:
              type: integer
              description: >-
                The total amount that has been paid for this checkout – the sum
                of charges and manual charges.
            paid_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was paid. Measured in seconds since the
                Unix epoch.
            payment_failures:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated payment failure objects.
            payment_method_required:
              type: boolean
              description: >-
                Whether or not a payment method is required for this checkout.
                If false, the checkout will immediately transition to the `paid`
                state when finalized.
            phone_required:
              type: boolean
              description: >-
                Whether or not a phone number is required for this checkout.
                (This is determined by the account's active payment processors.)
            portal_url:
              type: string
              nullable: true
              description: >-
                A URL that will redirect to this checkout's correct portal page
                (hosted or external).
            processor_data:
              type: object
              description: >-
                All of the additional data necessary to capture payment with
                each processor.
            proration_amount:
              type: integer
              description: Total amount to be prorated from this checkout.
            purchases:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated purchase objects.
            recommended_bumps:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    recommended bumps for this checkout.
            referral:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated referral ID.
                - $ref: '#/components/schemas/referral_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated referral object.
            refunded_amount:
              type: integer
              description: >-
                The total amount that has been refunded for this checkout – the
                sum of refunds.
            reusable_payment_method_required:
              type: boolean
              description: >-
                Whether or not a reusable payment method is required for this
                checkout.
            selected_shipping_choice_required:
              type: boolean
              description: >-
                Whether or not a shipping choice must be selected for this
                checkout.
            selected_shipping_choice:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated shipping choice ID.
                - $ref: 2ff21d12-2d76-4aac-a8b1-793540be88b0
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated shipping choice object.
            shipping_address:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated address ID.
                - $ref: '#/components/schemas/address_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated address object.
            shipping_address_accuracy_requirement:
              type: string
              nullable: true
              description: >-
                The required level of accuracy for the shipping address – one of
                `full`, `tax`, or `none`.
            shipping_amount:
              type: integer
              description: Total shipping amount for the checkout.
            shipping_choices:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    available shipping choices for this checkout.
            shipping_fees:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated shipping fee objects.
            shipping_enabled:
              type: boolean
              description: >-
                Whether or not this checkout has products with
                `shipping_enabled=true`.
            shipping_fees_amount:
              type: integer
              description: >-
                The total amount of shipping fees applied to the
                shipping_amount.
            shipping_tax_amount:
              type: number
              description: Total tax from shipping.
            shipping_tax_rate:
              type: number
              description: The tax rate applied to shipping.
            status:
              type: string
              description: >-
                The current status of this checkout, which can be one of
                `canceled`, `draft`, `finalized`, `paid`,
                `payment_intent_canceled`, `payment_failed`, or `processing`.
            subtotal_amount:
              type: integer
              description: >-
                Total of all line items and their fees before discounts or taxes
                are applied.
            tax_amount:
              type: integer
              description: Total tax amount of all line items.
            tax_breakdown:
              type: array
              description: The tax rate breakdown for this checkout.
            tax_label:
              type: string
              nullable: true
              description: >-
                The type of tax that is applied to this checkout. For example,
                in the EU this value will be `VAT` and in the US this value will
                be `Tax`.
            tax_status:
              type: string
              description: >-
                The status of tax calculations for this checkout. One of
                `address_invalid`, `calculated`, `disabled`, `estimated`,
                `reverse_charged`, or `tax_zone_not_found`.
            tax_identifier:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated tax identifier ID.
                - $ref: '#/components/schemas/tax_identifier_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated tax identifier object.
            total_amount:
              type: integer
              description: Total of all line items after discounts and taxes are applied.
            total_savings_amount:
              type: integer
              description: >-
                The total amount in cents that was saved on this checkout taking
                into account all negative fees, discounts, and all price
                `scratch_amount` values.
            trial_amount:
              type: integer
              description: >-
                The total amount in cents that is removed from this checkout due
                to trial periods.
            upsells_expire_at:
              type: integer
              nullable: true
              description: >-
                The time at which upsells will expire for this checkout.
                Measured in seconds since the Unix epoch.
            upsell_funnel:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated upsell funnel ID.
                - $ref: '#/components/schemas/upsell_funnel_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated upsell funnel object.
        - $ref: '#/components/schemas/model_timestamps'
    payment_intent_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/payment_intent_full_base'
        - properties:
            checkout:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. This value will
                match the `Account` currency.
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            external_intent_id:
              type: string
              description: >-
                The external ID necessary to capture payment through this
                processor. For example, if processing through Stripe, the
                `external_intent_id` will be set to the `Stripe::PaymentIntent`
                ID.
            off_session:
              type: boolean
              description: >-
                Set to true to indicate that the customer is not in the checkout
                flow during the payment attempt. When `off_session=true` payment
                collection will be attempted immediately.
            payment_method:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment method ID.
                - $ref: '#/components/schemas/payment_method_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment method object.
            platform_fee:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated platform fee ID.
                - $ref: 1b607271-aa60-4068-b093-9d4b0f6b938e
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated platform fee object.
            processor_data:
              type: object
              description: >-
                All of the additional data necessary to capture payment with
                this processor.
            reusable:
              type: boolean
              description: >-
                Whether or not the payment method that is generated from this
                payment intent should be reusable or not.
            service_fee:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated service fee ID.
                - $ref: 4f59365e-4abf-41c0-9842-1e22d51764de
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated service fee object.
            status:
              type: string
              description: >-
                The status of this payment intent, one of `pending`, `canceled`,
                `failed`, `processing`, `requires_action`, `requires_capture`,
                or `succeeded`.
        - $ref: '#/components/schemas/model_timestamps'
    payment_method_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            external_payment_method_id:
              type: string
              description: The external processor ID representing this payment method.
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this charge is in live mode, and set to `false`
                if it is in test mode.
            processor_type:
              type: string
              description: >-
                The specific type of processor. The only allowed processors
                right now are `stripe` and `paypal`.
            reusable:
              type: boolean
              description: >-
                Whether or not this payment method can be reused. Only reusable
                payment methods can be attached to subscriptions and set as a
                customer's default.
            supported_currencies:
              type: array
              nullable: true
              description: >-
                A list of currencies that this payment method supports. If
                `null`, this payment method supports all currencies.
            type:
              type: string
              description: >-
                The type of payment method. One of `bank_account, `card`,
                `payment_instrument`, or `paypal_account`.
            bank_account:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated bank account ID.
                - $ref: 3a02baa8-c8a0-4f9b-ae06-ba7322ba7bbc
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated bank account object.
            card:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated card ID.
                - $ref: '#/components/schemas/card_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated card object.
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            payment_instrument:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payment instrument ID.
                - $ref: 3ca6c5b6-33d7-4e0e-85f3-f7b39dc7267e
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payment instrument object.
            paypal_account:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated paypal account ID.
                - $ref: 4c2133ea-a4b6-4830-b98d-052ea7864159
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated paypal account object.
        - $ref: '#/components/schemas/model_timestamps'
    customer_base:
      properties:
        affiliation_expires_at:
          type: integer
          nullable: true
          description: Time at which the affiliation will expire.
        billing_matches_shipping:
          type: boolean
          description: >-
            If set to `true` the shipping address will be used for the billing
            address.
        email:
          type: string
          description: The customer’s email address.
        first_name:
          type: string
          nullable: true
          description: The customer’s first name.
        live_mode:
          type: boolean
          description: >-
            Set to `true` if this customer is in live mode, and set to `false`
            if it is in test mode.
        last_name:
          type: string
          nullable: true
          description: The customer’s last name.
        name:
          type: string
          nullable: true
          description: >-
            The customer’s full name or business name. If set, this will take
            precedence over the separate `first_name` and `last_name`
            attributes.
        phone:
          type: string
          nullable: true
          description: The customer’s phone number.
        tax_enabled:
          type: boolean
          description: >-
            Whether or not tax should be calculated for checkouts associated
            with this customer.
        unsubscribed:
          type: boolean
          description: >-
            Set to `true` if this customer has unsubscribed from from opt-in
            emails (i.e. abandoned cart emails).
    affiliation_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            active:
              type: boolean
              description: Whether or not the affiliate is active.
            affiliation_products:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated affiliation product objects.
            commission_structure:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated commission structure ID.
                - $ref: c69d29d7-b66d-49d7-91ce-97fa1a883c98
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated commission structure object.
            portal_url:
              type: string
              nullable: true
              description: >-
                A URL that will redirect to this affiliation's correct portal
                page (hosted or external).
            referral_url:
              type: string
              description: >-
                The referral URL with the affiliate's code appended as a query
                parameter.
            total_commission_amount:
              type: integer
              description: The total commission amount earned by the affiliate.
            total_not_paid_commission_amount:
              type: integer
              description: >-
                The total commission amount earned by the affiliate that has not
                been paid out yet.
            clicks:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated click objects.
            referrals:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated referral objects.
            payouts:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated payout objects.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    address_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/address_body'
        - properties:
            formatted_string:
              type: string
              description: A formatted string representation of the address.
        - $ref: '#/components/schemas/model_timestamps'
    tax_identifier_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/tax_identifier_body'
        - properties:
            eu_vat_verified:
              type: boolean
              description: >-
                Whether or not this a verified EU VAT number based on regex
                validation and an attempted VIES check.
        - $ref: '#/components/schemas/model_timestamps'
    return_request_base:
      allOf:
        - $ref: '#/components/schemas/model_metadata'
    order_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            checkout:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
            fulfillment_status:
              type: string
              description: >-
                The overall fulfillment status of this order based on all
                fulfillments – one of `fulfilled`, `partially_fulfilled`, or
                `unfulfilled`.
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this order is in live mode, and set to `false`
                if it is in test mode.
            number:
              type: string
              description: >-
                The unique identifier for this order that is auto generated
                based on this account's order protocol.
            order_type:
              type: string
              description: One of either `checkout` or `subscription`.
            portal_url:
              type: string
              nullable: true
              description: >-
                A URL that will redirect to this order's correct portal page
                (hosted or external).
            return_status:
              type: string
              description: >-
                The overall return status of this order based on all return
                requests – one of `not_returned`, `partially_returned`,
                `return_request_open`, or `returned`.
            shipment_status:
              type: string
              description: >-
                The overall shipment status of this order based on all
                fulfillments – one of `unshippable`, `unshipped`,
                `partially_shipped`, `label_purchased`, `shipped`, `in_transit`,
                or `delivered`.
            statement_url:
              type: string
              nullable: true
              description: >-
                The link to view and download the "invoice" or "receipt"
                statement of this order.
            status:
              type: string
              description: >-
                The current status of this order, which can be one of `draft`,
                `paid`, `payment_failed`, `processing`, or `void`.
            fulfillments:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated fulfillment objects.
        - $ref: '#/components/schemas/model_timestamps'
    checkout_base:
      allOf:
        - properties:
            abandoned_checkout_enabled:
              type: boolean
              nullable: true
              description: >-
                If set to `true` abandonded checkout reminder emails will be
                sent to the customer.
            billing_matches_shipping:
              type: boolean
              description: >-
                If set to `true` the shipping address will be used for the
                billing address.
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. This value will
                match the `Account` currency.
            email:
              type: string
              nullable: true
              description: >-
                The email of the customer. If customers exists with this email,
                the most recently active/updated customer will be associated. If
                no customers exist with this email, a new customer will be
                created. If a `customer_id` is also passed then this will take
                precedence and the customer will not be looked up by email.
            external_url:
              type: string
              nullable: true
              description: >-
                If set, this URL will be used whenever redirecting to the
                external checkout portal. If not set, the default `external_url`
                from the `CheckoutPortalProtocol` will be used.
            first_name:
              type: string
              nullable: true
              description: The customer’s first name.
            ip_address:
              type: string
              nullable: true
              description: The IP address of the customer for this checkout.
            group_key:
              type: string
              nullable: true
              description: >-
                A key used to retrieve groups of checkouts dynamically from a
                static string.
            last_name:
              type: string
              nullable: true
              description: The customer’s last name.
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this checkout is in live mode, and set to
                `false` if it is in test mode.
            name:
              type: string
              nullable: true
              description: >-
                The customer’s full name or business name. If set, this will
                take precedence over the separate `first_name` and `last_name`
                attributes.
            tax_behavior:
              type: string
              description: >-
                The tax behavior for this checkout. One of `exclusive` or
                `inclusive`.
            tax_enabled:
              type: boolean
              description: >-
                Whether or not tax is enabled for this checkout. This will
                default to the account's `tax_protocol.tax_enabled` value when
                the checkout is created.
        - $ref: '#/components/schemas/model_metadata'
    upsell_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/upsell_base'
        - properties:
            price:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated price ID.
                - $ref: '#/components/schemas/price_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated price object.
            upsell_funnel:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated upsell funnel ID.
                - $ref: '#/components/schemas/upsell_funnel_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated upsell funnel object.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    discount_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            discount_amount:
              type: integer
              description: The total discount amount applied to the associated checkout.
            primary:
              type: boolean
              description: >-
                Whether or not this discount is a primary or secondary discount.
                Primary discounts are the first discount in a series of
                discounts when the associated coupon can be used multiple times.
                Secondary discounts are the subsequent discounts in the series.
            redeemable_status:
              type: string
              description: >-
                The status indicating if this discount can be redeemed
                (finalized with) or not and why. Possible values are `invalid`,
                `gone`, `expired`, `less_than_min_subtotal_amount`,
                greater_than_max_subtotal_amount`, `not_applicable`,
                `not_applicable_to_customer`, or `redeemable`.
            used_up:
              type: boolean
              description: >-
                Whether or not this discount has been used up. If not used up,
                this discount will create secondary discounts on future
                checkouts.
            checkout:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
            coupon:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated coupon ID.
                - $ref: '#/components/schemas/coupon_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated coupon object.
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            primary_discount:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated discount ID.
                - $ref: '#/components/schemas/discount_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated discount object.
            promotion:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated promotion ID.
                - $ref: '#/components/schemas/promotion_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated promotion object.
            secondary_discounts:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated discount objects.
        - $ref: '#/components/schemas/model_timestamps'
    invoice_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/invoice_body'
        - properties:
            notification_sent_at:
              type: integer
              nullable: true
              description: >-
                The time at which the invoice notification was sent. Measured in
                seconds since the Unix epoch.
            order_number:
              type: string
              nullable: true
              description: The order number associated with this invoice.
            portal_url:
              type: string
              nullable: true
              description: >-
                A URL that will redirect to this invoice's correct portal page
                (hosted or external).
            reminder_notification_sent_at:
              type: integer
              nullable: true
              description: >-
                The time at which the reminder notification was sent. Measured
                in seconds since the Unix epoch.
            status:
              type: string
              description: >-
                The current status of this invoice, which can be one of `draft`,
                `open`, `paid` or void.
            checkout:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
        - $ref: '#/components/schemas/model_timestamps'
    click_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            anonymous_id:
              type: string
              description: >-
                The anonymous ID used for identifying a customer across multiple
                clicks.
            converted:
              type: boolean
              description: Whether or not this click is associated with any referrals.
            domain:
              type: string
              description: The domain of the click.
            expires_at:
              type: integer
              description: >-
                Time at which the click expires. Measured in seconds since the
                Unix epoch.
            referrer:
              type: string
              nullable: true
              description: The referring URL that the customer came from.
            url:
              type: string
              description: The URL where the click was tracked.
            affiliation:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated affiliation ID.
                - $ref: '#/components/schemas/affiliation_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated affiliation object.
            previous_click:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated click ID.
                - $ref: '#/components/schemas/click_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated click object.
        - $ref: '#/components/schemas/model_timestamps'
    manual_payment_method_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/manual_payment_method_body'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    referral_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/referral_base'
        - properties:
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. If not set, this
                value will fallback to the default `Account` currency.
            manual:
              type: boolean
              description: >-
                Whether or not this referral was created manually or
                automatically from a tracked click associated with a checkout.
            status:
              type: string
              description: >-
                The status of the referral – one of `approved`, `canceled`,
                `denied`, `paid`, or `reviewing`.
            refund_reduction_amount:
              type: integer
              description: >-
                The amount in cents that is reduced from the original commission
                amount due to refunds.
            affiliation:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated affiliation ID.
                - $ref: '#/components/schemas/affiliation_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated affiliation object.
            attributed_click:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated click ID.
                - $ref: '#/components/schemas/click_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated click object.
            checkout:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated checkout ID.
                - $ref: '#/components/schemas/checkout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated checkout object.
            payout:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payout ID.
                - $ref: '#/components/schemas/payout_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payout object.
            referral_items:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated referral item objects.
        - $ref: '#/components/schemas/model_timestamps'
    upsell_funnel_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/upsell_funnel_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            upsells:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated upsell objects.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    payment_intent_full_base:
      allOf:
        - $ref: '#/components/schemas/payment_intent_base'
        - properties:
            live_mode:
              type: boolean
              description: >-
                Set to `true` if this checkout is in live mode, and set to
                `false` if it is in test mode.
            processor_type:
              type: string
              description: >-
                The processor being used for this checkout. The only allowed
                processors right now are `stripe` and `paypal`.
    card_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            brand:
              type: string
              description: >-
                The brand of the card, which can be `amex`, `diners`,
                `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or
                `unknown`.
            exp_month:
              type: integer
              description: Two-digit number representing the card’s expiration month.
            exp_year:
              type: integer
              description: Four-digit number representing the card’s expiration year.
            last4:
              type: string
              description: The last four digits of the card.
            wallet_type:
              type: string
              nullable: true
              description: >-
                If this card is part of a card wallet, this will be set to the
                type of wallet. The current types are `amex_express_checkout`,
                `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, or
                `visa_checkout`.
        - $ref: '#/components/schemas/model_timestamps'
    model_discarded_timestamp:
      properties:
        discarded_at:
          type: integer
          nullable: true
          description: >-
            Time at which the object was discarded. Measured in seconds since
            the Unix epoch.
    address_body:
      properties:
        city:
          type: string
          description: City, district, suburb, town, or village.
        country:
          type: string
          description: >-
            The two-letter code of the country - ISO 3166-1. (Reference the
            Atlas API for all available codes.)
        line_1:
          type: string
          description: Address line 1 (e.g., street, PO Box, or company name).
        line_2:
          type: string
          nullable: true
          description: Address line 2 (e.g., apartment, suite, unit, or building).
        name:
          type: string
          description: >-
            The full name or business name for this address. (If empty, this
            will fallback to the customer's name.)
        postal_code:
          type: string
          description: ZIP or postal code.
        state:
          type: string
          description: >-
            The code of the state - ISO 3166-2. (Reference the Atlas API for all
            available codes.)
    tax_identifier_body:
      properties:
        number:
          type: string
          nullable: true
          description: The tax ID number.
        number_type:
          type: string
          description: The type of tax ID number.
    upsell_base:
      allOf:
        - properties:
            amount_off:
              type: integer
              nullable: true
              description: >-
                Amount (in the `currency` of the price) that will be taken off
                line items associated with this upsell.
            duplicate_purchase_behavior:
              type: string
              description: >-
                How to handle duplicate purchases of the product – can be one of
                `allow`, `block_within_checkout`, or `block`.
            fee_description:
              type: string
              description: >-
                The description for this upsell which will be visible to
                customers.
            percent_off:
              type: number
              nullable: true
              description: >-
                Percent that will be taken off line items associated with this
                upsell.
            replacement_behavior:
              type: string
              description: >
                Whether or not to replace line items in the associated checkout.
                Replacement occurs when a line item is upsold. Possible values
                include:

                - `none` (default): No line items will be replaced.

                - `all`: All line items will be replaced.
            step:
              type: string
              description: >-
                Where this upsell falls in position within the upsell funnel –
                can be one of `initial`, `accepted`, or `declined`.
        - $ref: '#/components/schemas/model_metadata'
    price_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/price_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. This value will
                match the `Account` currency.
            full_amount:
              type: integer
              description: >-
                The full amount to be charged across all periods, represented as
                a whole integer. For prices without a `recurring_period_count`
                defined this is the same as `amount`. For finite prices, this is
                equal to `amount` * `recurring_period_count`. For example, a
                price that has an amount of $25 and is set to recur over 4
                periods, will have a `full_amount` of $100.
            current_version:
              type: boolean
              description: >-
                Whether or not this object represents the current version of
                this price. (This will be `false` if the association was created
                to this price before it was altered. In this case, we will
                lookup the version of the price at the time it was associated.)
            current_swap:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The current swap for this price.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated swap ID.
                - $ref: '#/components/schemas/swap_response'
                  description: >-
                    The current swap for this price.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated swap object.
            product:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated product ID.
                - $ref: '#/components/schemas/product_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated product object.
            renewal_price:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    If present, subscriptions will be updated to this price when
                    they renew.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated price ID.
                - $ref: '#/components/schemas/price_response'
                  description: >-
                    If present, subscriptions will be updated to this price when
                    they renew.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated price object.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    coupon_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/coupon_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. This value will
                match the `Account` currency.
            discounts:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated discount objects.
            expired:
              type: boolean
              description: >-
                Taking into account the above properties, whether this coupon
                can still be applied to a checkout.
            promotions:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated promotion objects.
            times_redeemed:
              type: integer
              description: >-
                Number of times this coupon has been applied to a checkout
                and/or subscription.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    promotion_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/promotion_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            affiliation:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated affiliation ID.
                - $ref: '#/components/schemas/affiliation_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated affiliation object.
            coupon:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated coupon ID.
                - $ref: '#/components/schemas/coupon_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated coupon object.
            customer:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated customer ID.
                - $ref: '#/components/schemas/customer_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated customer object.
            discounts:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated discount objects.
            expired:
              type: boolean
              description: >-
                Taking into account the above properties, whether this promotion
                can still be used.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    invoice_body:
      allOf:
        - properties:
            automatic_collection:
              type: boolean
              description: >-
                Whether or not the invoice should be paid automatically using
                one of the customer's payment methods. The specific payment
                method will need to passed to the `/open` endpoint.
            due_date:
              type: integer
              nullable: true
              description: >-
                The date on which payment for this invoice is due. Measured in
                seconds since the Unix epoch.
            footer:
              type: string
              nullable: true
              description: Additional footer text to be displayed on the invoice.
            issue_date:
              type: integer
              nullable: true
              description: >-
                The date on which the invoice was issued. Measured in seconds
                since the Unix epoch.
            live_mode:
              type: boolean
              description: Whether or not the invoice is in live mode.
            memo:
              type: string
              nullable: true
              description: Additional memo text to be displayed on the invoice.
            notifications_enabled:
              type: boolean
              description: >-
                Whether or not notifications should be sent to customers when an
                invoice is opened and when it reaches its due date.
        - $ref: '#/components/schemas/model_metadata'
    manual_payment_method_body:
      properties:
        archived:
          type: boolean
          description: Whether or not this manual payment method is archived.
        description:
          type: string
          nullable: true
          description: >-
            The description of this payment method that will be shown in the
            checkout.
        instructions:
          type: string
          nullable: true
          description: >-
            The instructions that you want your customers to follow to pay for
            an order. These instructions are shown on the confirmation page
            after a customer completes the checkout.
        name:
          type: string
          description: The name of this manual payment method.
        reuseable:
          type: boolean
          decription: Whether or not this manual payment method can be reused.
    referral_base:
      properties:
        commission_amount:
          type: integer
          description: >-
            The amount in cents that will be paid out to the affiliate for this
            referral.
        description:
          type: string
          nullable: true
          description: A brief description of what this referral is for.
        live_mode:
          type: boolean
          description: >-
            Set to `true` if this referral is in live mode, and set to `false`
            if it is in test mode.
    payout_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/payout_base'
        - properties:
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. If not set, this
                value will fallback to the default `Account` currency.
            status:
              type: string
              description: The status of the payout – one of `completed` or `processing`.
            affiliation:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated affiliation ID.
                - $ref: '#/components/schemas/affiliation_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated affiliation object.
            payout_group:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated payout group ID.
                - $ref: '#/components/schemas/payout_group_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated payout group object.
            payout_email:
              type: string
              nullable: true
              description: The affiliate's payout email address.
            referrals:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated referral objects.
        - $ref: '#/components/schemas/model_timestamps'
    upsell_funnel_base:
      allOf:
        - properties:
            archived:
              type: boolean
              description: Whether or not this upsell funnel is archived.
            enabled:
              type: boolean
              description: Whether or not this upsell funnel is enabled.
            filter_match_type:
              type: string
              nullable: true
              description: >-
                The matching strategy to use when filtering upsell funnels – can
                be `null` or one of `all`, `any`, `none`. If `null`, the upsell
                funnel will not be filtered and will be applicable to all
                checkouts.
            filter_price_ids:
              type: array
              description: The prices to filter this upsell funnel by.
            filter_product_ids:
              type: array
              description: The products to filter this upsell funnel by.
            name:
              type: string
              nullable: true
              description: A name for this upsell that will be visible to customers.
            priority:
              type: integer
              description: >-
                The priority of this upsell in relation to other upsells. Must
                be in the range of `1` - `5` with `5` being the highest priority
                and `1` being the lowest.
        - $ref: '#/components/schemas/model_metadata'
    payment_intent_base:
      properties:
        amount:
          type: integer
          description: The amount intended to be collected by this payment intent.
        payment_method_type:
          type: string
          description: >-
            The payment method type to use for this payment intent. This is only
            applicable for `mollie` processors.
        return_url:
          type: string
          description: >-
            The URL the customer will be redirected to after the payment
            process. This is only applicable for `mollie` processors.
    price_base:
      allOf:
        - properties:
            ad_hoc:
              type: boolean
              default: false
              description: >-
                Whether or not this price accepts ad hoc amounts – also known as
                custom or user-defined amounts.
            ad_hoc_max_amount:
              type: integer
              nullable: true
              description: >-
                The maximum ad hoc amount in cents to be allowed, represented as
                a whole integer. For example `9900` is equivalent to `$99`.
            ad_hoc_min_amount:
              type: integer
              nullable: true
              description: >-
                The minimum ad hoc amount in cents to be allowed, represented as
                a whole integer. For example `9900` is equivalent to `$99`. If
                left blank, this will be interpreted as `0`.
            amount:
              type: integer
              nullable: true
              description: >-
                The amount in cents to be charged, represented as a whole
                integer. For example `9900` is equivalent to `$99`. If
                `ad_hoc=true` the `amount` is optional.
            archived:
              type: boolean
              description: Whether or not this price is archived.
            license_activation_limit:
              type: integer
              nullable: true
              description: >-
                The max number of activations allowed per license. If `null`,
                this value will inherit from the value set on `Product`.
            name:
              type: string
              nullable: true
              description: The price name, meant to be displayable to the customer.
            portal_subscription_update_enabled:
              type: boolean
              description: >-
                Whether existing subscriptions can be switched to this price
                from the customer dashboard. If set to false, existing
                subscriptions cannot be switched to this price, preventing
                customers from upgrading or downgrading their subscription to
                this price option.
            position:
              type: integer
              nullable: true
              description: The ordering position of this price when displayed to customers.
            recurring_interval:
              type: string
              nullable: true
              description: >-
                The frequency at which a subscription is billed. One of `day`,
                `week`, `month`, or `year`. Only applicable during creation.
            recurring_interval_count:
              type: integer
              nullable: true
              description: >-
                The number of intervals (specified in the `recurring_interval`
                attribute) between subscription billings. For example,
                `recurring_interval=month` and `recurring_interval_count=3`
                bills every 3 months. The total duration of a billing cycle is
                not allowed to exceed 1 year. Only applicable during creation.
            recurring_period_count:
              type: integer
              nullable: true
              description: >-
                The number of periods a subscription with this price will renew
                for. After this amount of periods, the subscription will move to
                the `complete` state. Only applicable during creation.
            revoke_after_days:
              type: integer
              nullable: true
              description: >-
                The number of days after which the purchase associated with this
                price will be automatically revoked. This can be used to create
                time-limited access for a one-time or finite recurring price.
            revoke_purchases_on_completed:
              type: boolean
              description: >-
                Whether or not purchases for this price should be revoked when
                subscriptions transition to the `complete` state.
            restart_subscription_on_completed:
              type: boolean
              description: >-
                Whether installment subscriptions using this price should be
                automatically restarted when they reach the completed state.
            setup_fee_amount:
              type: integer
              nullable: true
              description: >-
                The amount in cents to be charged as a setup fee on the first
                billing period of a recurring price.
            setup_fee_enabled:
              type: boolean
              description: Whether or not this price has a setup fee.
            setup_fee_name:
              type: string
              nullable: true
              description: >-
                The name that will display for the setup fee on the first
                billing period.
            setup_fee_trial_enabled:
              type: boolean
              description: >-
                Whether or not the setup fee should be deferred until the trial
                period ends. If set to true, the setup fee will not be charged
                until the trial period ends.
            scratch_amount:
              type: integer
              nullable: true
              description: >-
                The amount in cents that should be shown as the original amount
                before any price reductions, also known as the pre-sale price.
            trial_duration_days:
              type: integer
              nullable: true
              description: >-
                The default number of trial days when subscribing a customer to
                this price.
        - $ref: '#/components/schemas/model_metadata'
    swap_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/swap_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            price:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated price ID.
                - $ref: '#/components/schemas/price_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated price object.
            swap_price:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated price ID.
                - $ref: '#/components/schemas/price_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated price object.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    product_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/product_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            available_stock:
              type: integer
              description: >-
                The total amount of stock available for purchase. This is the
                total `stock` on hand minus `held_stock`.
            average_stars:
              type: string
              description: The average stars for this product based on published reviews.
            bundle_items:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated bundle item objects.
            commission_structure:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated commission structure ID.
                - $ref: c69d29d7-b66d-49d7-91ce-97fa1a883c98
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated commission structure object.
            current_release_download:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated download ID.
                - $ref: '#/components/schemas/download_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated download object.
            held_stock:
              type: integer
              description: The total amount of stock being held by unfulfilled line items.
            metrics:
              type: object
              properties:
                currency:
                  type: string
                  description: >-
                    The currency that was used to calculate these metrics. This
                    will always be set to the account's currency.
                max_price_amount:
                  type: integer
                  nullable: true
                  description: >-
                    The maximum `amount` among this product's prices (including
                    variant price overrides).
                min_price_amount:
                  type: integer
                  nullable: true
                  description: >-
                    The minimum `amount` among this product's prices (including
                    variant price overrides).
                prices_count:
                  type: integer
                  nullable: true
                  description: The total number of prices that belong to this product.
            downloads:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated download objects.
            reviews_breakdown:
              type: object
              description: A histogram breakdown of the reviews for this product.
            featured_product_media:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    The featured (first) product media.


                    [Expandable](/api-reference/expanding-responses) – The
                    associated product media ID.
                - $ref: '#/components/schemas/product_media_response'
                  description: >-
                    The featured (first) product media.


                    [Expanded](/api-reference/expanding-responses) – The
                    associated product media object.
            prices:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated price objects.
            product_collections:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated product collection objects.
            product_group:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated product group ID.
                - $ref: '#/components/schemas/product_group_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated product group object.
            product_medias:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated product media objects.
            shipping_profile:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated shipping profile ID.
                - $ref: '#/components/schemas/shipping_profile_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated shipping profile object.
            stock:
              type: integer
              description: The total amount of stock on hand for this variant.
            reviews:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated review objects.
            variant_options:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated variant option objects.
            variants:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated variant objects.
        - $ref: '#/components/schemas/model_discarded_timestamp'
        - $ref: '#/components/schemas/model_timestamps'
    coupon_base:
      allOf:
        - properties:
            archived:
              type: boolean
              description: Whether or not this coupon is archived.
            amount_off:
              type: integer
              nullable: true
              description: >-
                Amount (in the `currency` specified) that will be taken off the
                subtotal of any checkout.
            duration:
              type: string
              description: >-
                One of `forever`, `once`, and `repeating`. Describes how long a
                discount with this coupon will be applied. (The `repeating` and
                `forever` values only apply to subscriptions.)
              default: once
            duration_in_months:
              type: integer
              nullable: true
              description: >-
                If `duration` is `repeating`, the number of months the coupon
                applies. Null if coupon `duration` is `forever` or `once`.
            max_redemptions:
              type: integer
              nullable: true
              description: >-
                Maximum number of times this coupon can be redeemed in total
                across all customers.
            max_redemptions_per_customer:
              type: integer
              nullable: true
              description: >-
                Maximum number of times this coupon can be redeemed per
                customer.
            max_subtotal_amount:
              type: integer
              nullable: true
              description: >-
                The maximum `subtotal_amount` that is allowed for the coupon to
                be applicable to a checkout or subscription.
            min_subtotal_amount:
              type: integer
              nullable: true
              description: >-
                The minimum `subtotal_amount` that is required for the coupon to
                be applicable to a checkout or subscription.
            name:
              type: string
              description: Name of the coupon displayed to customers.
            percent_off:
              type: number
              nullable: true
              description: >-
                Percent that will be taken off the subtotal of any checkout. For
                example, a coupon with percent_off of `50` will make a $100
                checkout $50 instead.
            product_ids:
              type: array
              description: An array of product IDs that this coupon applies to.
            redeem_by:
              type: integer
              nullable: true
              description: Date after which the coupon can no longer be redeemed.
        - $ref: '#/components/schemas/model_metadata'
    promotion_base:
      allOf:
        - properties:
            archived:
              type: boolean
              description: Whether or not this promotion is archived.
            code:
              type: string
              description: >-
                The customer-facing code. Regardless of case, this code must be
                unique across all promotion codes on your account. If left
                blank, we will generate one automatically.
            expired:
              type: boolean
              description: Whether or not this promotion has expired.
            max_redemptions:
              type: integer
              nullable: true
              description: >-
                Maximum number of times this coupon can be redeemed in total
                across all customers.
            redeem_by:
              type: integer
              nullable: true
              description: Date after which the coupon can no longer be redeemed.
        - $ref: '#/components/schemas/model_metadata'
    payout_base:
      properties:
        description:
          type: string
          nullable: true
          description: An optional brief description of what this payout is for.
        end_date:
          type: integer
          description: >-
            All approved referrals through this day will be included in the
            payout.
        live_mode:
          type: boolean
          description: >-
            Set to `true` if this payout is in live mode, and set to `false` if
            it is in test mode.
        manual:
          type: boolean
          description: >-
            Whether or not this payout was created manually or automatically
            from approved referrals.
        total_commission_amount:
          type: integer
          description: >-
            The amount in cents that will be paid out to the affiliate. For
            manual payouts, this is set directly. For automatic payouts, this is
            calculated from the sum of approved referrals.
    payout_group_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/payout_group_body'
        - properties:
            currency:
              type: string
              description: The currency of the payout group.
            payouts:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated payout objects.
        - $ref: '#/components/schemas/model_timestamps'
    swap_base:
      allOf:
        - properties:
            archived:
              type: boolean
              description: Whether or not this swap is archived.
            description:
              type: string
              nullable: true
              description: >-
                A description of this swap. This text will be visibile to
                customers in the checkout summary when offered the swap.
        - $ref: '#/components/schemas/model_metadata'
    product_base:
      allOf:
        - properties:
            allow_out_of_stock_purchases:
              type: boolean
              description: >-
                Whether or not to allow purchases of this product when stock
                runs out. If true, the stock levels for this can go below zero.
            archived:
              type: boolean
              description: Whether or not this product is archived.
            auto_fulfill_enabled:
              type: boolean
              description: >-
                Whether or not this product should be auto fulfilled when it is
                purchased. This can only be `true` when `shipping_enabled` is
                `false`.
            cataloged_at:
              type: integer
              description: >-
                The time when the product was added or made available. This
                value is used for sorting products on shop pages.
            description:
              type: string
              nullable: true
              description: >-
                The product description, meant to be displayable to the
                customer.
            dimensions:
              type: object
              nullable: true
              description: >-
                The physical dimensions of this product for shipping
                calculations.
              properties:
                length:
                  type: number
                  description: The length dimension.
                width:
                  type: number
                  description: The width dimension.
                height:
                  type: number
                  description: The height dimension.
                unit:
                  type: string
                  description: >-
                    The unit of measurement – one of `cm`, `mm`, `m`, `in`,
                    `ft`.
            featured:
              type: boolean
              description: Whether or not this product is featured.
            licensing_enabled:
              type: boolean
              description: Whether or not licensing is enabled for this product.
            license_activation_limit:
              type: integer
              nullable: true
              description: >-
                The max number of activations allowed per license. If `null`,
                then unlimited license activations are allowed. (The activation
                limit can also be set on `Price` which will override this
                value.)
            name:
              type: string
              description: The product name, meant to be displayable to the customer.
            purchase_limit:
              type: integer
              nullable: true
              description: >-
                The max number of times the product can be purchased by a
                customer. If `null`, then unlimited purchases are allowed.
            recurring:
              type: boolean
              default: false
              description: >-
                Whether the product is for a one-time purchase or a recurring
                (subscription) purchase.
            reviews_enabled:
              type: boolean
              description: Whether or not reviews are enabled for this product.
            shipping_enabled:
              type: boolean
              description: >-
                If set to `true` checkouts with this product will require a full
                shipping address.
            sku:
              type: string
              nullable: true
              description: >-
                The stock keeping unit for this product. If the `Product` has
                variants, each variant has a specific `sku`.
            status:
              type: string
              description: The status of this product – one of `draft` or `published`.
            slug:
              type: string
              description: >-
                A unique and URL friendly string that represents this product.
                (This will be auto-generated when a product is created if not
                explicitly set.)
            solicit_reviews:
              type: boolean
              description: >-
                Whether or not to solicit reviews for this product with
                automatic emails to customers.
            stock_enabled:
              type: boolean
              description: Whether or not stock will be tracked for this product.
            tax_category:
              type: string
              nullable: true
              description: >-
                The tax category/code that matches this product – one of
                `digital`, `tangible`, `service`, or `saas`.
            tax_enabled:
              type: boolean
              description: If set to `true` this product is considered taxable.
            weight:
              type: number
              description: The product weight, meant to be displayable to the customer.
            weight_unit:
              type: string
              description: The weight unit for this product – one of `lb`, `oz`, `kg`, `g`.
        - $ref: '#/components/schemas/model_metadata'
    download_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/download_base'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            media:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated media ID.
                - $ref: '#/components/schemas/media_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated media object.
            product:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated product ID.
                - $ref: '#/components/schemas/product_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated product object.
            variant:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated variant ID.
                - $ref: '#/components/schemas/variant_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated variant object.
        - $ref: '#/components/schemas/model_timestamps'
    product_media_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/product_media_base'
        - properties:
            media:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated media ID.
                - $ref: '#/components/schemas/media_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated media object.
            product:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated product ID.
                - $ref: '#/components/schemas/product_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated product object.
        - $ref: '#/components/schemas/model_timestamps'
    product_group_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/product_group_body'
        - properties:
            archived_at:
              type: integer
              nullable: true
              description: >-
                Time at which the object was archived. Measured in seconds since
                the Unix epoch.
            products:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated product objects.
        - $ref: '#/components/schemas/model_timestamps'
    shipping_profile_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/shipping_profile_base'
        - properties:
            default:
              type: boolean
              description: >-
                Whether or not this shipping profile is the default for the
                account.
            fallback_shipping_zone:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated shipping zone ID.
                - $ref: '#/components/schemas/shipping_zone_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated shipping zone object.
            products:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated product objects.
            shipping_zones:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated shipping zone objects.
        - $ref: '#/components/schemas/model_timestamps'
    payout_group_body:
      properties:
        end_date:
          type: integer
          description: >-
            All approved referrals through this day will be included in the
            payout.
        live_mode:
          type: boolean
          description: >-
            Set to `true` if this payout group is in live mode, and set to
            `false` if it is in test mode.
        min_commission_amount:
          type: integer
          nullable: true
          description: >-
            The minimum amount of commission that must be earned before a payout
            is generated for an affiliate.
    download_base:
      properties:
        alt:
          type: string
          nullable: true
          description: The HTML alt attribute for the download.
        archived:
          type: boolean
          description: Whether or not this download is archived.
        name:
          type: string
          nullable: true
          description: >-
            The name of this download which will be visible to customers. This
            is required if a `url` is used instead of attaching a `Media`
            record.
        title:
          type: string
          nullable: true
          description: The HTML title attribute for the download.
        url:
          type: string
          nullable: true
          description: >-
            Instead of attaching a `Media` record a public URL can be set. If
            set, customers will be directed to this URL.
    media_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - properties:
            byte_size:
              type: integer
              description: The size of the media in bytes.
            content_type:
              type: string
              description: The content type (i.e. image/png, image/jpg, application/pdf).
            extension:
              type: string
              description: The extension (i.e. png, jpg, pdf).
            filename:
              type: string
              description: The full filename with extension.
            height:
              type: string
              nullable: true
              description: If the media is an image, this will be the height in pixels.
            public_access:
              type: boolean
              description: Whether or not this media is publicly accessible.
            release_json:
              type: object
              nullable: true
              description: >-
                The JSON that was extracted from the `release.json` file within
                the ZIP file.
            url:
              type: string
              nullable: true
              description: >-
                The URL for accessing this media. If the media is public, this
                will be a permanent URL. If the media is private, this will be a
                short-lived URL if the media has been exposed.
            url_expires_at:
              type: integer
              nullable: true
              description: >-
                The time at which the URL expires. This will only be present if
                the media is private and has been exposed.
            width:
              type: string
              nullable: true
              description: If the media is an image, this will be the width in pixels.
        - $ref: '#/components/schemas/model_timestamps'
    variant_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/variant_base'
        - properties:
            available_stock:
              type: integer
              description: >-
                The total amount of stock available for purchase. This is the
                total `stock` on hand minus `held_stock`.
            currency:
              type: string
              description: >-
                Three-letter ISO currency code, in lowercase. This is inherited
                from the price.
            current_release_download:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated download ID.
                - $ref: '#/components/schemas/download_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated download object.
            current_version:
              type: boolean
              description: >-
                Whether or not this object represents the current version of
                this variant. (This will be `false` if the association was
                created to this variant before it was altered. In this case, we
                will lookup the version of the variant at the time it was
                associated.)
            held_stock:
              type: integer
              description: The total amount of stock being held by unfulfilled line items.
            image:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated media ID.
                - $ref: '#/components/schemas/media_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated media object.
            option_names:
              type: array
              description: An array of the associated product's variant option names.
            product:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated product ID.
                - $ref: '#/components/schemas/product_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated product object.
            stock:
              type: integer
              description: The total amount of stock on hand for this product.
        - $ref: '#/components/schemas/model_timestamps'
    product_media_base:
      allOf:
        - properties:
            alt:
              type: string
              nullable: true
              description: The HTML alt attribute for the product media.
            position:
              type: integer
              nullable: true
              description: >-
                The ordering position of this product media when displayed to
                customers.
            title:
              type: string
              nullable: true
              description: The HTML title attribute for the product media.
            url:
              type: string
              nullable: true
              description: >-
                Instead of attaching a `Media` record, a public URL can be set.
                If set, this URL will be used to serve the product media asset.
    product_group_body:
      allOf:
        - properties:
            archived:
              type: boolean
              description: Whether or not this product group is archived.
            name:
              type: string
              description: >-
                The product group’s name, meant to be displayable to the
                customer.
            purchase_limit:
              type: integer
              nullable: true
              description: >-
                The max number of times the product group can be purchased by a
                customer. If `null`, then unlimited purchases are allowed.
        - $ref: '#/components/schemas/model_metadata'
    shipping_profile_base:
      allOf:
        - properties:
            name:
              type: string
              description: >-
                A name for this shipping profile that will be visible to
                customers.
        - $ref: '#/components/schemas/model_metadata'
    shipping_zone_response:
      allOf:
        - $ref: '#/components/schemas/model_identifiers'
        - $ref: '#/components/schemas/shipping_zone_base'
        - $ref: '#/components/schemas/model_timestamps'
        - properties:
            shipping_profile:
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – The
                    associated shipping profile ID.
                - $ref: '#/components/schemas/shipping_profile_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – The
                    associated shipping profile object.
            shipping_rates:
              nullable: true
              anyOf:
                - type: string
                  description: >-
                    [Expandable](/api-reference/expanding-responses) – Property
                    not returned unless expanded.
                - $ref: '#/components/schemas/list_response'
                  description: >-
                    [Expanded](/api-reference/expanding-responses) – A list of
                    associated shipping rate objects.
    variant_base:
      allOf:
        - properties:
            amount:
              type: integer
              nullable: true
              description: >-
                The amount in cents to be charged, represented as a whole
                integer for this specific integer. If empty, the regular `Price`
                amount will be used. If the `Product` has multiple prices, then
                this amount will be ignored and the selected `Price` amount will
                be used.
            allow_out_of_stock_purchases:
              type: boolean
              nullable: true
              description: >-
                Whether or not to allow purchases of this variant when stock
                runs out. If true, the stock levels for this variant can go
                below zero. If `null`, inherits from the product.
            auto_fulfill_enabled:
              type: boolean
              nullable: true
              description: >-
                Whether or not this variant should be auto fulfilled when it is
                purchased. This can only be `true` when `shipping_enabled` is
                `false`. If `null`, inherits from the product.
            dimensions:
              type: object
              nullable: true
              description: >-
                The physical dimensions of this variant. If `null`, inherits
                from the product.
              properties:
                length:
                  type: number
                  description: The length dimension.
                width:
                  type: number
                  description: The width dimension.
                height:
                  type: number
                  description: The height dimension.
                unit:
                  type: string
                  description: >-
                    The unit of measurement – one of `cm`, `mm`, `m`, `in`,
                    `ft`.
            downloads_enabled:
              type: boolean
              nullable: true
              description: >-
                Whether or not downloads are enabled for this variant. When
                `false`, downloads will be disabled for this variant. When
                `true`, the downloads that are set for this variant will
                override the product downloads. If no downloads are set, then
                the product downloads will be used.
            license_activation_limit:
              type: integer
              nullable: true
              description: >-
                The max number of activations allowed per license. If `null`,
                inherits from the product or price.
            option_1:
              type: string
              description: The value for the first variant option.
            option_2:
              type: string
              nullable: true
              description: The value for the second variant option.
            option_3:
              type: string
              nullable: true
              description: The value for the third variant option.
            position:
              type: integer
              nullable: true
              description: >-
                The ordering position of this variant when displayed to
                customers.
            purchase_limit:
              type: integer
              nullable: true
              description: >-
                The max number of times this variant can be purchased by a
                customer. If `null`, inherits from the product.
            shipping_enabled:
              type: boolean
              nullable: true
              description: >-
                If set to `true` checkouts with this variant will require a full
                shipping address. If `null`, inherits from the product.
            sku:
              type: string
              nullable: true
              description: The stock keeping unit for this variant.
            stock_enabled:
              type: boolean
              nullable: true
              description: >-
                Whether or not stock will be tracked for this variant. If
                `null`, inherits from the product.
            tax_category:
              type: string
              nullable: true
              description: >-
                The tax category/code that matches this variant. If `null`,
                inherits from the product.
            tax_enabled:
              type: boolean
              nullable: true
              description: >-
                If set to `true`, this variant is considered taxable. If `null`,
                inherits from the product.
            weight:
              type: number
              nullable: true
              description: >-
                The variant weight, meant to be displayable to the customer. If
                `null`, inherits from the product.
            weight_unit:
              type: string
              nullable: true
              description: >-
                The weight unit for this variant. If `null`, inherits from the
                product.
        - $ref: '#/components/schemas/model_metadata'
    shipping_zone_base:
      allOf:
        - properties:
            name:
              type: string
              description: A name for this shipping zone that will be visible to customers.
            postal_codes:
              type: array
              description: >-
                Optional array of postal code patterns to further filter
                addresses within the specified territories. Postal code
                filtering is applied in addition to territory filtering - an
                address must match both a territory and a postal code pattern
                (if provided) to be included in this shipping zone.

                Supports three matching modes:

                1. **Exact match**: Provide the complete postal code as a string
                (e.g., "90210", "SW1A 1AA").

                2. **Range match**: Use three dots ("...") to specify a numeric
                range (e.g., "90210...99000" matches all postal codes from 90210
                to 99000). Only numeric postal codes are supported for ranges.

                3. **Wildcard match**: Use asterisk ("*") for prefix matching
                (e.g., "902*" matches "90210", "90211", "902AB", etc.).

                All postal codes are normalized (uppercased and trimmed) before
                matching. If the array is empty, no postal code filtering is
                applied and all addresses within the territories will match.
              items:
                type: string
            territories:
              type: array
              description: The specific territories that this shipping zone covers.
              items:
                type: object
                properties:
                  country:
                    type: string
                    description: The country associated with the territory.
                  states:
                    type: array
                    description: List of states within the country.
                    items:
                      type: string
        - $ref: '#/components/schemas/model_metadata'
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer

````