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

# Get an order

> Returns full detail for a single order, including lineage fields for tracing rolled orders and a fill object that is populated after matching. Follow `lineage.parentOrderId` backward or `lineage.childOrderId` forward to reconstruct the full chain for a rolled order.



## OpenAPI

````yaml openapi/match.yaml get /v1/match/orders/{id}
openapi: 3.1.0
info:
  title: Circle Match API
  description: >
    The Circle Match API provides endpoints for Circle Match, a periodic

    batch-auction venue that coordinates USDC burn demand with USDC mint demand

    for eligible Circle Mint customers.


    ## Authentication


    All REST endpoints require a Bearer token:


    ```

    Authorization: Bearer <API_KEY>

    ```


    ## WebSocket


    Real-time auction state and account events are delivered over a persistent

    WebSocket connection at `wss://api.circle.com/v1/match/ws` (production) or

    `wss://api-sandbox.circle.com/v1/match/ws` (sandbox).


    Obtain a short-lived ticket with `POST /v1/match/ws/ticket`, then pass two

    `Sec-WebSocket-Protocol` values in the upgrade request:


    - `circle-match.v1`

    - `ticket.<jwt>` — the ticket value, prefixed with `ticket.`


    After connection, subscribe to the `market` channel for public auction state

    or the `account` channel for private order and fill events. See the Circle

    Match WebSocket reference for the full protocol specification.


    ## Error codes


    | Code   | HTTP | Description |

    |--------|------|-------------|

    | 136001 | 400  | Auction locked — cancellations and less-competitive fee
    changes not accepted |

    | 136002 | 400  | Auction settling — try again after settlement completes |

    | 137001 | 400  | Insufficient available balance |

    | 137002 | 400  | Invalid wallet |

    | 137003 | 400  | Wallet not found |

    | 137004 | 409  | Idempotency key reused with different parameters |

    | 137005 | 400  | Fee change not more competitive during lock window |

    | 137006 | 409  | Self-match violation — open order on opposite side of same
    auction |

    | 137007 | 400  | Invalid fiat account |

    | 137008 | 400  | Maximum orders per auction reached |

    | 137009 | 400  | Transaction limit exceeded |

    | 137010 | 400  | Entity not eligible for Circle Match |

    | 138001 | 400  | Withdrawal amount exceeds available balance |

    | 138002 | 400  | Withdrawal request invalid |

    | 138003 | 404  | No Circle Match account found for this entity |

    | 138004 | 400  | Invalid withdrawal destination |

    | 139001 | 400  | Circle Match wallet invalid |
  version: 1.0.0
servers:
  - url: https://api.circle.com
    description: Production
  - url: https://api-sandbox.circle.com
    description: Sandbox
security:
  - BearerAuth: []
tags:
  - name: Account
    description: Account balance and activity summary
  - name: Orders
    description: Place, list, retrieve, cancel, and modify orders
  - name: Withdrawals
    description: Withdraw restricted mint-side USDC
  - name: WebSocket
    description: Obtain a WebSocket connection ticket
paths:
  /v1/match/orders/{id}:
    get:
      tags:
        - Orders
      summary: Get an order
      description: >-
        Returns full detail for a single order, including lineage fields for
        tracing rolled orders and a fill object that is populated after
        matching. Follow `lineage.parentOrderId` backward or
        `lineage.childOrderId` forward to reconstruct the full chain for a
        rolled order.
      operationId: getOrder
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: The orderId (UUID) to retrieve
          example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '200':
          description: Order detail
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Order'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Order:
      description: A Circle Match order — either a BURN (USDC-to-USD) or MINT (USD-to-USDC)
      oneOf:
        - $ref: '#/components/schemas/BurnOrder'
        - $ref: '#/components/schemas/MintOrder'
      discriminator:
        propertyName: orderType
        mapping:
          BURN:
            $ref: '#/components/schemas/BurnOrder'
          MINT:
            $ref: '#/components/schemas/MintOrder'
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          description: Circle error code
          example: 137001
        message:
          type: string
          description: Human-readable error description
          example: Insufficient available balance
    BurnOrder:
      description: A BURN order that redeems USDC for USD
      allOf:
        - $ref: '#/components/schemas/OrderBase'
        - type: object
          required:
            - sourceWalletId
            - fiatAccountId
          properties:
            orderType:
              type: string
              enum:
                - BURN
            sourceWalletId:
              type: string
              description: Circle Mint wallet ID that funded the burn
              example: '1000001234'
            fiatAccountId:
              type: string
              format: uuid
              description: Fiat account that receives settlement proceeds
              example: 550e8400-e29b-41d4-a716-446655440001
    MintOrder:
      description: A MINT order that mints USDC from USD
      allOf:
        - $ref: '#/components/schemas/OrderBase'
        - type: object
          properties:
            orderType:
              type: string
              enum:
                - MINT
            sourceWalletId:
              oneOf:
                - type: string
                - type: 'null'
              description: >-
                Always null for MINT orders. Present in the response because the
                Go server marshals the nil pointer as an explicit null key.
              example: null
            fiatAccountId:
              oneOf:
                - type: string
                - type: 'null'
              description: >-
                Always null for MINT orders. Present in the response because the
                Go server marshals the nil pointer as an explicit null key.
              example: null
    OrderBase:
      type: object
      required:
        - orderId
        - auctionId
        - lineage
        - orderType
        - amount
        - postFillAction
        - status
        - createdAt
        - updatedAt
        - fill
      properties:
        orderId:
          type: string
          format: uuid
          description: >-
            Unique order identifier; matches the idempotencyKey from the create
            request
          example: 550e8400-e29b-41d4-a716-446655440000
        auctionId:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Identifier of the auction cycle this order entered. Null before the
            order is admitted to an auction.
          example: 42
        lineage:
          $ref: '#/components/schemas/OrderLineage'
        orderType:
          $ref: '#/components/schemas/OrderType'
        amount:
          $ref: '#/components/schemas/Money'
        feeBps:
          oneOf:
            - type: string
            - type: 'null'
          description: >-
            Fee limit in basis points. For BURN orders: maximum fee willing to
            pay. For MINT orders: minimum rebate required. Null for market
            orders.
          example: '5'
        postFillAction:
          $ref: '#/components/schemas/PostFillAction'
        status:
          $ref: '#/components/schemas/OrderStatus'
        createdAt:
          type: string
          format: date-time
          example: '2026-08-17T00:00:00Z'
        updatedAt:
          type: string
          format: date-time
          example: '2026-08-17T00:05:00Z'
        fill:
          oneOf:
            - $ref: '#/components/schemas/OrderFill'
            - type: 'null'
          description: Fill detail. Null until the order is matched.
    OrderLineage:
      type: object
      required:
        - parentOrderId
        - childOrderId
      properties:
        parentOrderId:
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
          description: >-
            UUID of the order this rolled from. Null if this is the original
            order.
          example: null
        childOrderId:
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
          description: >-
            UUID of the order this rolled into. Null if not yet rolled or if
            cancelled.
          example: null
    OrderType:
      type: string
      description: Whether this is a BURN (USDC-to-USD) or MINT (USD-to-USDC) order
      enum:
        - BURN
        - MINT
    Money:
      type: object
      description: A monetary amount with its currency
      required:
        - amount
        - currency
      properties:
        amount:
          type: string
          description: Decimal amount as a string, rounded to 2 decimal places
          example: '500.00'
        currency:
          type: string
          description: ISO 4217 currency code
          example: USD
    PostFillAction:
      type: string
      description: |
        Action to take on unfilled remainder after an auction cycle closes.
        - `roll`: Carry remainder into the next auction as a new linked order.
        - `fallback`: Route remainder to standard Circle Mint.
        - `cancel`: Drop the unfilled remainder.
      enum:
        - roll
        - fallback
        - cancel
    OrderStatus:
      type: string
      description: >
        Current lifecycle state of the order.

        - `pending`: Accepted and resting in the open auction.

        - `settling`: The auction has cleared; funds are moving.

        - `filled`: Fully matched and settled.

        - `partial_fill`: Partially matched; unfilled remainder handled per
        `postFillAction`.

        - `unfilled`: No fill received; handled per `postFillAction`.

        - `cancelled`: Cancelled before clearing or dropped by a `cancel`
        post-fill election.

        - `failed`: Settlement could not be completed.
      enum:
        - pending
        - settling
        - filled
        - partial_fill
        - unfilled
        - cancelled
        - failed
    OrderFill:
      type: object
      required:
        - filledAmount
        - unfilledAmount
        - clearingFeeBps
        - matchedAt
      properties:
        filledAmount:
          $ref: '#/components/schemas/Money'
        unfilledAmount:
          $ref: '#/components/schemas/Money'
        clearingFeeBps:
          type: string
          description: Actual clearing fee applied at settlement, in basis points
          example: '3'
        matchedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the auction cleared
          example: '2026-08-17T00:05:00Z'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````