> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.crisscross.money/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.crisscross.money/_mcp/server.

# An order reached the `filled` status - the trade is complete and balances are updated.

POST 

Reference: https://docs.crisscross.money/api-reference/exchange/webhooks/orders/order-filled

## Request

### Payload

- `eventType` (string, required) — The event type, e.g. `order.filled`.
- `timestamp` (datetime, required) — When the event was generated.
- `payload` (Order, required)

## Types

### Order

- `quoteId` (string, required) — Reference to the originating quote. Quote remains retrievable.
- `status` (enum, required) — - `pending` — the order has been created and is in progress. - `filled` — the order exists and the rate is locked; from the client's perspective the trade is done. Sourcing and settlement run asynchronously and are internal detail, not surfaced here. - `cancelled` — the order was cancelled.
  - Allowed values: `pending`, `filled`, `cancelled`
- `sellCurrency` (string, required)
- `buyCurrency` (string, required)
- `sellAmount` (string, required) — Locked at acceptance.
- `buyAmount` (string, required) — Locked at acceptance.
- `rate` (string, required) — Locked at acceptance.
- `createdAt` (datetime, required) — When the order was created.
- `updatedAt` (datetime, required) — When the order was last updated.
- `orderId` (string, optional) — Absent on the `order.pending` event: that event fires when a manual trade is locked, and the resulting order is not addressable through the public orders API, so no usable id can be surfaced. Present on `order.filled` and `order.cancelled`.