> ## 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.

# Place your first order

> Submit a burn order to the Match sandbox and check its status.

A burn order redeems USDC for USD through Match's batch auction. Submissions are
asynchronous; fill results arrive after the auction cycle closes.

## Prerequisites

Before you begin, ensure that you've:

* Obtained a Circle API key with Match access
* Created a Circle Mint account and funded it with a USDC balance to cover the
  burn order
* Added a linked fiat account in Circle Mint to receive settlement proceeds

See [Funding model](/circle-match/concepts/funding-model) for how USDC is
reserved on the burn side.

## Step 1: Place the order

Send a `POST /v1/match/orders` request to create a burn order. The
`idempotencyKey` you supply becomes the `orderId` for all subsequent lookups.
Use a unique UUID v4 for each new order.

```bash theme={null}
curl -X POST https://api-sandbox.circle.com/v1/match/orders \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000",
    "orderType": "BURN",
    "amount": {
      "amount": "500.00",
      "currency": "USD"
    },
    "feeBps": "5",
    "postFillAction": "cancel",
    "sourceWalletId": "$WALLET_ID",
    "fiatAccountId": "$FIAT_ACCOUNT_ID"
  }'
```

For the full request schema and field descriptions, see
[Place order](/api-reference/circle-match/all/place-order) in the API reference.

A successful submission returns `202 Accepted`:

```json theme={null}
{
  "data": {
    "auctionId": 42,
    "orderId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "pending"
  }
}
```

The `orderId` matches the `idempotencyKey` you supplied. The `auctionId`
identifies the auction cycle your order entered.

## Step 2: Check order status

Fill is asynchronous. The `status` stays `pending` until the auction cycle
closes and matching runs. Poll `GET /v1/match/orders/{id}` using your `orderId`
to check progress.

```bash theme={null}
curl https://api-sandbox.circle.com/v1/match/orders/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer $API_KEY"
```

While the auction is still open, you'll see:

```json theme={null}
{
  "data": {
    "orderId": "550e8400-e29b-41d4-a716-446655440000",
    "auctionId": 42,
    "lineage": {
      "parentOrderId": null,
      "childOrderId": null
    },
    "orderType": "BURN",
    "amount": { "amount": "500.00", "currency": "USD" },
    "feeBps": "5",
    "postFillAction": "cancel",
    "status": "pending",
    "createdAt": "2026-08-17T00:00:00Z",
    "updatedAt": "2026-08-17T00:00:00Z",
    "sourceWalletId": "1000001234",
    "fiatAccountId": "550e8400-e29b-41d4-a716-446655440001",
    "fill": null
  }
}
```

Once the auction clears, `status` transitions to one of the following terminal
or settlement values:

| Status         | Meaning                                                                    |
| -------------- | -------------------------------------------------------------------------- |
| `settling`     | Matched; funds are moving to settlement                                    |
| `filled`       | The full order amount matched                                              |
| `partial_fill` | Only part of the order matched                                             |
| `unfilled`     | The auction closed with no match                                           |
| `cancelled`    | The order was cancelled before it matched                                  |
| `failed`       | USDC funding was not received before the auction closed; no trade occurred |

After a match, the response includes a `fill` object with the cleared amounts
and fee:

```json theme={null}
{
  "data": {
    "orderId": "550e8400-e29b-41d4-a716-446655440000",
    "auctionId": 42,
    "lineage": {
      "parentOrderId": null,
      "childOrderId": null
    },
    "orderType": "BURN",
    "amount": { "amount": "500.00", "currency": "USD" },
    "feeBps": "5",
    "postFillAction": "cancel",
    "status": "filled",
    "createdAt": "2026-08-17T00:00:00Z",
    "updatedAt": "2026-08-17T00:05:00Z",
    "sourceWalletId": "1000001234",
    "fiatAccountId": "550e8400-e29b-41d4-a716-446655440001",
    "fill": {
      "filledAmount": { "amount": "500.00", "currency": "USD" },
      "unfilledAmount": { "amount": "0.00", "currency": "USD" },
      "clearingFeeBps": "3",
      "matchedAt": "2026-08-17T00:05:00Z"
    }
  }
}
```

`clearingFeeBps` reflects the actual fee applied at settlement, which will not
exceed your `feeBps` limit.

<Note>
  As an alternative to polling, subscribe to the WebSocket account channel to
  receive real-time order status events without repeated HTTP requests.
</Note>
