Order Cancel Request (35=F)
The client sends OrderCancelRequest (35=F) to the server over TLS/TCP. This is not an HTTP request.
Cancel an open order on the order-entry session.
Provide OrderID (37) and/or OrigClOrdID (41); at least one is required. Tag 37 takes
precedence when both are supplied.
On success: server sends PendingCancel ExecutionReport (150=6, 39=6) then
Canceled ExecutionReport (150=4, 39=4). LeavesQty (151) on the Canceled report is
the open quantity at cancel time, not 0. Detect completion via OrdStatus (39) or
ExecType (150), not 151=0.
On failure: server sends OrderCancelReject (35=9). Check CxlRejReason (102) and
Text (58).
Examples (pipe-delimited FIX):
Cancel by OrigClOrdID:
8=FIX.4.4|9=132|35=F|49=0123456789abcdef0123456789abcdef|56=BITGO|34=91|52=20260618-12:46:28.424|11=cxl-ord-006|41=ord-006|60=20260618-12:46:28.424|10=XXX
Cancel by OrderID:
8=FIX.4.4|9=161|35=F|49=0123456789abcdef0123456789abcdef|56=BITGO|34=92|52=20260618-12:46:29.000|11=cxl-ord-007|37=80115a50-1542-48b7-92f9-03d99194ade3|60=20260618-12:46:29.000|10=XXX
Body Params
object
35=F) body fields.
At least one of OrderID (37) or OrigClOrdID (41) is required to identify the order; tag 37 takes precedence when both are present.
TransactTime (60) is the only unconditionally required field.-
clOrdIDstringOptional. Unique ID for this cancel request. This ID is not echoed back in the cancel ExecutionReports. -
origClOrdIDstringConditional. ClOrdID of the order to cancel; must match the ClOrdID sent in the NewOrderSingle. Required if OrderID (37) is absent. -
orderIDstringConditional. BitGo order UUID from ExecutionReport. When present, takes precedence over OrigClOrdID (41) for order resolution. -
transactTimestring requiredRequired. UTC timestamp. FormatYYYYMMDD-HH:MM:SS[.sss]. -
accountstringOptional. Must match the session account. Rejected if present and mismatched.
Responses
200
Cancel accepted. PendingCancel then Canceled ExecutionReports follow.
Response Body
object
ExecutionReport (35=8). Server → client. Lifecycle events for NewOrderSingle, cancels,
fills, rejects, and OrderStatusRequest (150=I).
Correlate with ClOrdID (11) and OrderID (37). ExecType=F is used for all fills.
Use OrdStatus (39) and LeavesQty (151) for working vs terminal state — not 150=F
alone. Terminal Filled (39=2, typically 151=0) is usually on the following Order
Status report (150=I), not on the last fill.
-
accountstringOptional Trading account ID (Go account ID) -
avgPxstring requiredRequired. Average fill price (0if unfilled). -
clOrdIDstring requiredRequired. Client order id.NONEon cancel reports (PendingCancel / Canceled) and when the order has no client id. -
cumQtystring requiredRequired. Total quantity filled so far. -
currencystringOptional. Quantity currency for tag 38. -
execIDstring requiredRequired. Unique id for this ExecutionReport. -
lastPxstringConditional. This fill's price. Present only when ExecType = F (Trade). Omitted otherwise. -
lastQtystringConditional. This fill's quantity. Present only when ExecType = F (Trade). Omitted otherwise. -
orderIDstring requiredRequired. BitGo order UUID.NONEon some reject reports. -
orderQtystringOptional. Original order quantity echoed from the NewOrderSingle. -
ordStatusstring enum requiredRequired. Current order state:APending New,0New,1Partially Filled,2Filled,4Canceled,6Pending Cancel,8Rejected.012468A -
ordTypestring enumOptional. Echoed from the original NewOrderSingle.1234 -
origClOrdIDstringOptional / Conditional. Set on cancel-related ERs to the original NOS ClOrdID. -
pricestringOptional. Limit price echoed from the original NewOrderSingle. -
sidestring enum requiredRequired.1Buy,2Sell.7Undisclosed may appear on some reject reports.127 -
symbolstring requiredRequired. Product echoed from the NewOrderSingle.N/Aon some reject reports. -
textstringOptional / Conditional. Human-readable reject detail. Present on rejects (150=8). -
timeInForcestring enumOptional. Echoed from the original NewOrderSingle.1346 -
transactTimestring requiredRequired. UTC business timestamp for this report. -
stopPxstringOptional. Stop/trigger price echoed from the original NewOrderSingle. -
ordRejReasoninteger enumConditional. Present only when ExecType = 8 (Rejected).1Unknown symbol,2Market unavailable,3OrderExceedsLimit,6Duplicate ClOrdID,15UnknownAccount,99Other (see Text).12361599 -
execTypestring enum requiredRequired. Event type:APendingNew,0New,FTrade (partial or full),6PendingCancel,4Canceled,8Rejected,IOrder Status (response to35=H, and terminal status summary after a full fill).0468AFI -
leavesQtystring requiredRequired. Quantity still open. Use together withOrdStatus(39) for working vs terminal state. On terminal Canceled reports (150=4/39=4) this stays at the open quantity at cancel time; it is not reset to0(39=4is canceled even when151>0). On fills,151=0with39=1is not yet terminal Filled — wait for39=2(typically on150=I). -
effectiveTimestringOptional. Scheduled activation time echoed from NOS. -
grossTradeAmtstringOptional. Cumulative filled quote quantity (equivalent to RESTfilledQuoteQuantity). -
targetStrategystring enumOptional. Algo strategy echoed from the original order (TTWAP,SSteadyPace).TS -
noStrategyParametersintegerOptional. Strategy param group count echoed from NOS for algo orders. -
strategyParameterNamestringOptional. Parameter name within group 957. -
strategyParameterTypestring enumOptional. Populated by the server on echoed strategy parameters:1= Int,6= Float,14= String, based on the parameter's inferred type.1614 -
strategyParameterValuestringOptional. Parameter value within group 957. -
fundingTypestring enumOptional.1Funded,2Margin. Echoed from the original order.12
default
Cancel refused. The server responds with OrderCancelReject (35=9).
35=9).Response Body
object
35=9). Server → client when OrderCancelRequest cannot be fulfilled.
CxlRejResponseTo (434) is always 1 (OrderCancelRequest).-
accountstringOptional. Echoed when available (inbound cancel Account or session Go Account ID). Omitted when empty. -
orderIDstring requiredRequired. Echoed from the cancel request, orNONEwhen absent. -
clOrdIDstringOptional. Echoed from the cancel request. -
origClOrdIDstringOptional. Echoed from the cancel request (NONEwhen empty). -
ordStatusstring enum requiredRequired. Current order status. Often8on rejects; real status when102=0(too late).012468A -
textstring requiredRequired. Human-readable rejection reason. -
transactTimestring requiredRequired. Echoed from the cancel request when present. -
cxlRejReasoninteger enum requiredRequired.0Too late to cancel (already filled/canceled/pending cancel).1Unknown order.99Other (system error, account mismatch, non-cancelable state; see Text).0199 -
cxlRejResponseTostring enum requiredRequired. Always1(OrderCancelRequest).1