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

# List customer orders

> Returns the first page of orders for a specific customer with defaults (pageSize 30,
pageNumber 0, no filters). Use the POST variant for pagination and date filtering.

Returns on/off-ramp orders only — swaps are not included. Track swaps via `swap_updated` webhooks.



## OpenAPI

````yaml /openapi.json get /ramp/customer/{customer_id}/orders
openapi: 3.1.0
info:
  title: Etherfuse FX API
  description: Partner-facing ramp API for onramps, offramps, swaps, and KYC.
  license:
    name: Proprietary
  version: 1.0.0
servers:
  - url: https://api.sand.etherfuse.com
    description: Sandbox
security:
  - ApiKeyAuth: []
tags:
  - name: Authentication
    description: >-
      Partner JWT authentication — exchange a JWT for an access token, or launch
      a user into the app.
  - name: Lookup
    description: >-
      Public reference data: exchange rates, stablebonds, bond costs, country
      codes.
  - name: Assets
    description: Rampable stablecoins and stablebonds available per blockchain.
  - name: Onboarding
    description: Hosted and programmatic customer onboarding.
  - name: Agreements
    description: Legal agreement acceptance during onboarding.
  - name: Bank Accounts
    description: Register and retrieve customer bank accounts.
  - name: Quotes
    description: Price quotes for onramps, offramps, and swaps.
  - name: Orders
    description: Create, track, and manage ramp orders.
  - name: Swaps
    description: Crypto-to-crypto swaps.
  - name: Sponsored
    description: Token approvals for sponsored (gasless) offramps.
  - name: Customers
    description: Customer (child-organization) records.
  - name: Wallets
    description: Register and manage customer wallets.
  - name: KYC
    description: Submit and check customer KYC status.
  - name: Webhooks
    description: Event notification subscriptions.
  - name: Organizations
    description: Organization identity, child orgs, and partner fees.
paths:
  /ramp/customer/{customer_id}/orders:
    get:
      tags:
        - Orders
      summary: List customer orders
      description: >-
        Returns the first page of orders for a specific customer with defaults
        (pageSize 30,

        pageNumber 0, no filters). Use the POST variant for pagination and date
        filtering.


        Returns on/off-ramp orders only — swaps are not included. Track swaps
        via `swap_updated` webhooks.
      operationId: list_customer_orders
      parameters:
        - name: customer_id
          in: path
          description: >-
            The customer (child org) ID. Must belong to the caller's
            organization or a direct child.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Paginated orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedOrders'
        '404':
          description: Customer not found
components:
  schemas:
    PagedOrders:
      type: object
      description: A page of orders.
      required:
        - items
        - totalItems
        - pageSize
        - pageNumber
        - totalPages
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Order'
          description: The items on this page.
        next:
          type:
            - string
            - 'null'
          description: URL to fetch the next page of results, if available.
        pageNumber:
          type: integer
          description: Zero-based index of this page.
          example: 0
          minimum: 0
        pageSize:
          type: integer
          description: Number of items per page.
          example: 30
          minimum: 0
        totalItems:
          type: integer
          description: Total number of items across all pages.
          example: 42
          minimum: 0
        totalPages:
          type: integer
          description: Total number of pages.
          example: 2
          minimum: 0
    Order:
      type: object
      description: Order representation for WebSocket messages
      required:
        - orderId
        - customerId
        - createdAt
        - updatedAt
        - walletId
        - bankAccountId
        - orderType
        - status
        - statusPage
      properties:
        amountInFiat:
          type:
            - string
            - 'null'
          description: Amount in fiat currency (e.g. MXN).
        amountInTokens:
          type:
            - string
            - 'null'
          description: Amount in crypto tokens.
        bankAccountId:
          type: string
          format: uuid
          description: ID of the bank account used for the order.
        blockchain:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/Blockchain'
              description: Blockchain the order settles on.
        burnTransaction:
          type:
            - string
            - 'null'
          description: >-
            Encoded transaction for the user to sign (bring-your-own-wallet
            offramp orders). Embedded wallets omit this and instead surface
            `approval` on the order; sign via POST
            /ramp/order/{order_id}/approvals. See [Embedded
            Wallets](/guides/embedded-wallets).
        completedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp when the order was completed.
        confirmedTxSignature:
          type:
            - string
            - 'null'
          description: >-
            Blockchain transaction hash, set once the crypto transfer is
            confirmed.
        trackingCode:
          type:
            - string
            - 'null'
          description: >-
            SPEI tracking key (clave de rastreo) for the order's fiat transfer.
            On onramps this is the incoming deposit's clave; on offramps it is
            the outgoing payout's clave. Present once the SPEI transfer settles
            — use it to look up the CEP (Comprobante Electrónico de Pago)
            receipt. Absent until then.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the order was created.
        customerId:
          type: string
          format: uuid
          description: >-
            Organization ID associated with the order. In webhook payloads, this
            is the

            recipient organization's ID.
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp when the order was deleted (if applicable).
        depositAccountHolder:
          type:
            - string
            - 'null'
          description: >-
            Account holder name for the deposit CLABE. Hardcoded to Etherfuse MX
            for now.
        depositBankName:
          type:
            - string
            - 'null'
          description: Name of the bank that holds the deposit CLABE.
        depositClabe:
          type:
            - string
            - 'null'
          description: CLABE number for deposit (onramp orders only).
        etherfuseMidMarketRate:
          type:
            - string
            - 'null'
          description: Raw mid-market rate before fees
        exchangeRate:
          type:
            - string
            - 'null'
          description: Fee-inclusive exchange rate between source and target assets
        feeAmountInFiat:
          type:
            - string
            - 'null'
          description: >-
            Quoted fee amount in fiat currency, derived from fee_bps × order
            amount.
        feeBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Fee in basis points (e.g., 20 = 0.20%). Always present when order
            was created with a quote.
          minimum: 0
        isAnchorOrder:
          type:
            - boolean
            - 'null'
          description: Whether this is an anchor order (SEP-24 mode — no pre-signed TX)
        memo:
          type:
            - string
            - 'null'
          description: Optional memo for the order.
        orderId:
          type: string
          format: uuid
          description: Unique identifier for the order.
        orderType:
          $ref: '#/components/schemas/OrderType'
          description: Type of the order (onramp/offramp/swap).
        partnerFeeAmountFiat:
          type:
            - string
            - 'null'
          description: >-
            Partner fee amount collected in fiat currency, derived from the
            total fee using the

            partner fee ratio.
        partnerFeeBps:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            Partner fee in basis points applied to this order (e.g. 100 =
            1.00%). Only present

            when a partner fee was configured at quote time.
        partnerFeeStatus:
          type:
            - string
            - 'null'
          description: >-
            Disbursement status of the partner fee. Only present when
            `partnerFeeBps` > 0:

            `none` — order not yet completed; `pending` — order completed, fee
            awaiting offline

            disbursement; `disbursed` — partner fee has been paid out.
        sourceAsset:
          type:
            - string
            - 'null'
          description: >-
            Source asset identifier. For onramps this is the fiat currency (e.g.
            `MXN`); for

            offramps it is the crypto asset identifier.
        status:
          $ref: '#/components/schemas/OrderStatus'
          description: >-
            Current status of the order. For offramps, `completed` means fiat
            has been sent to

            the customer; `finalized` means the reversal window has passed and
            the funds can no

            longer be returned.
        statusPage:
          type: string
          description: >-
            URL to an Etherfuse-branded page where the customer can view order
            status and sign

            transactions (for offramps). Can be used as an alternative to
            handling transaction

            signing in your own application.
        approval:
          type:
            - object
            - 'null'
          description: >-
            Pending embedded-wallet approval. Present only when the order is
            awaiting the owner's signature. The owner signs `approvalMessage`
            and submits it to POST /ramp/order/{order_id}/approvals. Re-read the
            order right before signing: `approvalMessage` embeds a timestamp
            that re-mints on each read. Delivered on the order read, the
            `order_updated` webhook, and the WebSocket stream.
          properties:
            approvalMessageId:
              type: string
              format: uuid
              description: >-
                Identifies the proposal being approved. Echoed back on submit so
                a superseded proposal (re-proposed on expiry) is rejected as
                stale.
            approvalMessage:
              type: string
              description: >-
                The exact bytes the owner signs with their key. Built fresh on
                each read so the request is current when signed.
            summary:
              type: string
              description: >-
                Human-readable description of what is being approved (e.g.
                `Claim 99.61 CETES`). Present only when set.
        stellarClaimTransaction:
          type:
            - string
            - 'null'
          description: >-
            Unsigned XDR (base64) for the claim TX (ChangeTrust +
            ClaimClaimableBalance).

            The user signs this and submits to Horizon to receive their tokens.
        stellarClaimableBalanceId:
          type:
            - string
            - 'null'
          description: >-
            Stellar claimable balance ID (hex). Present when tokens were
            delivered via claimable balance.

            The user must sign a claim TX to receive their tokens.
        targetAsset:
          type:
            - string
            - 'null'
          description: >-
            Target asset identifier. For onramps this is the crypto asset
            identifier; for

            offramps it is the fiat currency (e.g. `MXN`).
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the order was last updated.
        walletId:
          type: string
          format: uuid
          description: ID of the wallet used for the order.
        withdrawAnchorAccount:
          type:
            - string
            - 'null'
          description: Anchor destination account for SEP-24 anchor offramps
        withdrawMemo:
          type:
            - string
            - 'null'
          description: Memo to include in the anchor payment (derived from transaction_id)
        withdrawMemoType:
          type:
            - string
            - 'null'
          description: Memo type for the anchor payment (always "hash" for anchor orders)
      example:
        amountInFiat: '1000.00'
        amountInTokens: '58.42'
        bankAccountId: b2c3d4e5-f6a7-8901-bcde-f12345678901
        blockchain: stellar
        completedAt: '2026-05-02T09:16:30Z'
        createdAt: '2026-05-02T09:15:00Z'
        customerId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        depositAccountHolder: Etherfuse MX
        depositBankName: Example Bank
        depositClabe: '646180157000000004'
        etherfuseMidMarketRate: '17.15'
        exchangeRate: '17.12'
        feeAmountInFiat: '2.00'
        feeBps: 20
        orderId: 7b9c1e2d-3f4a-5b6c-7d8e-9f0a1b2c3d4e
        orderType: onramp
        sourceAsset: MXN
        status: completed
        statusPage: https://pay.etherfuse.com/order/7b9c1e2d-3f4a-5b6c-7d8e-9f0a1b2c3d4e
        stellarClaimTransaction: AAAAAgAAAABk...base64_xdr...
        stellarClaimableBalanceId: 00000000abc1230000000000000000000000000000000000000000000000000000
        targetAsset: USDC:GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5
        updatedAt: '2026-05-02T09:16:30Z'
        walletId: c3d4e5f6-a7b8-9012-cdef-123456789012
    Blockchain:
      type: string
      description: |-
        Canonical blockchain enum for API serialization.
        Use this type for JSON APIs and WebSocket messages.
        For database storage, convert to `BlockchainType`.
      enum:
        - stellar
        - solana
        - base
        - polygon
        - monad
    OrderType:
      type: string
      description: Order type for JSON serialization in WebSocket messages
      enum:
        - onramp
        - offramp
    OrderStatus:
      type: string
      description: Order status for JSON serialization in WebSocket messages
      enum:
        - created
        - funded
        - completed
        - failed
        - refunded
        - canceled
        - finalized
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key sent in the Authorization header.

````