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

> ## Agent Instructions
> For new direct REST integrations, use the v2026-04 surfaces. The @fluid-app FairShare SDK continues to use its own published public-v2025-06 contract.
> Authenticate with the header Authorization: Bearer <token>; public storefront read endpoints require no auth.
> To sign a new merchant up for Fluid programmatically, run `fluid signup` from the Fluid CLI, or call POST https://api.fluid.app/api/company with no credentials, as described in /api/agent-signup. Do not automate the signup form or book a demo. Before authenticated calls are possible, the merchant must sign the agent in to the Fluid CLI with the emailed code and --shop set to the company's fluid_shop (which also confirms the signup), or open the emailed confirmation link and give the agent an API token.
> After signup, to launch a merchant's store (back-office sync, payments onboarding, store setup, a theme copied from their current site, and a preview link before billing), follow /api/agent-launch.
> Lists use cursor pagination via the page[cursor] and page[limit] query params; follow meta.pagination.next_cursor until it is null.
> When the same operation exists on more than one surface, use the newest: dated API versions are newer than unversioned ones, and later dates win (v2026-04 > v2025-06 > unversioned v0/v1.1). Fall back to a legacy or unversioned operation only when no newer versioned equivalent exists — the company-v0 notes below list the known superseded operations. The same applies to /api/company/v1 and /api/v1/... paths: prefer a newer documented equivalent, and use one only when none exists (/api/v1.1/... is distinct and documented in company-v0). Use page/per_page offset pagination only on an operation whose spec documents those params — mostly the unversioned company-v0 admin surface, plus some lists on other surfaces, versioned ones included; page every other list with cursors.
> Fluid has three navigation APIs; don't mix them up. Storefront website menus (navigation bars, footers) are /api/menus and nested menu_items, in api-reference/content-v0.yaml (API Reference: Website > Navigation menus), with a how-to in themes/navigation-menus; their list uses flat page/per_page pagination. The Fluid mobile app's navigation is /api/v2/mobile_navigations, in api-reference/mobile-v2.yaml (API Reference: Mobile app > Navigation); its list also uses page/per_page. Portal navigations belong to a portal definition (Fluid OS), in api-reference/fluid-os-v0.yaml (API Reference: Portal > Portal navigation), and each has a platform of web or mobile.
> The OpenAPI specs under api-reference/ are the authoritative contracts; prefer them over prose when in doubt. api-reference/storefront-v2026-04.yaml covers the v2026-04 storefront surface (/api/v202604/... paths); api-reference/checkout-v2026-04.yaml covers the v2026-04 checkout surface (/api/checkout/v2026-04/... paths — carts, cart auth, discounts, items, subscriptions, orders, enrollments, and store config); api-reference/public-v2025-06.yaml covers the Public SDK surface used by the @fluid-app FairShare SDK, including its parallel cart lifecycle, browser integrations, versioned payment callbacks, unversioned public utilities, and the cart price-override operation; api-reference/payment-v2026-04.yaml covers the v2026-04 payment gateway admin surface (/api/payment/v2026-04/... paths, bearer-authenticated — gateway CRUD, gateway purchase/authorize/$0-verify, transaction list/show and capture/void/credit, and merchant payment configuration); api-reference/payments-v2026-04.yaml covers the v2026-04 cart payment surface (/api/payments/v2026-04/carts/{cart_token}/... paths, authenticated by the cart token in the path with no bearer — payment-method selection, VGS card tokenization, 3D Secure verification, and PayPal/Braintree/Klarna/Apple Pay flows); api-reference/commerce-v2026-04.yaml covers the v2026-04 commerce order-editing surface (/api/v202604/orders/{order_id}/edits paths, bearer-authenticated — post-checkout order edits that atomically insert items and add adjustments/discounts, with an optional dry-run preview); api-reference/webhooks-v0.yaml covers the unversioned webhooks surface (/api/... paths — webhook registration, delivery payloads, callback registrations, company events, and webhook/callback schemas); api-reference/company-v0.yaml covers the legacy unversioned company admin surface (/api/... paths, bearer-authenticated except two operations that take no credential, POST /api/company (create a company) and GET /api/agreements/{id} — company settings and management, customers, users, roles, subscription plans, subscription bundles, subscriptions, media, pages, catch-ups, inventory levels, domains, agreements, and admin order actions). company-v0 caveats: it is the legacy v0 admin contract and its lists use flat page/per_page offset pagination, which is expected there despite the general cursor-pagination rule; where an operation exists in both company-v0 and a versioned spec, prefer the versioned spec — the subscriptions lifecycle (list/create/show/update, cancel, pause, reactivate, resume, retry, skip, failed-cycle-waiver, discounts) and subscription bundles are superseded by checkout-v2026-04, and company pages/media CRUD plus the public pages, categories, products, and media list endpoints are superseded by storefront-v2026-04. Subscription plan management (/api/subscription_plans, resource-wrapped {"subscription_plan": {...}} bodies) exists only in company-v0. api-reference/members-v2025-06.yaml covers the v2025-06 unified Member identity surface (/api/v2025-06/members/... paths, bearer-authenticated — member list/create/show/update, lookup by email/username/external_id/legacy_customer_id, member-type assignment, and the sponsor genealogy read). Prefer it over the customers and reps surfaces when the member type matters: /customers does not serialize member_type. api-reference/analytics-v2026-04.yaml covers the v2026-04 Home dashboard analytics surface (/api/v202604/analytics/dashboard/... paths, bearer-authenticated — read-only endpoints for the Home > Overview, Home > Live, and Home > Field tabs, each accepting an optional country ISO alpha-2 query param that scopes aggregations to a single country).
> api-reference/analytics-v0.yaml covers the unversioned analytics surface that backs the fluid-admin Traffic tab (/api/analytics/... and /api/analytics/traffic/... paths, bearer-authenticated — the legacy shares/views/visitors summary plus traffic overview, ranked campaigns, sources, geographies, flows, and per-rep breakdown, all sharing one reporting-period contract).
> Successful responses wrap the resource payload alongside a top-level integer status and a meta object.
> Portal Definition authoring edits and synchronizes the portal JSON resource graph. Widget Package authoring builds either a company-owned or Droplet-owned Remote DOM package. These are separate contracts; do not imply that one defines the other.
> For Widget Package worker code, use only @fluid-app/portal-sdk/widgets/worker. Use only the Portal Definition and Widget Package workflows and public entry points documented here; do not infer support for undocumented surfaces.
> Every portal function and declarative capability used by a widget must appear in that widget's uses array. Use the same typed function value in uses; do not invent capability-name strings.
> Widget styling must use the portal's semantic theme variables for colors, typography, spacing, radii, borders, focus, and charts whenever a token represents the visual decision. Do not create a separate light or dark palette or duplicate theme controls as widget properties.
> Prefer worker-safe Fluid UI components exported by @fluid-app/portal-sdk/widgets/worker when they fit the interaction. When no exported component fits, use semantic HTML, accessible behavior, and the portal theme variables.
> A Portal Definition push updates the remote working definition. A portal version is an immutable snapshot, and activation is a separate live release operation.
> The Help Center (/help/...) is for merchants, admins and reps using Fluid. Its admin pages mirror the admin's routes: the screen at admin.fluid.app/settings/taxes is documented at /help/admin/settings/taxes. Use the Help Center for how-to questions about the admin, and the Developer Platform and API Reference for building integrations.
> Help Center pages describe what a company admin sees. A reader's role can hide screens and actions; admins manage roles on Settings > Roles (/help/admin/settings/roles). If someone can't find a screen or button, their role's permissions are the first thing to check.
> Send people who need Fluid support to /help/getting-help. Don't invent support email addresses, phone numbers or response times.

# Updates a cart (PUT)

> The PUT form of `PATCH /api/public/v2025-06/commerce/carts/{cart_token}`. Both methods reach one
update action, take the same body and return the same responses. Read
that operation for the details.



## OpenAPI

````yaml /api-reference/public-v2025-06.yaml put /api/public/v2025-06/commerce/carts/{cart_token}
openapi: 3.1.0
info:
  title: Fluid Public SDK API
  description: >
    **Fluid Public SDK API — the REST surface behind the `@fluid-app` FairShare

    SDK.**


    This is what the SDK calls on your behalf from the browser. Read it to

    understand what the SDK sends and receives, to verify a payload, or to call
    an

    SDK-backed endpoint directly. It also owns the browser-side platform surface

    that exists nowhere else: event tracking, lead capture, media and playlists,

    embeddable widgets, forms, sessions, settings, browser fingerprinting,

    affiliate lookup, and root themes.


    Its cart endpoints (`/api/public/v2025-06/commerce/carts/…`) are

    **session-aware**: they accept `fluid_session` and populate visitor session

    and rep attribution on the cart. They also cover enrollment-pack carts

    (`…/enroll`, `…/enrollment`) and payment-gateway callbacks, which the
    Checkout

    API does not.


    Most browser and cart operations require no bearer token. The cart token in

    the path scopes cart requests. Synchronizing an authenticated customer,

    overriding cart item prices, and overriding cart item volumes require a

    bearer token.


    **Building a checkout from scratch, server-side? Use the Fluid Checkout API

    (`checkout-v2026-04`) instead** — it is the forward surface and the only one

    with customer accounts and subscription management. See

    [Choosing a cart
    surface](https://docs.fluid.app/api/choosing-a-cart-surface)

    for the operation map and boundary.


    Note: the version label names this spec, not a single path prefix. Endpoints

    here live under `/api/public/v2025-06/`, its partial

    `/api/public/stable/` alias, `/api/public/`, `/api/v202506/carts/`, and the

    cart price-override path under `/api/carts/`.


    **Sandbox test companies.** A sandbox test company is linked to a live

    company. While the test company cannot be reached, because sandbox access

    is turned off for its live company or the live company was deleted, every

    operation in this API that resolves the company from the request's

    credential refuses a credential for it with `403` and the body

    `{"error": "<message>"}`, before the operation runs. The refusal is

    documented here once rather than on each operation.
  version: v2025-06
  contact:
    email: support@fluid.app
  license:
    name: Proprietary
    identifier: LicenseRef-Proprietary
servers:
  - url: https://api.fluid.app
security: []
tags:
  - name: carts
    description: >-
      Create, read, and mutate session-aware carts (items, address, country,
      language, discounts, shipping method, payment method, magic-link login,
      checkout).
  - name: checkout
    description: Checkout-started event emitted when a shopper enters the checkout flow.
  - name: commerce
    description: Admin-authenticated cart price overrides.
  - name: orders
    description: Public order lookup by token, including earned loyalty points.
  - name: product
    description: Localized product lookup by slug for storefronts and themes.
  - name: enrollment-packs
    description: Enrollment pack lookup by slug, for enrollment-pack carts.
  - name: payment
    description: Klarna session creation and updates for a cart.
  - name: paypal
    description: PayPal order creation, authorization, and shipping callbacks for a cart.
  - name: braintree
    description: Saving a Braintree PayPal account for a start-free cart.
    x-fluid-section: Checkout
  - name: events
    description: Browser-side event ingestion — page visits, URL visits, and lead capture.
  - name: session
    description: Visitor session creation, the basis of cart and rep attribution.
  - name: fingerprint
    description: Browser fingerprint registration used to link sessions to a visitor.
  - name: lead
    description: Lead capture from storefront and theme forms.
  - name: forms
    description: Public form retrieval, password verification, and response submission.
  - name: media
    description: Media lookup by slug and video analytics events.
  - name: playlist
    description: Playlist (library) lookup by slug.
  - name: widgets
    description: Embeddable storefront widgets — banners, carts, chats, and popups.
  - name: page
    description: Page-visit tracking for storefront and theme pages.
  - name: url
    description: Short-link and URL visit tracking.
  - name: settings
    description: >-
      Company storefront settings the SDK reads at boot — company, cart, and
      affiliate configuration.
  - name: affiliate
    description: Affiliate lookup used to resolve a rep from a share link or handle.
  - name: root-themes
    description: Root theme catalog backing the theme editor and storefront rendering.
  - name: public
    description: >-
      Public utilities — health checks, Apple Pay domain verification,
      leaderboards, and cart item volumes.
  - name: public-drop-zones
    description: >-
      Active checkout, order-confirmation, and slideout-cart drop zones used
      internally by the FairShare SDK. Direct REST integrations should use
      checkout-v2026-04.
paths:
  /api/public/v2025-06/commerce/carts/{cart_token}:
    put:
      tags:
        - carts
      summary: Updates a cart (PUT)
      description: >-
        The PUT form of `PATCH
        /api/public/v2025-06/commerce/carts/{cart_token}`. Both methods reach
        one

        update action, take the same body and return the same responses. Read

        that operation for the details.
      operationId: public_v2025_06_cart-update_put
      parameters:
        - name: cart_token
          in: path
          required: true
          schema:
            type: string
        - name: fluid_shop
          in: query
          description: The domain of your Fluid shop (excluding the scheme)
          example: myco.fluid.app
          schema:
            type: string
        - name: fluid_session
          in: query
          description: Session token
          example: fs_szwdDuRbqEe7AV7sXk7vVq
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/UpdateCart'
      responses:
        '200':
          $ref: '#/components/responses/UpdateCartOk'
        '404':
          $ref: '#/components/responses/UpdateCartNotFound'
        '409':
          $ref: '#/components/responses/PaymentInProgressError'
        '410':
          $ref: '#/components/responses/ProcessedCartResponse'
        '422':
          $ref: '#/components/responses/UpdateCartUnprocessable'
      security: []
components:
  requestBodies:
    UpdateCart:
      content:
        application/json:
          schema:
            type: object
            description: Cart update payload
            properties:
              phone:
                type: string
                description: Customer phone number
              email:
                type: string
                format: email
                description: Customer email address
          example:
            email: holly.flax@dundermifflin.com
            phone: '+15705550142'
  responses:
    UpdateCartOk:
      description: Cart updated successfully
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CartResponse'
          example:
            cart:
              id: 48213
              cart_token: ct_7Hk2mQx9vRbT3nWz8LpYc4
              state: start
              state_revision: 6
              population_status: complete
              email: holly.flax@dundermifflin.com
              phone: '+15705550142'
              language_iso: en
              currency_code: USD
              currency_symbol: $
              currency_decimal_places: 2
              enrollment: false
              buyer_rep_id: 5521
              customer_id: 30417
              enrollment_pack_id: null
              email_marketing: false
              sms_marketing: false
              auto_apply_points: false
              processed: false
              valid_for_checkout: false
              valid_for_checkout_pre_payment: true
              checkout_blockers: []
              contains_subscription: false
              requires_payment_method: true
              digital_only: false
              points_enabled: false
              cv_total: '109.98'
              qv_total: '109.98'
              amount_total: 126.53
              amount_total_in_currency: $126.53
              sub_total: 109.98
              sub_total_in_currency: $109.98
              tax_total: 6.6
              tax_total_in_currency: $6.60
              shipping_total: 9.95
              shipping_total_in_currency: $9.95
              discount_total: 0
              discount_total_in_currency: $0.00
              subtotal_after_discounts: 109.98
              subtotal_after_discounts_in_currency: $109.98
              price_inclusive_of_tax: false
              price_inclusive_tax_name: null
              totals:
                gross_subtotal: '109.98'
                gross_subtotal_in_currency: $109.98
                net_subtotal: '109.98'
                net_subtotal_in_currency: $109.98
                item_tax: '0.00'
                item_tax_in_currency: $0.00
                shipping_net: '9.95'
                shipping_net_in_currency: $9.95
                shipping_tax: '0.00'
                shipping_tax_in_currency: $0.00
                total_tax: '6.60'
                total_tax_in_currency: $6.60
                price_inclusive_of_tax: false
                tax_label: null
              discount_codes: []
              buyer_rep:
                id: 5521
                email: dwight.schrute@dundermifflin.com
                full_name: Dwight Schrute
                image_url: >-
                  https://cdn.fluid.app/dunder-mifflin/avatars/dwight-schrute.jpg
                external_id: DM-REP-0042
              buyer_rep_member_id: 5f2c9a1e-7b3d-4e8a-a6c2-91d04e7f3b28
              available_shipping_methods:
                - id: 311
                  title: Standard Ground
                  price: 9.95
                  delivery_time_estimate: 3-5 business days
                  price_label: null
                - id: 312
                  title: Two-Day Express
                  price: 19.95
                  delivery_time_estimate: 2 business days
                  price_label: null
              shipping_method:
                id: '311'
                name: Standard Ground
              items:
                - id: 91547
                  title: Dunder Mifflin 20lb Copy Paper
                  product_title: Dunder Mifflin 20lb Copy Paper
                  quantity: 2
                  price: '54.99'
                  price_in_currency: $54.99
                  discount_amount: '0.0'
                  discount_amount_in_currency: $0.00
                  tax: '6.60'
                  tax_in_currency: $6.60
                  cv: '54.99'
                  qv: '54.99'
                  cv_total: '109.98'
                  qv_total: '109.98'
                  total: '109.98'
                  total_in_currency: $109.98
                  line_total_in_currency: $109.98
                  regular_line_total_in_currency: $109.98
                  enrollment_pack_id: null
                  subscription: false
                  subscription_plan_id: null
                  display_to_customer: true
                  image_url: >-
                    https://cdn.fluid.app/dunder-mifflin/products/20lb-copy-paper.jpg
                  free_item: false
                  allow_subscription: true
                  enrollment: false
                  errors: []
                  variant:
                    id: 70412
                    title: Case of 10 reams
                    sku: DM-20LB-CASE
                    price: '54.99'
                    price_in_currency: $54.99
                    currency_code: USD
                    options:
                      - title: Pack size
                        value: Case of 10 reams
                    physical: true
              ship_to:
                id: 66120
                name: Holly Flax
                address1: 221 Lackawanna Avenue
                address2: Apt 4B
                city: Scranton
                state: PA
                subdivision_code: PA
                postal_code: '18503'
                country_code: US
                phone: '+15705550142'
                country_num_code: 840
                default: true
              country:
                id: 214
                name: United States
                iso: US
                iso_name: UNITED STATES
                iso3: USA
                currency_code: USD
                currency_symbol: $
                province_required: true
                tax_enabled: true
                price_inclusive_of_tax: false
                price_inclusive_tax_name: null
                tax_standard_rate: null
              company:
                id: 1405
                name: Dunder Mifflin Paper Company
                subdomain: dunder-mifflin
                fluid_shop: dunder-mifflin.fluid.app
                primary_domain_hostname: shop.dundermifflin.com
                logo_url: https://cdn.fluid.app/dunder-mifflin/brand/logo.png
                favicon_url: https://cdn.fluid.app/dunder-mifflin/brand/favicon.png
                collect_phone: true
                require_phone: false
                require_billing_zip: true
                order_on_behalf: false
                reward_points_enabled: false
                collect_sms_marketing: true
                collect_email_marketing: true
                bundle_subscriptions: false
                hide_volume_on_customer_surfaces: true
                isolated_payment_tokens: false
                kount_environment: production
                kount_client_id: null
              recurring: []
            meta:
              request_id: c41e7a90-3b5d-4f28-9e61-8d2a0b7f5c13
              timestamp: '2026-09-17T14:22:08Z'
              checkout_url: https://checkout.fluid.app/checkouts/ct_7Hk2mQx9vRbT3nWz8LpYc4
              shop_url: https://shop.dundermifflin.com
    UpdateCartNotFound:
      description: Cart not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    PaymentInProgressError:
      description: >
        A redirect payment (PPRO, dLocal, Citcon) is open at the provider, so
        the

        cart refuses writes until the charge resolves (`meta.code` =

        `payment_in_progress`). The provider collects the amount the charge

        opened with, and the order is built from this cart when it does.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PaymentInProgressErrorResponse'
    ProcessedCartResponse:
      description: >-
        The cart is locked and can no longer be modified. Cart-mutation
        endpoints return this when the cart has already been processed
        (converted to an order) or, for enrollment carts, is in an authorized
        payment state. The body carries the full cart plus the store URL so the
        client can display the locked cart and redirect.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/LockedCartErrorResponse'
    UpdateCartUnprocessable:
      description: Email update rejected by validation or external callback
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    CartResponse:
      type: object
      required:
        - cart
      additionalProperties: false
      properties:
        cart:
          $ref: '#/components/schemas/Cart'
        meta:
          type: object
          additionalProperties: false
          properties:
            checkout_url:
              type:
                - string
                - 'null'
            shop_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
            timestamp:
              type:
                - string
                - 'null'
    ErrorResponse:
      type: object
      required:
        - error_message
        - errors
        - meta
      properties:
        error_message:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorBag'
        meta:
          $ref: '#/components/schemas/ErrorMeta'
    PaymentInProgressErrorResponse:
      description: |
        409 envelope for a cart write refused while a redirect payment is
        open at the provider (CURRENT-3992). `meta.cart` is the cart as it
        stands, so the client can show the pending payment without a second
        fetch.
      type: object
      additionalProperties: false
      required:
        - error_message
        - errors
        - meta
      properties:
        error_message:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorBag'
        meta:
          type: object
          additionalProperties: false
          required:
            - request_id
            - timestamp
            - code
            - shop_url
            - cart
          properties:
            request_id:
              type:
                - string
                - 'null'
            timestamp:
              type: string
              format: date-time
            code:
              type: string
              enum:
                - payment_in_progress
            shop_url:
              type: string
            cart:
              $ref: '#/components/schemas/Cart'
    LockedCartErrorResponse:
      type: object
      additionalProperties: false
      required:
        - error_message
        - errors
        - meta
      properties:
        error_message:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorBag'
        meta:
          type: object
          additionalProperties: false
          required:
            - request_id
            - timestamp
            - shop_url
            - cart
          properties:
            request_id:
              type:
                - string
                - 'null'
            timestamp:
              type: string
              format: date-time
            shop_url:
              type: string
            cart:
              $ref: '#/components/schemas/Cart'
    Cart:
      type: object
      additionalProperties: false
      required:
        - enrollment
      properties:
        id:
          type: integer
        cart_token:
          type: string
        state:
          type: string
        state_revision:
          type: integer
          format: int64
          minimum: 0
          description: Monotonic ordering marker for published cart snapshots.
        population_status:
          type: string
          enum:
            - pending
            - complete
            - failed
          description: >-
            Progress of the background job that adds a deferred create's items.
            `pending` while it runs, then `complete` or `failed`. A synchronous
            create returns `complete`. An unexpected job error can leave it
            `pending`, so clients should stop waiting after a timeout.
        email:
          type:
            - string
            - 'null'
        phone:
          type:
            - string
            - 'null'
        phone_dialable:
          type: boolean
          description: >-
            Whether checkout keeps `phone` on the customer's profile: it must
            parse as a possible number with its +country code. Checkout offers
            SMS consent for a saved phone only when this is true.
        sms_marketing_preselected:
          type: boolean
          description: >-
            True only in the authenticated member's own cart sync response, when
            that attached member is opted in and their consent phone matches the
            profile-dialable cart phone. False for every unauthenticated or
            different-member response.
        language_iso:
          type:
            - string
            - 'null'
        currency_code:
          type: string
        currency_symbol:
          type: string
        currency_decimal_places:
          type: integer
        type:
          type:
            - string
            - 'null'
        enrollment:
          type: boolean
          description: >-
            Whether the cart is flagged as enrollment eligible, with or without
            an enrollment pack.
        buyer_rep_id:
          type:
            - integer
            - 'null'
        customer_id:
          type:
            - integer
            - 'null'
        enrollment_pack_id:
          type:
            - integer
            - 'null'
        enrollment_member_type:
          examples:
            - id: 22c58158-7f6c-4f33-a033-32e259941684
              slug: rep
              name: Representative
            - null
          anyOf:
            - type: object
              additionalProperties: false
              required:
                - id
                - slug
                - name
              properties:
                id:
                  type: string
                  format: uuid
                slug:
                  type: string
                name:
                  type: string
            - type: 'null'
        email_marketing:
          type:
            - boolean
            - 'null'
        sms_marketing:
          type:
            - boolean
            - 'null'
        auto_apply_points:
          type: boolean
          description: >-
            Whether renewals created from this cart apply reward points
            automatically
        processed:
          type: boolean
        payment_in_progress:
          type: boolean
          description: >
            `true` while a redirect payment (PPRO, dLocal, Citcon) is open at
            the

            provider. Cart writes answer `409` with `meta.code` =

            `payment_in_progress` until the charge resolves.
        payment_resume_url:
          type:
            - string
            - 'null'
          description: >
            Fluid's resume endpoint for the open payment

            (`GET /api/checkout/v2026-04/carts/{cart_token}/payment/resume`),
            which

            redirects the shopper to the provider page; the provider link itself
            can

            carry a session credential and is never returned. `null` when no
            payment

            is in progress or the provider gave no page (a BLIK mandate is
            approved in

            the banking app).
        valid_for_checkout:
          type: boolean
        valid_for_checkout_pre_payment:
          type: boolean
        checkout_blockers:
          type: array
          description: >-
            Why `valid_for_checkout_pre_payment` is false, one entry per reason.
            Empty when it is true.
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Stable identifier for the validator that blocked checkout,
                  e.g. `shipping_address`. Key your own customer-facing copy off
                  this.
              message:
                type: string
                description: >-
                  The validator's own English wording, as a fallback for a
                  `code` the client does not recognise. Not translated.
              field:
                type:
                  - string
                  - 'null'
                description: >-
                  The cart API path to fix for this blocker, for example
                  `shipping_address`, or null when no single field applies.
              payment:
                type: string
                enum:
                  - not_attempted
                  - declined
                  - unknown
                  - held
                description: >-
                  What happened to the payment: the catalog default for the
                  blocker's `code`, which is `not_attempted` for every blocker
                  code; `held` instead when the cart's only money is the payment
                  a resubmit reuses; or `unknown` on every blocker while the
                  cart may already hold money or that cannot be read. Check
                  before charging again on `unknown`. `declined` reflects the
                  stored payment status; for some gateways an unconfirmed
                  failure is still reported as `declined`.
            required:
              - code
              - message
            additionalProperties: false
        contains_subscription:
          type: boolean
          description: >-
            `true` when the cart contains a subscribed top-level item or bundle
            child.
        vault_without_charge:
          type: boolean
        payment_method_auto_assignable:
          type: boolean
        requires_payment_method:
          type: boolean
        requires_3ds:
          type: boolean
        immutable_items:
          type: boolean
        digital_only:
          type: boolean
        points_enabled:
          type: boolean
        messages:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        metadata:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        cv_total:
          type:
            - string
            - 'null'
          format: decimal
        qv_total:
          type:
            - string
            - 'null'
          format: decimal
        amount_total:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        amount_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        sub_total:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        sub_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        tax_total:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        tax_exempt:
          type: boolean
        tax_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        tax_total_for_display:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        inclusive_shipping_tax:
          type: number
        shipping_total:
          type: number
        shipping_total_in_currency:
          type: string
        shipping_total_for_display:
          type: string
        discount_total:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        discount_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        subtotal_after_discounts:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        subtotal_after_discounts_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        price_inclusive_of_tax:
          type: boolean
        price_inclusive_tax_name:
          type:
            - string
            - 'null'
        totals:
          type:
            - object
            - 'null'
          additionalProperties: false
          required:
            - gross_subtotal
            - gross_subtotal_in_currency
            - net_subtotal
            - net_subtotal_in_currency
            - item_tax
            - item_tax_in_currency
            - shipping_net
            - shipping_net_in_currency
            - shipping_tax
            - shipping_tax_in_currency
            - total_tax
            - total_tax_in_currency
            - price_inclusive_of_tax
            - tax_label
          description: >-
            Display-ready totals breakdown.
             Decomposes the inclusive-tax figures so clients render
            the net subtotal, item tax, shipping net and shipping VAT without
            re-deriving them. Each money component carries a raw
            boundary-rounded decimal string plus its currency-formatted
            `_in_currency` sibling.
          properties:
            gross_subtotal:
              type: string
              description: Catalog sum of line-item prices (customer display).
            gross_subtotal_in_currency:
              type: string
            net_subtotal:
              type: string
              description: Items subtotal excluding embedded item tax.
            net_subtotal_in_currency:
              type: string
            item_tax:
              type: string
              description: Embedded tax attributable to the items.
            item_tax_in_currency:
              type: string
            shipping_net:
              type: string
              description: Shipping charge excluding embedded shipping tax.
            shipping_net_in_currency:
              type: string
            shipping_tax:
              type: string
              description: Embedded tax attributable to shipping.
            shipping_tax_in_currency:
              type: string
            total_tax:
              type: string
              description: Combined item and shipping tax.
            total_tax_in_currency:
              type: string
            price_inclusive_of_tax:
              type: boolean
              description: Whether catalog prices include tax.
            tax_label:
              type:
                - string
                - 'null'
              description: The resolved tax-line label (e.g. "VAT"), or null.
        enrollment_fee:
          type:
            - number
            - string
        enrollment_fee_in_currency:
          type: string
        transaction_fee:
          type:
            - number
            - string
        transaction_fee_in_currency:
          type: string
        shipping_discount:
          type: number
        discount_codes:
          type: array
          items:
            type: string
        product_discount_codes:
          type: array
          items:
            type: string
        shipping_discount_codes:
          type: array
          items:
            type: string
        customer_total_points:
          type: integer
        customer_total_points_decimal:
          type: string
          pattern: ^-?\d+\.\d{4}$
          description: Customer points balance as an exact four-place decimal string.
          example: '120.0000'
        customer_total_points_in_currency:
          type: string
        points_applied:
          type: integer
        points_applied_decimal:
          type: string
          pattern: ^-?\d+\.\d{4}$
          description: Applied points as an exact four-place decimal string.
          example: '120.0000'
        points_applied_amount_in_currency:
          type: string
        remaining_customer_points:
          type: integer
        remaining_customer_points_decimal:
          type: string
          pattern: ^-?\d+\.\d{4}$
          description: Remaining customer points as an exact four-place decimal string.
          example: '120.0000'
        remaining_customer_points_amount_in_currency:
          type: string
        remaining_cart_amount_after_points:
          type:
            - number
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        remaining_cart_amount_after_points_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        max_applicable_points:
          type: integer
        points_unavailable_in_market:
          type: boolean
          description: >-
            True when points cannot be spent in this cart's market because
            nobody set its points value and the company refuses such markets.
            False for a cart an earlier checkout attempt already spent points
            on. Checkout shows the points option disabled, naming the market.
        max_applicable_points_decimal:
          type: string
          pattern: ^-?\d+\.\d{4}$
          description: Maximum applicable points as an exact four-place decimal string.
          example: '120.0000'
        total_creditable_points:
          type: integer
        total_creditable_points_decimal:
          type: string
          pattern: ^-?\d+\.\d{4}$
          description: Total creditable points as an exact four-place decimal string.
          example: '120.0000'
        shipping_address:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        billing_address:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        discount_breakdown:
          type: object
          additionalProperties: false
          properties:
            internal_discounts:
              type: number
            external_discounts:
              type: number
            total_discounts:
              type: number
        external_discount:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
        buyer_rep:
          type:
            - object
            - 'null'
          additionalProperties: false
          properties:
            id:
              type:
                - integer
                - 'null'
            email:
              type: string
            full_name:
              type: string
            image_url:
              type:
                - string
                - 'null'
            external_id:
              type:
                - string
                - 'null'
        buyer_rep_member_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Durable member UUID of the buyer rep, or `null` when the cart has no
            buyer rep. Populated for both legacy and native reps.
        volume_rep:
          type:
            - object
            - 'null'
          additionalProperties: false
          properties:
            id:
              type:
                - integer
                - 'null'
            email:
              type: string
            full_name:
              type: string
            image_url:
              type:
                - string
                - 'null'
        volume_rep_member_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            Durable member UUID of the volume rep, or `null` when the cart has
            no volume rep. Populated for both legacy and native reps.
        available_shipping_methods:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              id:
                type:
                  - string
                  - integer
              title:
                type: string
              price:
                type: number
              delivery_time_estimate:
                type:
                  - string
                  - 'null'
              price_label:
                type:
                  - string
                  - 'null'
        available_payment_methods:
          type: array
          items:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/JsonValue'
        payment_unavailable_reason:
          type:
            - string
            - 'null'
          description: >-
            Why available_payment_methods is empty, or null when payment is
            available. Diagnostic only; it does not change what the cart may do.
          enum:
            - no_gateway_for_country
            - below_minimum_amount
            - filtered_out
            - test_mode_no_gateway
            - test_mode_gateway_ineligible
            - null
        payment_account:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        shipping_method:
          type:
            - object
            - 'null'
          additionalProperties: false
          properties:
            id:
              type: string
            name:
              type: string
        payment_method:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        items:
          type: array
          items:
            $ref: '#/components/schemas/CartItem'
        ship_to:
          $ref: '#/components/schemas/CartAddress'
        bill_to:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        attribution:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        agreements:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              id:
                type: integer
              title:
                type: string
              show_at_checkout:
                type: boolean
              default_checked:
                type: boolean
              subscription_only:
                type: boolean
              standalone_on_checkout:
                type: boolean
              show_path:
                type: string
              enrollment_pack_id:
                type:
                  - integer
                  - 'null'
              required:
                type: boolean
              content_digest:
                type: string
                pattern: ^[0-9a-f]{64}$
                description: >-
                  SHA-256 hex digest of the agreement text as rendered for this
                  cart; echo it in `accepted_agreement_versions` at checkout so
                  a consent to since-edited wording is refused.
        country:
          $ref: '#/components/schemas/CartCountry'
        company:
          $ref: '#/components/schemas/CartCompany'
        enrollment_pack:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        recurring:
          type: array
          items:
            type: object
            additionalProperties: false
            required:
              - subtotal
              - subtotal_in_currency
              - interval
              - interval_unit
              - interval_unit_identifier
              - subtotal_for_display
              - start_date
            properties:
              subtotal:
                type:
                  - number
                  - 'null'
              subtotal_in_currency:
                type:
                  - string
                  - 'null'
              interval:
                type: integer
              interval_unit:
                type: string
              interval_unit_identifier:
                type: string
                enum:
                  - day
                  - week
                  - month
                  - year
              subtotal_for_display:
                type:
                  - string
                  - 'null'
              start_date:
                type: string
              subscription_start_notice:
                description: >-
                  The blackout rule's checkout message when it moved this plan's
                  first bill date (start_date), otherwise null. Informational
                  only. A client treats a missing field as null.
                anyOf:
                  - $ref: '#/components/schemas/CartSubscriptionStartNotice'
                  - type: 'null'
    ErrorBag:
      description: >-
        Validation errors keyed by field, a list of errors, a single error
        message, or null when no structured error details are available.
      anyOf:
        - type: string
        - type: array
          items:
            $ref: '#/components/schemas/ErrorValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/ErrorValue'
        - type: 'null'
    ErrorMeta:
      type: object
      properties:
        request_id:
          type:
            - string
            - 'null'
        timestamp:
          type: string
          format: date-time
        shop_url:
          type:
            - string
            - 'null'
        cart:
          anyOf:
            - $ref: '#/components/schemas/Cart'
            - type: 'null'
        code:
          type: string
          description: Machine code for the refusal, for example `payment_unconfirmed`.
        payment_uuid:
          type: string
          description: >-
            Present with `payment_unconfirmed`. The payment to look up before
            charging again.
        error_details:
          type: array
          minItems: 1
          description: >-
            Every reason this checkout was refused, each with a stable `code`,
            the cart `field` to fix, and the `payment` outcome.
          items:
            $ref: '#/components/schemas/CheckoutErrorDetail'
        coded_recovery:
          type: boolean
          description: >-
            Present and true when the company routes checkout refusals by
            `error_details` (CHECKOUT_CODED_REFUSALS). Temporary; removed with
            that flag.
      additionalProperties: false
    JsonValue:
      description: >-
        Any valid JSON value for provider, integration, theme, metadata, or
        other dynamic payloads whose keys are not fixed by the API contract.
      anyOf:
        - type: string
        - type: number
        - type: boolean
        - type: 'null'
        - type: array
          items:
            $ref: '#/components/schemas/JsonValue'
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
    CartItem:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
        title:
          type: string
        quantity:
          type: integer
        price:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        price_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        discount_amount:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        discount_amount_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        tax:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        tax_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        cv:
          type:
            - string
            - 'null'
          format: decimal
        qv:
          type:
            - string
            - 'null'
          format: decimal
        cv_total:
          type:
            - string
            - 'null'
          format: decimal
        qv_total:
          type:
            - string
            - 'null'
          format: decimal
        total:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        line_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        total_after_discounts:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        total_after_discounts_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        line_total_after_discounts_in_currency:
          type:
            - string
            - 'null'
          description: >-
            Unavailable (null): a bundle price for this tier cannot be computed;
            checkout refuses the line.
        regular_line_total_in_currency:
          type:
            - string
            - 'null'
          description: >-
            The one-time/regular price total (unit regular price times
            quantity), independent of the item's current subscription state.
            Unlike line_total_in_currency, this does not change when the item is
            subscribed.
        unit_price_display_authoritative:
          type: boolean
        price_unavailable:
          type: boolean
          description: >-
            `true` when a bundle price for this tier cannot be computed: the
            line's price fields are null and checkout refuses it. `false` for
            every other line.
        subscription_start_notice:
          description: >-
            The blackout rule's checkout message when it moved
            subscription_start, otherwise null. Informational only. A client
            treats a missing field as null.
          anyOf:
            - $ref: '#/components/schemas/CartSubscriptionStartNotice'
            - type: 'null'
        enrollment_pack_id:
          type:
            - integer
            - 'null'
        subscription:
          type: boolean
        subscription_plan_id:
          type:
            - integer
            - 'null'
        subscription_plans:
          type: array
          description: >-
            Ordered: the plan the line is offered first (the line's own plan,
            else the product's own default), then the product's other plans in
            the order they were linked. A client that preselects a plan reads
            the first entry. Each entry's `default` marks the product's own
            default plan.
          items:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/JsonValue'
        subscription_only:
          type:
            - boolean
            - 'null'
        subscription_interval:
          type:
            - integer
            - 'null'
        subscription_interval_unit:
          type:
            - string
            - 'null'
        subscription_interval_unit_identifier:
          type:
            - string
            - 'null'
        subscription_price:
          type:
            - string
            - number
            - 'null'
        subscription_price_in_currency:
          type:
            - string
            - 'null'
        subscription_start:
          type:
            - string
            - 'null'
        subscribe_and_save:
          type:
            - string
            - number
            - 'null'
        subscribe_and_save_in_currency:
          type:
            - string
            - 'null'
        subscribe_and_save_for_display:
          type:
            - string
            - 'null'
        display_to_customer:
          type: boolean
        metadata:
          anyOf:
            - type: object
              additionalProperties:
                $ref: '#/components/schemas/JsonValue'
            - type: 'null'
        image_url:
          type:
            - string
            - 'null'
        free_item:
          type: boolean
        allow_subscription:
          type: boolean
        enrollment:
          type: boolean
        errors:
          type: array
          items:
            type: string
        creditable_points:
          type: integer
        product:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
        variant:
          type:
            - object
            - 'null'
          additionalProperties: false
          properties:
            id:
              type: integer
            title:
              type:
                - string
                - 'null'
            display_name:
              type:
                - string
                - 'null'
            image_url:
              type:
                - string
                - 'null'
            image_path:
              type:
                - string
                - 'null'
            sku:
              type:
                - string
                - 'null'
            primary_image:
              type:
                - string
                - 'null'
            price:
              type:
                - number
                - string
                - 'null'
            price_in_currency:
              type: string
            currency_code:
              type:
                - string
                - 'null'
            options:
              type: array
              items:
                type: object
                additionalProperties: false
                properties:
                  title:
                    type: string
                  value:
                    type: string
            physical:
              type:
                - boolean
                - 'null'
            unit_of_size:
              type:
                - string
                - 'null'
            height:
              type:
                - number
                - 'null'
            width:
              type:
                - number
                - 'null'
            length:
              type:
                - number
                - 'null'
            unit_of_weight:
              type:
                - string
                - 'null'
            weight:
              type:
                - string
                - 'null'
            hs_code:
              type:
                - string
                - 'null'
        bundled_items:
          type:
            - array
            - 'null'
          items:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/JsonValue'
        product_title:
          type:
            - string
            - 'null'
    CartAddress:
      type:
        - object
        - 'null'
      additionalProperties: false
      properties:
        id:
          type: integer
        name:
          type:
            - string
            - 'null'
        address1:
          type:
            - string
            - 'null'
        address2:
          type:
            - string
            - 'null'
        address3:
          type:
            - string
            - 'null'
        city:
          type:
            - string
            - 'null'
        state:
          type:
            - string
            - 'null'
        subdivision_code:
          type:
            - string
            - 'null'
        postal_code:
          type:
            - string
            - 'null'
        country_code:
          type:
            - string
            - 'null'
        phone:
          type:
            - string
            - 'null'
        country_num_code:
          type:
            - integer
            - 'null'
        default:
          type: boolean
    CartCountry:
      type:
        - object
        - 'null'
      additionalProperties: false
      properties:
        id:
          type: integer
        name:
          type: string
        iso:
          type: string
        iso_name:
          type: string
        iso3:
          type: string
        currency_code:
          type: string
        currency_symbol:
          type: string
        province_required:
          type: boolean
        tax_enabled:
          type:
            - boolean
            - 'null'
        price_inclusive_of_tax:
          type:
            - boolean
            - 'null'
        price_inclusive_tax_name:
          type:
            - string
            - 'null'
        tax_standard_rate:
          type:
            - number
            - 'null'
          description: Standard tax rate (percent) used for inclusive-pricing countries
    CartCompany:
      type: object
      additionalProperties: false
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            The company's uuid_v7, which the identity service names it by (its
            `org`).
        identity_sign_in_enabled:
          type: boolean
          description: >-
            Whether the company's shoppers sign in through the identity service
            rather than the legacy code. Read through the company's sign-in
            path, never set here.
        checkout_identity_enabled:
          type: boolean
          description: >-
            Whether checkout is identity-only for the company; true only when it
            signs in through the identity service and its release flag is on.
        id:
          type: integer
        name:
          type: string
        favicon_url:
          type:
            - string
            - 'null'
        primary_domain_hostname:
          type:
            - string
            - 'null'
        subdomain:
          type:
            - string
            - 'null'
        logo_url:
          type:
            - string
            - 'null'
        fluid_shop:
          type:
            - string
            - 'null'
        collect_phone:
          type: boolean
        require_phone:
          type: boolean
        require_billing_zip:
          type: boolean
        checkout_primary_button_color:
          type:
            - string
            - 'null'
        checkout_primary_text_color:
          type:
            - string
            - 'null'
        checkout_secondary_button_color:
          type:
            - string
            - 'null'
        checkout_secondary_text_color:
          type:
            - string
            - 'null'
        order_on_behalf:
          type: boolean
        reward_points_enabled:
          type: boolean
        reward_points_apply_to_subtotal:
          type: boolean
        reward_points_label_singular:
          type: string
        reward_points_label_plural:
          type: string
        collect_sms_marketing:
          type: boolean
        sms_terms_url:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            The merchant's SMS terms override, or its storefront
            /terms-conditions page by default. Null when the company does not
            collect SMS marketing or when no HTTPS policy URL is available.
        sms_privacy_policy_url:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            The merchant's SMS privacy policy override, or its storefront
            /privacy-policy page by default. Null when the company does not
            collect SMS marketing or when no HTTPS policy URL is available.
        collect_email_marketing:
          type: boolean
        bundle_subscriptions:
          type: boolean
        hide_volume_on_customer_surfaces:
          type: boolean
          description: >-
            Whether commissionable/qualifying volume (CV/QV) is hidden on
            customer-facing surfaces. Always a real boolean — the blueprint
            reads the strict Company#hide_volume_on_customer_surfaces?
            predicate, not the raw settings value.
        isolated_payment_tokens:
          type: boolean
          description: >-
            When true, this company's payment tokens and customer profile are
            isolated from the shared FluidPayAccount wallet. Clients must use
            customer-scoped PM/address mutation routes.
        kount_environment:
          type: string
          enum:
            - sandbox
            - production
          example: sandbox
          description: >-
            Per-merchant Kount environment. Used by the checkout DDC initializer
            to pick TEST vs PROD.
        kount_client_id:
          type:
            - string
            - 'null'
          example: '150953359757648'
          description: >-
            Per-merchant Kount Client ID (MID) for enterprise merchants. Null
            for portfolio merchants.
    CartSubscriptionStartNotice:
      type: object
      additionalProperties: false
      description: >-
        The checkout message of the merchant's blackout rule that moved a first
        bill date off a blocked day of the month. Informational only; checkout
        never refuses on it.
      required:
        - message
        - moved_from
      properties:
        message:
          type: string
          description: >-
            The rule's checkout message. Never empty; a rule without a message
            gives no notice.
          example: >-
            We never bill on the 29th to the 31st, so your first order bills on
            the 28th.
        moved_from:
          type: string
          format: date
          description: The first bill date before the move, in the cart's time zone.
          example: '2026-11-30'
    ErrorValue:
      description: A validation or API error value.
      anyOf:
        - type: string
        - type: array
          items:
            type: string
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/JsonValue'
    CheckoutErrorDetail:
      description: >-
        One refusal reason, in the same vocabulary as `checkout_blockers`, with
        where to send the shopper and what happened to the payment.
      type: object
      additionalProperties: false
      required:
        - code
        - field
        - payment
        - message
      properties:
        code:
          type: string
          description: Stable refusal code. Codes reuse the `checkout_blockers` codes.
        field:
          type:
            - string
            - 'null'
          description: >-
            The cart API path to send the shopper to, for example
            `shipping_address.postal_code` or `items[123]`, or null.
        payment:
          type: string
          enum:
            - not_attempted
            - declined
            - unknown
            - held
          description: >-
            `not_attempted`: fix the cause and resubmit. `declined`: the payment
            was refused; resubmit with another method. `declined` reflects the
            stored payment status; for some gateways an unconfirmed failure is
            still reported as `declined`. `unknown`: money may have moved; check
            the order before charging again. `held`: the cart's only money is
            the payment a resubmit reuses. Fix the field and resubmit with the
            same payment method; checkout will not charge again.
        message:
          type: string
          description: The English message for this entry. Not translated.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.