Real-time push updates on the status of sub-orders generated by algo strategies. A TWAP or VWAP order creates multiple sub-orders (slices) during execution — each slice gets its own state updates on the SUB_ORDER channel. Pushed automatically after login — no explicit subscription required.
Push Message
{
"channel": "SUB_ORDER",
"instId": "BINANCE_PERP_ETH_USDT",
"data": {
"portfolioId": "1730798094087000",
"orderId": "1735613056910000",
"algoOrderId": "674712518659",
"clientOrderId": "2024123110441600",
"exchangeType": "BINANCE",
"businessType": "PERP",
"sym": "BINANCE_PERP_ETH_USDT",
"limitPrice": "3343.35923485",
"orderQty": "0.01",
"side": "BUY",
"orderType": "DMA",
"exchangeOrderType": "MARKET",
"timeInForce": "GTC",
"executedQty": "0",
"orderState": "OPEN",
"updateAt": "1735613056925",
"createAt": "1735613056910",
"leverage": "3"
}
}
| Field | Type | Description |
|---|---|---|
channel | String | Always SUB_ORDER. |
instId | String | Trading pair identifier. |
data | Object | Sub-order details. |
> portfolioId | String | Portfolio ID the sub-order belongs to. |
> orderId | String | Sub-order ID. |
> algoOrderId | String | Parent algo order ID. |
> clientOrderId | String | Your own order ID, if provided. |
> exchangeType | String | Exchange: BINANCE or OKX. |
> businessType | String | SPOT, PERP, or MARGIN. |
> sym | String | Trading pair. |
> limitPrice | String | Order price. |
> orderQty | String | Order quantity. OKX: number of contracts. Binance: coin amount. |
> quoteOrderQty | String | Order amount in quote currency. For spot market buy orders only. |
> side | String | BUY or SELL. |
> orderType | String | Sub-order type. TWAP/VWAP sub-orders appear as DMA. |
> exchangeOrderType | String | Order type sent to the exchange (e.g. MARKET, LIMIT). |
> timeInForce | String | GTC (Good Till Cancel), IOC (Immediate Or Cancel), FOK (Fill Or Kill), or GTX (Post-only). |
> executedQty | String | Quantity filled. |
> executedAmount | String | Total executed amount in quote currency. |
> executedAvgPrice | String | Average execution price. |
> lastExecutedQty | String | Quantity filled in the most recent execution. |
> lastExecutedPrice | String | Price of the most recent execution. |
> lastExecutedAmount | String | Amount of the most recent execution. |
> fee | String | Transaction fee charged for this sub-order. |
> orderState | String | Sub-order state: NEW, OPEN, PARTIALLY_FILLED, FILLED, CANCELLED, REJECT, FAIL. |
> reason | String | Failure reason, if the order was rejected or failed. |
> reduceOnly | Boolean | Whether this is a reduce-only order. |
> leverage | String | Leverage multiplier applied. |
> borrowAmount | String | Amount borrowed for this order. |
> borrowAsset | String | Asset borrowed. |
> createAt | String | Sub-order creation timestamp in milliseconds. |
> updateAt | String | Last update timestamp in milliseconds. |
