FIXOrders FIX

GET

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).

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

Responses

200
ExecutionReport (35=8) field reference.

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.

  • account string
    Optional Trading account ID (Go account ID)
  • avgPx string required
    Required. Average fill price (0 if unfilled).
  • clOrdID string required
    Required. Client order id. NONE on cancel reports (PendingCancel / Canceled) and when the order has no client id.
  • cumQty string required
    Required. Total quantity filled so far.
  • currency string
    Optional. Quantity currency for tag 38.
  • execID string required
    Required. Unique id for this ExecutionReport.
  • lastPx string
    Conditional. This fill's price. Present only when ExecType = F (Trade). Omitted otherwise.
  • lastQty string
    Conditional. This fill's quantity. Present only when ExecType = F (Trade). Omitted otherwise.
  • orderID string required
    Required. BitGo order UUID. NONE on some reject reports.
  • orderQty string
    Optional. Original order quantity echoed from the NewOrderSingle.
  • ordStatus string enum required
    Required. Current order state: A Pending New, 0 New, 1 Partially Filled, 2 Filled, 4 Canceled, 6 Pending Cancel, 8 Rejected.
    012468A
  • ordType string enum
    Optional. Echoed from the original NewOrderSingle.
    1234
  • origClOrdID string
    Optional / Conditional. Set on cancel-related ERs to the original NOS ClOrdID.
  • price string
    Optional. Limit price echoed from the original NewOrderSingle.
  • side string enum required
    Required. 1 Buy, 2 Sell. 7 Undisclosed may appear on some reject reports.
    127
  • symbol string required
    Required. Product echoed from the NewOrderSingle. N/A on some reject reports.
  • text string
    Optional / Conditional. Human-readable reject detail. Present on rejects (150=8).
  • timeInForce string enum
    Optional. Echoed from the original NewOrderSingle.
    1346
  • transactTime string required
    Required. UTC business timestamp for this report.
  • stopPx string
    Optional. Stop/trigger price echoed from the original NewOrderSingle.
  • ordRejReason integer enum
    Conditional. Present only when ExecType = 8 (Rejected). 1 Unknown symbol, 2 Market unavailable, 3 OrderExceedsLimit, 6 Duplicate ClOrdID, 15 UnknownAccount, 99 Other (see Text).
    12361599
  • execType string enum 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).
    0468AFI
  • leavesQty string 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).
  • effectiveTime string
    Optional. Scheduled activation time echoed from NOS.
  • grossTradeAmt string
    Optional. Cumulative filled quote quantity (equivalent to REST filledQuoteQuantity).
  • targetStrategy string enum
    Optional. Algo strategy echoed from the original order (T TWAP, S SteadyPace).
    TS
  • noStrategyParameters integer
    Optional. Strategy param group count echoed from NOS for algo orders.
  • strategyParameterName string
    Optional. Parameter name within group 957.
  • strategyParameterType string enum
    Optional. Populated by the server on echoed strategy parameters: 1 = Int, 6 = Float, 14 = String, based on the parameter's inferred type.
    1614
  • strategyParameterValue string
    Optional. Parameter value within group 957.
  • fundingType string enum
    Optional. 1 Funded, 2 Margin. Echoed from the original order.
    12