> ## 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.
> Lists use cursor pagination via the page[cursor] and page[limit] query params; follow meta.pagination.next_cursor until it is null.
> Never use /api/company/v1 or /api/v1 paths, page/per_page params, or offset pagination — they are legacy.
> 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/auth-v0.yaml covers the unversioned auth surface (/api/... paths — authentication, MFA, social auth, and token exchange); 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).
> Successful responses wrap the resource payload alongside a top-level integer status and a meta object.

# List customer orders

> Returns the authenticated customer's order history with cursor pagination.



## OpenAPI

````yaml /api-reference/checkout-v2026-04.yaml get /api/checkout/v2026-04/customers/me/orders
openapi: 3.1.0
info:
  title: Fluid Checkout API
  description: >-
    **Fluid Checkout API — for building a checkout directly against REST.**


    Use this surface if you are integrating server-to-server or building your
    own

    checkout UI. It covers the full order lifecycle (cart → address → shipping →

    discount → complete → order) plus the logged-in customer's account: saved

    addresses, saved payment methods, order history, loyalty points, and

    subscription management (pause, resume, skip, cancel, retry).


    **The cart token in the URL scopes cart access** — creating a cart, adding

    items, applying a discount, and completing a cart need no bearer token.

    Among the cart operations, a Bearer token is required only for

    `carts/{cart_token}/sync`, `carts/{cart_token}/volume_rep`, and

    `carts/{cart_token}/discount/manual`. Off the cart, a token is required for

    everything under `customers/me` and `subscriptions`, and for the store and

    directory lookups (`store/config`, `store/languages`, `reps`, `users`) and

    `subscription_bundles`. `store/countries` accepts a token but does not

    require one — it returns the same list either way.


    **If you are using the `@fluid-app` FairShare SDK in a theme or storefront,

    you are not calling this surface** — the SDK calls the Fluid Public SDK API

    (`public-v2025-06`). Do not mix the two against one cart: they share the
    same

    cart records and services, but their request shapes differ. See

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

    for the operation map and boundary.
  version: v2026-04
  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 checkout carts (email, address, country,
      language, shipping, recalculation, completion).
  - name: cart-auth
    description: >-
      Cart-scoped customer authentication — magic-link challenge, verification,
      identity, and logout.
  - name: cart-discount
    description: >-
      Apply, list, and remove cart discount codes, including admin manual
      discounts.
  - name: cart-items
    description: Add, update, and remove line items on a cart.
  - name: cart-points
    description: Apply and remove loyalty points on a cart.
  - name: customers
    description: The authenticated customer's profile and company memberships.
  - name: customer-addresses
    description: The authenticated customer's saved shipping/billing addresses.
  - name: customer-orders
    description: The authenticated customer's order history.
  - name: customer-payment-methods
    description: The authenticated customer's saved payment methods and tokenization.
  - name: customer-points
    description: The authenticated customer's loyalty point balances.
  - name: directory
    description: Company rep and user directory lookups.
  - name: enrollments
    description: >-
      Public enrollment forms — retrieve a form and submit, update, or upload
      field answers.
  - name: orders
    description: Public order lookup by token.
  - name: products
    description: Public product queries for the storefront checkout.
  - name: store
    description: >-
      Store-level checkout configuration — countries, languages, address fields,
      agreements, drop zones, and Apple Pay domain verification.
  - name: subscriptions
    description: >-
      Manage subscriptions — pause, resume, skip, cancel, reactivate, retry, and
      failed-cycle waivers.
  - name: subscription-bundles
    description: List and create subscription bundles.
paths:
  /api/checkout/v2026-04/customers/me/orders:
    get:
      tags:
        - customer-orders
      summary: List customer orders
      description: >-
        Returns the authenticated customer's order history with cursor
        pagination.
      operationId: checkout_v2026_04_list_customer_orders
      parameters:
        - name: page[cursor]
          in: query
          required: false
          description: Pagination cursor
          schema:
            type: string
        - name: page[limit]
          in: query
          required: false
          description: Number of records per page (max 100)
          schema:
            type: integer
        - name: search
          in: query
          required: false
          description: >-
            Free-text search across order number, customer name/email/phone,
            external id, and order id/number
          schema:
            type: string
        - name: sort
          in: query
          required: false
          description: Sort key; prefix with '-' for descending
          schema:
            type: string
            enum:
              - sale_date
              - '-sale_date'
              - created_at
              - '-created_at'
              - id
              - '-id'
              - order_status
              - '-order_status'
              - status
              - '-status'
              - customer_name
              - '-customer_name'
              - customer
              - '-customer'
              - amount
              - '-amount'
        - name: status
          in: query
          required: false
          description: Filter by order status ('all' returns every status)
          schema:
            type: string
            enum:
              - all
              - draft
              - pending
              - pending_review
              - processing
              - completed
              - cancelled
              - archived
        - name: type
          in: query
          required: false
          description: Filter by order class
          schema:
            type: string
            enum:
              - sample_order
              - customer_order
              - member_order
              - enrollment_order
              - autoship_order
        - name: customer_id
          in: query
          required: false
          description: Filter by customer id
          schema:
            type: integer
        - name: user_company_id
          in: query
          required: false
          description: Filter by user company id
          schema:
            type: integer
        - name: subscription_id
          in: query
          required: false
          description: Filter by subscription id
          schema:
            type: integer
        - name: start_date
          in: query
          required: false
          description: Include orders on or after this date
          schema:
            type: string
            format: date
        - name: end_date
          in: query
          required: false
          description: Include orders on or before this date
          schema:
            type: string
            format: date
        - name: timezone
          in: query
          required: false
          description: Timezone for date-range filtering
          schema:
            type: string
        - name: within_days
          in: query
          required: false
          description: Include orders within the last N days
          schema:
            type: integer
        - name: cart_source
          in: query
          required: false
          description: Filter by cart source
          schema:
            type: string
        - name: country_isos
          in: query
          required: false
          description: Comma-separated country ISO codes to filter by
          schema:
            type: string
        - name: force_stats
          in: query
          required: false
          description: Force recomputation of aggregate stats
          schema:
            type: boolean
        - name: order_number
          in: query
          required: false
          description: Filter by exact order number
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
      security:
        - bearer_auth: []
components:
  schemas:
    OrderListResponse:
      description: Paginated list of customer orders with stats
      type: object
      additionalProperties: false
      required:
        - orders
        - meta
      properties:
        orders:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              id:
                type: integer
              first_name:
                type:
                  - string
                  - 'null'
              last_name:
                type:
                  - string
                  - 'null'
              email:
                type:
                  - string
                  - 'null'
              order_number:
                type: string
              status:
                type:
                  - string
                  - 'null'
              source:
                type:
                  - string
                  - 'null'
              amount:
                type: string
              amount_in_base:
                type: string
              base_to_currency_rate:
                type:
                  - string
                  - 'null'
              note:
                type:
                  - string
                  - 'null'
              currency_code:
                type: string
              created_at:
                type: string
                format: date-time
              updated_at:
                type: string
                format: date-time
              token:
                type: string
              order_status:
                type:
                  - string
                  - 'null'
              fulfillment_status:
                type:
                  - string
                  - 'null'
              financial_status:
                type:
                  - string
                  - 'null'
              warehouse_id:
                type:
                  - integer
                  - 'null'
              points_applied:
                type: integer
              points_applied_amount:
                type: number
              points_applied_amount_in_currency:
                type: string
              order_total_after_points_redemption:
                type: number
              total_points_credited:
                type: integer
              currency_symbol:
                type:
                  - string
                  - 'null'
              items_count:
                type: integer
              quantity_count:
                type: integer
              external_id:
                type:
                  - string
                  - 'null'
              sale_date:
                type:
                  - string
                  - 'null'
              order_on_behalf_of:
                type:
                  - boolean
                  - 'null'
              total_display_amount:
                type: string
              total_cv:
                type: string
                format: decimal
              total_qv:
                type: string
                format: decimal
              customer:
                type: object
                additionalProperties: false
                properties:
                  id:
                    type: integer
                  full_name:
                    type:
                      - string
                      - 'null'
                  email:
                    type:
                      - string
                      - 'null'
                  external_id:
                    type:
                      - string
                      - 'null'
                  orders_count:
                    type:
                      - integer
                      - 'null'
                  active_subscriptions_count:
                    type: integer
                  inactive_subscriptions_count:
                    type: integer
              first_item:
                type:
                  - object
                  - 'null'
                additionalProperties: false
                properties:
                  title:
                    type: string
                  image_url:
                    type:
                      - string
                      - 'null'
              subscription:
                type:
                  - object
                  - 'null'
                additionalProperties: false
                properties:
                  subscription_token:
                    type: string
                  status:
                    type:
                      - string
                      - 'null'
        meta:
          description: >-
            Default meta envelope plus cursor pagination and order stats
            rendered by Commerce::Api::Orders::IndexAction as
            {pagination:}.merge(stats).
          type: object
          additionalProperties: false
          required:
            - request_id
            - timestamp
          properties:
            request_id:
              type: string
            timestamp:
              type: string
              format: date-time
            pagination:
              description: >-
                Cursor pagination. Empty object when the page has no records;
                omitted entirely when the request resolves to no customer
                (controller renders {orders:[]} with default meta).
              oneOf:
                - type: object
                  additionalProperties: false
                - type: object
                  additionalProperties: false
                  required:
                    - cursor
                    - limit
                    - prev_cursor
                    - next_cursor
                    - total_count
                    - total_pages
                    - current_page
                    - per_page
                  properties:
                    cursor:
                      type:
                        - string
                        - 'null'
                    limit:
                      type: integer
                    prev_cursor:
                      type:
                        - string
                        - 'null'
                    next_cursor:
                      type:
                        - string
                        - 'null'
                    total_count:
                      type: integer
                    total_pages:
                      type: integer
                    current_page:
                      type: integer
                    per_page:
                      type: integer
            average_cv:
              type: string
              format: decimal
            total_cv:
              type: string
              format: decimal
            average_amount_base:
              type: number
            total_amount_base:
              type: number
            fulfilled_orders_count:
              type: integer
            total_count:
              description: >-
                Present with stats_calculated/message only when stats are
                skipped for large datasets (>10k orders without force_stats).
              type: integer
            stats_calculated:
              type: boolean
            message:
              type: string
    UnauthorizedResponse:
      type: object
      properties:
        message:
          type: string
      required:
        - message
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: Bearer token authentication

````