FIXOrders FIX

FIXMsgType 35=8
FIX 4.4 Gateway TLS/TCP

The server sends ExecutionReport (35=8) to the client over TLS/TCP. This is not an HTTP response.

Sent in response to New Order Single, Order Cancel Request, and Order Status Request. Also sent unsolicited for fills and terminal state transitions.

Exec types (tag 150):

ExecType Name Description
A PendingNew Order received, not yet active
0 New Order live with no fills
F Trade Fill (partial or completing). Use OrdStatus (39) and LeavesQty (151) for working vs terminal state — not 150=F alone. Completing fill often still 39=1 with 151=0; terminal Filled (39=2) typically on following 150=I
6 PendingCancel Cancel request received, awaiting confirmation
4 Canceled Order canceled (may include partial fills)
8 Rejected Order rejected; see OrdRejReason (103) and Text (58)
I Order Status Response to OrderStatusRequest (35=H). Also sent as a terminal status summary after the order is fully filled (following fill reports with 150=F).

Fill reports (150=F) include lastQty (32) and lastPx (31) for the individual fill, plus running totals on cumQty (14) and avgPx (6). Both partial and completing fills use 150=F. Use OrdStatus (39) and LeavesQty (151) for working vs terminal state — not ExecType alone. The last fill often still reports 39=1 even when 151=0; terminal Filled (39=2, typically with 151=0) arrives on the following Order Status report (150=I), not on the fill itself.

Reject reports (150=8, 39=8) include ordRejReason (103) and text (58).

Cancel reports: LeavesQty (151) on the Canceled report (150=4) stays at the open quantity at cancel time; it is not reset to 0. Use OrdStatus (39) together with LeavesQty (151) for terminal-state detection — 39=4 is canceled even when 151 > 0.

OrdStatus (tag 39):

Value Name
A Pending New
0 New
1 Partially Filled
2 Filled
4 Canceled
6 Pending Cancel
8 Rejected

OrdRejReason (tag 103) on rejects: 1 Unknown symbol, 2 Market unavailable, 3 OrderExceedsLimit, 6 Duplicate ClOrdID, 15 UnknownAccount, 99 Other (see Text).

Message fields

TagFieldRequiredDescription
1 Account Optional

Optional Trading account ID (Go account ID)

6 AvgPx Required

Required. Average fill price (0 if unfilled).

11 ClOrdID Required

Required. Client order id. NONE on cancel reports (PendingCancel / Canceled) and when the order has no client id.

14 CumQty Required

Required. Total quantity filled so far.

15 Currency Optional

Optional. Quantity currency for tag 38.

17 ExecID Required

Required. Unique id for this ExecutionReport.

31 LastPx Optional

Conditional. This fill's price. Present only when ExecType = F (Trade). Omitted otherwise.

32 LastQty Optional

Conditional. This fill's quantity. Present only when ExecType = F (Trade). Omitted otherwise.

37 OrderID Required

Required. BitGo order UUID. NONE on some reject reports.

38 OrderQty Optional

Optional. Original order quantity echoed from the NewOrderSingle.

39 OrdStatus Required

Required. Current order state: A Pending New, 0 New, 1 Partially Filled, 2 Filled, 4 Canceled, 6 Pending Cancel, 8 Rejected.

40 OrdType Optional

Optional. Echoed from the original NewOrderSingle.

41 OrigClOrdID Optional

Optional / Conditional. Set on cancel-related ERs to the original NOS ClOrdID.

44 Price Optional

Optional. Limit price echoed from the original NewOrderSingle.

54 Side Required

Required. 1 Buy, 2 Sell. 7 Undisclosed may appear on some reject reports.

55 Symbol Required

Required. Product echoed from the NewOrderSingle. N/A on some reject reports.

58 Text Optional

Optional / Conditional. Human-readable reject detail. Present on rejects (150=8).

59 TimeInForce Optional

Optional. Echoed from the original NewOrderSingle.

60 TransactTime Required

Required. UTC business timestamp for this report.

99 StopPx Optional

Optional. Stop/trigger price echoed from the original NewOrderSingle.

103 OrdRejReason Optional

Conditional. Present only when ExecType = 8 (Rejected). 1 Unknown symbol, 2 Market unavailable, 3 OrderExceedsLimit, 6 Duplicate ClOrdID, 15 UnknownAccount, 99 Other (see Text).

150 ExecType Required

Required. Event type: A PendingNew, 0 New, F Trade (partial or full), 6 PendingCancel, 4 Canceled, 8 Rejected, I Order Status (response to 35=H, and terminal status summary after a full fill).

151 LeavesQty Required

Required. Quantity still open. Use together with OrdStatus (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 to 0 (39=4 is canceled even when 151 > 0). On fills, 151=0 with 39=1 is not yet terminal Filled — wait for 39=2 (typically on 150=I).

168 EffectiveTime Optional

Optional. Scheduled activation time echoed from NOS.

381 GrossTradeAmt Optional

Optional. Cumulative filled quote quantity (equivalent to REST filledQuoteQuantity).

847 TargetStrategy Optional

Optional. Algo strategy echoed from the original order (T TWAP, S SteadyPace).

957 NoStrategyParameters Optional

Optional. Strategy param group count echoed from NOS for algo orders.

958 StrategyParameterName Optional

Optional. Parameter name within group 957.

959 StrategyParameterType Optional

Optional. Populated by the server on echoed strategy parameters: 1 = Int, 6 = Float, 14 = String, based on the parameter's inferred type.

960 StrategyParameterValue Optional

Optional. Parameter value within group 957.

5001 FundingType Optional

Optional. 1 Funded, 2 Margin. Echoed from the original order.

Examples

Examples (pipe-delimited FIX) for a limit GTC funded buy:

PendingNew (150=A, 39=A):

8=FIX.4.4|9=343|35=8|34=83|49=BITGO|52=20260618-12:37:15.365|56=0123456789abcdef0123456789abcdef|1=0123456789abcdef0123456789abcdef|6=0|11=limit-gtc-funded-004|14=0|15=TBTC|17=afd7ea59-2d0b-4ec2-83ee-637ed1ad8f73|37=96b407cf-ec38-404c-b849-0d53f1ee923b|38=0.001|39=A|40=2|44=83220|54=1|55=TBTC-TUSD*|59=1|60=20260618-12:37:15.292|150=A|151=0.001|381=0|5001=1|10=XXX

New (150=0, 39=0):

8=FIX.4.4|9=343|35=8|34=84|49=BITGO|52=20260618-12:37:15.494|56=0123456789abcdef0123456789abcdef|1=0123456789abcdef0123456789abcdef|6=0|11=limit-gtc-funded-004|14=0|15=TBTC|17=bb641166-c7d5-469a-9354-26133386e67f|37=96b407cf-ec38-404c-b849-0d53f1ee923b|38=0.001|39=0|40=2|44=83220|54=1|55=TBTC-TUSD*|59=1|60=20260618-12:37:15.487|150=0|151=0.001|381=0|5001=1|10=XXX

Fill (150=F, 39=1). Completing fills may still show 39=1 with 151=0; terminal Filled is on 150=I:

8=FIX.4.4|9=369|35=8|34=85|49=BITGO|52=20260618-12:37:15.719|56=0123456789abcdef0123456789abcdef|1=0123456789abcdef0123456789abcdef|6=64310|11=limit-gtc-funded-004|14=0.001|15=TBTC|17=b4ced93f-e9d1-4c75-ac6d-272630d02c0f|31=64310|32=0.001|37=96b407cf-ec38-404c-b849-0d53f1ee923b|38=0.001|39=1|40=2|44=83220|54=1|55=TBTC-TUSD*|59=1|60=20260618-12:37:15.638|150=F|151=0|381=64.31|5001=1|10=XXX

Order Status (150=I, 39=2) after a full fill (terminal Filled). Also used as the response to OrderStatusRequest (35=H):

8=FIX.4.4|9=351|35=8|34=86|49=BITGO|52=20260618-12:37:15.756|56=0123456789abcdef0123456789abcdef|1=0123456789abcdef0123456789abcdef|6=64310|11=limit-gtc-funded-004|14=0.001|15=TBTC|17=ba23f31a-92a0-4774-8fe4-2a730a38a904|37=96b407cf-ec38-404c-b849-0d53f1ee923b|38=0.001|39=2|40=2|44=83220|54=1|55=TBTC-TUSD*|59=1|60=20260618-12:37:15.751|150=I|151=0|381=64.31|5001=1|10=XXX

Reject (150=8, 39=8), e.g. order not found on status request:

8=FIX.4.4|9=177|35=8|34=7|49=BITGO|52=20260528-12:00:00.001|56=0123456789abcdef0123456789abcdef|150=8|39=8|11=8b1d4f55-6e7c-4a8d-9b02-1c3d5e7f9000|37=NONE|55=N/A|54=7|103=99|58=order not found|10=XXX

PendingCancel (150=6, 39=6) then Canceled (150=4, 39=4). Note: 11 (ClOrdID) is NONE on server-generated cancel reports; 41 (OrigClOrdID) carries the original client order ID. 151 (LeavesQty) reflects the open quantity at cancel time and is not reset to 0:

8=FIX.4.4|9=323|35=8|49=BITGO|56=0123456789abcdef0123456789abcdef|34=105|52=20260618-12:46:28.719|1=0123456789abcdef0123456789abcdef|6=0|11=NONE|14=0|15=TBTC|17=exec-pending-cxl|37=80115a50-1542-48b7-92f9-03d99194ade3|38=0.001|39=6|40=3|41=doc-ord-006|54=2|55=TBTC-TUSD*|59=1|60=20260618-12:46:28.685|99=48000|150=6|151=0.001|381=0|5001=1|10=XXX
8=FIX.4.4|9=320|35=8|49=BITGO|56=0123456789abcdef0123456789abcdef|34=106|52=20260618-12:46:28.953|1=0123456789abcdef0123456789abcdef|6=0|11=NONE|14=0|15=TBTC|17=exec-canceled|37=80115a50-1542-48b7-92f9-03d99194ade3|38=0.001|39=4|40=3|41=doc-ord-006|54=2|55=TBTC-TUSD*|59=1|60=20260618-12:46:28.948|99=48000|150=4|151=0.001|381=0|5001=1|10=XXX