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

# Order Filled Notifications

#### Message — Complete Fill

```json theme={null}
{
    "resultType": "completeFillOrder",
    "market": "BTC-USDT",
    "data": {
        "statusCode": 200,
        "body": "order filled",
        "order": {
            "market": "BTC-USDT",
            "orderId": "01JGPRJC7KHY8GP4FT6WRQG193",
            "orderType": "sell",
            "tradeType": "limit",
            "price": "98491.86060236",
            "quantity": "0",
            "filledQuantity": "1",
            "leverage": "1",
            "createdAt": 1735930753267,
            "updatedAt": 1735930754142,
            "orderStatus": "active",
            "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
            "reduceOnly": false,
            "postOnly": false,
            "avgFillPrice": "98491.86060236"
        }
    }
}
```

| Field                        | Type    | Required | Description                           |
| ---------------------------- | ------- | -------- | ------------------------------------- |
| `resultType`                 | string  | Yes      | `completeFillOrder`                   |
| `market`                     | string  | Yes      | Market name                           |
| `data.statusCode`            | number  | Yes      | `200`                                 |
| `data.body`                  | string  | Yes      | Status message                        |
| `data.order.market`          | string  | Yes      | Market name                           |
| `data.order.orderId`         | string  | Yes      | Unique identifier for the order       |
| `data.order.orderType`       | string  | Yes      | Order side: `buy` or `sell`           |
| `data.order.tradeType`       | string  | Yes      | Order type: `limit` or `market`       |
| `data.order.price`           | string  | Yes      | Price used                            |
| `data.order.quantity`        | string  | Yes      | Remaining quantity                    |
| `data.order.filledQuantity`  | string  | Yes      | Filled quantity                       |
| `data.order.leverage`        | string  | Yes      | Leverage used at order creation       |
| `data.order.createdAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.updatedAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.orderStatus`     | string  | Yes      | Status at time of fill                |
| `data.order.clientRequestId` | string  | No       | Client-generated UUID for correlation |
| `data.order.reduceOnly`      | boolean | Yes      | Reduce-only flag                      |
| `data.order.postOnly`        | boolean | Yes      | Maker-only creation flag              |
| `data.order.avgFillPrice`    | string  | No       | Average price across fills            |

#### Message — Partial Fill

```json theme={null}
{
    "resultType": "partialFillOrder",
    "market": "ETH-USDT",
    "data": {
        "statusCode": 200,
        "body": "order partially filled",
        "order": {
            "market": "ETH-USDT",
            "orderId": "01JGPS25KMV7R404DY4WEMG6GD",
            "orderType": "buy",
            "tradeType": "limit",
            "price": "3600",
            "quantity": "9.5",
            "filledQuantity": "0.04",
            "leverage": "1",
            "createdAt": 1735931270772,
            "updatedAt": 1735931616903,
            "orderStatus": "active",
            "clientRequestId": "0835bf3e-4a20-41f0-908d-8213f2b7a285",
            "reduceOnly": false,
            "postOnly": true,
            "avgFillPrice": "3600"
        }
    }
}
```

| Field                        | Type    | Required | Description                           |
| ---------------------------- | ------- | -------- | ------------------------------------- |
| `resultType`                 | string  | Yes      | `partialFillOrder`                    |
| `market`                     | string  | Yes      | Market name                           |
| `data.statusCode`            | number  | Yes      | `200`                                 |
| `data.body`                  | string  | Yes      | Status message                        |
| `data.order.market`          | string  | Yes      | Market name                           |
| `data.order.orderId`         | string  | Yes      | Unique identifier for the order       |
| `data.order.orderType`       | string  | Yes      | Order side: `buy` or `sell`           |
| `data.order.tradeType`       | string  | Yes      | Order type: `limit` or `market`       |
| `data.order.price`           | string  | Yes      | Price used                            |
| `data.order.quantity`        | string  | Yes      | Remaining quantity                    |
| `data.order.filledQuantity`  | string  | Yes      | Filled quantity                       |
| `data.order.leverage`        | string  | Yes      | Leverage used at order creation       |
| `data.order.createdAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.updatedAt`       | number  | Yes      | Milliseconds since epoch              |
| `data.order.orderStatus`     | string  | Yes      | Status at time of partial fill        |
| `data.order.clientRequestId` | string  | No       | Client-generated UUID for correlation |
| `data.order.reduceOnly`      | boolean | Yes      | Reduce-only flag                      |
| `data.order.postOnly`        | boolean | Yes      | Maker-only creation flag              |
| `data.order.avgFillPrice`    | string  | No       | Average price across fills            |
