In the tables below, the Req column indicates whether a field is required:
Y = Required, N = Optional, C = Conditional on another field or product. ↳ denotes a field within a repeating group.All messages on this page include the standard header and trailer fields.
Order entry messages
NewOrderSingle (D)
Request to submit a new single-legged order.| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 1 | Account | String | Y | Trading account identifier |
| 11 | ClOrdID | String | Y | Unique client order identifier. Must be unique across all orders. |
| 55 | Symbol | String | Y | Instrument symbol (e.g., BTC-USD, ETH-USD spot; BTC-27FEB26-CDE futures). |
| 167 | SecurityType | String | Y | SPOT = SpotFUT = FuturesPERP = Perpetual futures |
| 54 | Side | Char | Y | 1 = Buy, 2 = Sell |
| 40 | OrdType | Char | Y | 1 = Market2 = Limit4 = Stop LimitD = Previously Quoted (RFQ)P = Pegged |
| 847 | TargetStrategy | Int | N | 1 = VWAP1001 = TWAP. Requires EffectiveTime and ExpireTime. |
| 59 | TimeInForce | Char | Y | 0 = Day1 = Good Till Cancel (GTC)6 = Good Till Date (GTD)3 = Immediate or Cancel (IOC)4 = Fill or Kill (FOK) |
| 60 | TransactTime | UTCTimestamp | Y | Order submission time (YYYYMMDD-HH:MM:SS.sss in UTC) |
| 38 | OrderQty | Int | N | Order quantity in base units. Provide either OrderQty or CashOrderQty. |
| 152 | CashOrderQty | Int | N | Order quantity in quote units. Provide either OrderQty or CashOrderQty. |
| 44 | Price | Price | C | Limit price. Required for Limit and Stop Limit orders. |
| 99 | StopPx | Price | C | Stop trigger price. Required for Stop Limit orders. |
| 18 | ExecInst | Char | N | A = Post only |
| 126 | ExpireTime | UTCTimestamp | C | Expiration time. Required when TimeInForce = 6 (GTD). |
| 168 | EffectiveTime | UTCTimestamp | C | Start time of an order (required for TWAP/VWAP orders). |
| 1138 | DisplayQty | Qty | N | Display quantity for iceberg orders. Only available when OrdType 2 = Limit or 4 = Stop Limit. |
| 528 | OrderCapacity | Char | N | A = Agency, P = Principal |
| 211 | PegOffsetValue | Float | C | Peg offset from the reference price. Required for Pegged (P) orders. |
| 836 | PegOffsetType | Int | C | 0 = Price1 = Basis points4 = Cumulative depth in base units. Required for Pegged orders. |
| 100 | ExDestination | Exchange | N | Execution destination / venue routing hint. |
| 117 | QuoteID | String | C | Quote identifier. Required for Previously Quoted (D) orders. |
| 120 | SettlCurrency | Currency | N | Settlement currency (spot). |
| 9821 | StpId | String | N | Self-trade prevention (STP) group identifier. |
| 8998 | IsBuyExact | Boolean | N | Spot quote-denominated buys: Y = treat CashOrderQty as the exact buy amount. |
| 8999 | IsRaiseExact | Boolean | N | Spot quote-denominated orders: Y = treat the quote amount raised as exact. |
| 957 | NoStrategyParameters | N | Number of strategy parameters (repeating group). | |
| ↳958 | StrategyParameterName | String | C | HistoricalPOV = participation rate for TWAP/VWAPWIGLevel = would-if-good price level for Peg orders |
| ↳959 | StrategyParameterType | Int | C | 14 = String |
| ↳960 | StrategyParameterValue | String | C | Strategy parameter value (decimal, e.g., 0.25) |
| 1028 | ManualOrderIndicator | Boolean | C | Y = Manual order entry, N = Automated/algorithmic. Required for FCM futures; not used for spot. |
| 1031 | CustOrderHandlingInst | String | C | W = DeskY = Electronic (default)C = Vendor provided platform billed by executing brokerG = Sponsored access via exchange APIH = Premium algorithmic trading provided by executing brokerD = Other. Required when SecurityType = FUT. |
To accept a previously returned spot RFQ quote, see RFQ.
OrderCancelRequest (F)
Request to cancel a submitted order.| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 1 | Account | String | Y | Account identifier |
| 11 | ClOrdID | String | Y | New unique client order identifier for this cancel request |
| 37 | OrderID | String | N | Exchange-assigned order ID to be canceled (from ExecutionReport) |
| 41 | OrigClOrdID | String | N | ClOrdID of the order being canceled |
| 54 | Side | Char | Y | Original order side (1 = Buy, 2 = Sell) |
| 55 | Symbol | String | Y | Instrument symbol |
| 167 | SecurityType | String | Y | SPOT, FUT, or PERP |
| 60 | TransactTime | UTCTimestamp | Y | Cancel request submission time |
| 1028 | ManualOrderIndicator | Boolean | C | Y = Manual, N = Automated. Required for FCM futures; not used for spot. |
OrderCancelReplaceRequest (G)
Request to modify a live order (amend price, quantity, or other attributes).| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 1 | Account | String | Y | Account identifier |
| 11 | ClOrdID | String | Y | New unique client order identifier for this replace request |
| 41 | OrigClOrdID | String | Y | ClOrdID of the order being replaced |
| 37 | OrderID | String | N | Exchange-assigned order ID being replaced (from ExecutionReport) |
| 55 | Symbol | String | Y | Instrument symbol |
| 167 | SecurityType | String | Y | SPOT, FUT, or PERP |
| 54 | Side | Char | Y | Order side (1 = Buy, 2 = Sell) |
| 40 | OrdType | Char | Y | 1 = Market2 = Limit4 = Stop LimitD = Previously QuotedP = Pegged |
| 60 | TransactTime | UTCTimestamp | Y | Replace request submission time |
| 38 | OrderQty | Int | N | New order quantity in base units. Provide either OrderQty or CashOrderQty. |
| 152 | CashOrderQty | Int | N | New order quantity in quote units. Provide either OrderQty or CashOrderQty. |
| 44 | Price | Price | C | New limit price. Required for Limit and Stop Limit orders. |
| 99 | StopPx | Price | C | New stop trigger price. Required for Stop Limit orders. |
| 1138 | DisplayQty | Qty | N | New display quantity for iceberg orders. |
| 126 | ExpireTime | UTCTimestamp | C | New expiration time. Required when TimeInForce = 6 (GTD). |
| 211 | PegOffsetValue | Float | C | New peg offset. Required for Pegged (P) orders. |
| 528 | OrderCapacity | Char | C | A = Agency, P = Principal. Required for FCM futures; not used for spot. |
| 582 | CustOrderCapacity | Int | C | 1 = Member trading for their own account2 = Clearing firm trading for its proprietary account3 = Member trading for another member4 = All other. Required for FCM futures. |
| 1028 | ManualOrderIndicator | Boolean | C | Y = Manual, N = Automated. Required for FCM futures; not used for spot. |
| 1031 | CustOrderHandlingInst | String | C | See NewOrderSingle. Required for FCM futures; not used for spot. |
OrderStatusRequest (H)
Queries current status of an order.| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 1 | Account | String | Y | Account identifier |
| 55 | Symbol | String | Y | Instrument symbol |
| 167 | SecurityType | String | Y | SPOT, FUT, or PERP |
| 11 | ClOrdID | String | N | Client order identifier |
| 37 | OrderID | String | N | Exchange order ID (if known) |
ExecutionReport (8)
Reports order status changes, fills, rejections, and other execution events.| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 37 | OrderID | String | Y | Exchange-assigned order identifier |
| 17 | ExecID | String | Y | Unique execution identifier assigned by exchange. Returns 0 when sent in response to OrderStatusRequest. |
| 150 | ExecType | Char | Y | A = Pending New0 = New3 = Done for Day4 = Canceled6 = Pending Cancel8 = RejectedC = ExpiredF = Trade (partial or full fill)L = Stop TriggeredI = Order Status |
| 39 | OrdStatus | Char | Y | A = Pending New0 = New1 = Partially filled2 = Filled4 = Canceled6 = Pending Cancel8 = RejectedC = Expired |
| 54 | Side | Char | Y | 1 = Buy, 2 = Sell |
| 151 | LeavesQty | Qty | Y | Quantity remaining open (OrderQty - CumQty) |
| 14 | CumQty | Qty | Y | Cumulative quantity filled |
| 6 | AvgPx | Price | Y | Average fill price across all executions |
| 55 | Symbol | String | Y | Instrument symbol |
| 167 | SecurityType | String | Y | SPOT, FUT, or PERP |
| 1 | Account | String | Y | Account identifier |
| 11 | ClOrdID | String | N | Client order identifier from the request message |
| 41 | OrigClOrdID | String | C | Original ClOrdID when responding to cancel/replace requests |
| 40 | OrdType | Char | N | 1 = Market2 = Limit4 = Stop LimitD = Previously QuotedP = Pegged |
| 59 | TimeInForce | Char | N | 0 = Day1 = GTC6 = GTD3 = IOC4 = FOK |
| 38 | OrderQty | Int | N | Original order quantity |
| 152 | CashOrderQty | Qty | N | Order quantity in quote currency |
| 44 | Price | Price | C | Limit price (if applicable) |
| 99 | StopPx | Price | C | Stop trigger price (if applicable) |
| 211 | PegOffsetValue | Float | N | Peg offset (pegged orders) |
| 836 | PegOffsetType | Int | N | Peg offset type (pegged orders) |
| 1138 | DisplayQty | Qty | N | Display quantity for iceberg orders |
| 32 | LastQty | Qty | C | Quantity filled in this execution (required when ExecType = F) |
| 31 | LastPx | Price | C | Execution price (required when ExecType = F) |
| 30 | LastMkt | String | N | Venue of execution for last fill |
| 1301 | MarketID | Exchange | N | Market/venue identifier |
| 60 | TransactTime | UTCTimestamp | N | Transaction time (YYYYMMDD-HH:MM:SS.ssssss) |
| 168 | EffectiveTime | UTCTimestamp | C | Start time of an order (TWAP/VWAP) |
| 126 | ExpireTime | UTCTimestamp | C | Expiration time (when TimeInForce = GTD) |
| 103 | OrdRejReason | Int | C | Required when ExecType = 8 (Rejected):1 = Unknown symbol2 = Exchange closed3 = Order exceeds limit4 = Too late to enter5 = Unknown order6 = Duplicate order8 = Stale order18 = Invalid price increment99 = Other (see Text) |
| 58 | Text | String | N | Rejection reason or other informational message |
| 120 | SettlCurrency | Currency | N | Settlement currency (spot) |
| 119 | SettlCurrAmt | Amt | N | Settlement currency amount (spot; feature-gated) |
| 528 | OrderCapacity | Char | N | A = Agency, P = Principal |
| 1057 | AggressorIndicator | Boolean | N | Y = Aggressor, N = Passive (for trade reporting) |
| 8002 | FilledValue | Price | N | Cumulative filled value in quote currency (spot; feature-gated) |
| 8998 | IsBuyExact | Boolean | N | Echoes the submitted IsBuyExact flag (spot; feature-gated) |
| 8999 | IsRaiseExact | Boolean | N | Echoes the submitted IsRaiseExact flag (spot; feature-gated) |
| 9821 | StpId | String | N | Self-trade prevention (STP) group identifier |
| 9823 | InternalStpId | String | N | Internal self-trade prevention identifier |
| 12 | Commission | Amt | C | The Coinbase commission incurred for this fill, in quote currency (present on fills) |
| 13 | CommType | String | C | 3 = Absolute (present on fills) |
| 136 | NoMiscFees | C | Number of MiscFees (repeating group; present on fills) | |
| ↳137 | MiscFeeAmt | Amt | C | Misc fee value |
| ↳138 | MiscFeeCurr | Currency | C | Currency of misc fee |
| ↳139 | MiscFeeType | Char | C | 1 = Regulatory8 = Markup Fee (Trading Desk Fee)4 = Exchange fees7 = Other14 = Security lending |
OrderCancelReject (9)
Sent when an OrderCancelRequest (F) or OrderCancelReplaceRequest (G) cannot be honored.| Tag | Name | Data Type | Req | Description |
|---|---|---|---|---|
| 37 | OrderID | String | Y | Exchange-assigned order identifier (0 if unknown) |
| 11 | ClOrdID | String | Y | ClOrdID of the cancel/replace request being rejected |
| 41 | OrigClOrdID | String | N | OrigClOrdID from the rejected request |
| 39 | OrdStatus | Char | Y | Current order status (see the OrdStatus code set) |
| 434 | CxlRejResponseTo | Char | Y | 1 = Order Cancel Request2 = Order Cancel/Replace Request |
| 102 | CxlRejReason | Int | N | 0 = Too late to cancel1 = Unknown order99 = Other |
| 58 | Text | String | N | Human-readable rejection reason |