developers:fixapi.executionreport

This is an old revision of the document!


Order State and Execution


The Execution Report message (MsgType=8) is used by the T4 FIX API to electronically notify execution events and order state changes. Key uses include:

  • Confirming receipt of an order
  • Confirming changes to existing orders (accept, cancel requests, cancel-replace requests)
  • Relaying order status changes
  • Relaying trade information of working orders
  • Relaying position update information
  • Relaying rejection of orders

* ExecType (Tag 150) identifies the type of Execution Report * ExecId (Tag 17) provides a unique identifier for the report * OrdStatus (Tag 39) indicates the instantaneous state of the order

Execution Reports are generated for all CTS strategy types including outright futures, futures options, spreads, and multileg strategies. Instrument identification is achieved with:

  • Tag 48 = SecurityID
  • Tag 55 = Symbol
  • Tag 207 = SecurityExchange

Options orders include:

  • Tag 202 = Strike Price
  • Tag 201 = PutOrCall

Client-side order identification:

  • ClOrdId (Tag 11)
  • OrigClOrdId (Tag 41)

Server-side order identification:

  • OrderId (Tag 37)

Order State Sequence


Order lifetime may generate multiple execution reports as follows:

1. Order Risk Assessment 2. Order Suspension within CTS (for appropriate order types) 3. Order Activation within CTS (for appropriate order types) 4. Order Trigger within CTS (for appropriate order types) 5. Order Submittal to the Exchange 6. Order Acceptance by the Exchange (Broker Accept) 7. Order Execution by the Exchange

Pending Executions


Pending execution reports reflect intermediary order states:

  • Pending New (Tag 150=A)
  • Pending Replace (Tag 150=E)
  • Pending Cancel (Tag 150=6)
  • Suspension/Activation (Tag 150=9)

Non-pending reports indicate success:

  • New (Tag 150=0)
  • Replaced (Tag 150=5)
  • Canceled (Tag 150=4)

Verbose reporting can be controlled via the Logon message parameter (RefMsgTyp=Tag 372).

Default Reporting


To reduce traffic, the T4 FIX API defaults to minimal execution reports. Special Order Types (Activation Orders, OCOs, Queue Orders, Join Orders, etc.) require verbose reporting including intermediary Pending-New or Suspended states.

Unsolicited Reports


Connected users automatically receive execution reports for:

  • Order submittal
  • Order state changes
  • Trades and amendments

External (non-FIX) order activity can also trigger execution reports for subscribed accounts. Overnight position updates are reported asynchronously (ExecTransType Tag 20=0) with PossResend Tag 97=Y.

Execution Identifiers (ExecID) Structure


ExecID (Tag 17) is unique per FIX session and may include subfields:

* Trade ExecID: OrderID_TradeSequenceNumber_T (Trades), OrderID_LegTradeSequenceNumber_TL (Leg Trades) * Status ExecID: OrderID_SequenceNumber_F/S/U/H (Order updates, history)

Overnight Positions may aggregate multiple orders and do not carry previous session IDs.

Message Dictionary


Tag Field Name Req'd Comments
Standard Header Y MsgType = 8
1 Account Y Account for which the execution applies
11 ClOrdID Y Client-Side unique identifier for the order
66 ListID N Identifier among components of Batch orders (OCO, AutoOCO)
41 OrigClOrdID N Original ClOrdID of previous order
37 OrderId N T4-generated unique order identifier
48 SecurityID Y T4 Market ID
55 Symbol Y T4 Contract ID
207 SecurityExchange Y T4 Exchange ID
167 SecurityType Y Instrument type: FUT, OPT, STK, SYN, BIN
201 PutOrCall N Option: 0=Put, 1=Call
202 StrikePrice N Option Strike Price
54 Side Y 0=None (Flatten), 1=Buy, 2=Sell
38 OrderQty Y Number of contracts; “0”=Flatten or Overnight Position
210 MaxShow N Max quantity for Iceberg orders
40 OrdType N 1=Market, 2=Limit, 3=Stop, 4=Stop-Limit, J=MIT, O=Overnight, I=Import, B=Backoffice, T=Pit, F=Flatten, N=Join, H=Hit, R=RFQ
44 Price N Order price for Limit, Stop-Limit, MIT
99 StopPx N Stop price for Stop or Stop-Limit
31 LastPx N Price of this fill
32 LastQty/LastShares N Quantity of contracts filled
14 CumQty N Total executed quantity
151 LeavesQty N Remaining quantity
59 TimeInForce Y 0=Day, 1=GTC, 3=IOC, 4=FOK
200 MaturityMonthYear N YYYYMM format
60 TransactTime N UTC time of order request
21 HandlInst N 1=Automated no intervention, 2=Automated intervention OK, 3=Manual
204 CustomerOrFirm N 0=Customer, 1=Firm
77 OpenClose N O=Open, C=Close
912 LastReportRequested N Y=Yes, N=No
58 Text N Free form text for state, rejection, or notifications
20 ExecTransType N 0=Overnight Position, 2=BackOffice, 3=Pit
107 SecurityDesc N Description of SecurityID
1028 ManualOrderIndicator N Y=Manual, N=Automated
1385 ContingencyType N 1=OCO, 2=AutoOCO, 3=Spark, 7=AutoOCO_P, 8=AutoOCOM, 9=AutoOCOM_P
10100 TrailingDelta N Amount for trailing stop
10101 TriggerPrice N Trigger price for Auto OCO
10104 TriggerStop N Trigger stop price for Auto OCO
10105 TriggerStopTrail N Stop price trail for Auto OCO
10102 ActivationType N 1=Immediate, 2=At/Above Trade, 3=At/Below Trade, 4=Market Mode, 5=Time, 6=Queue
10103 ActivationValue N Condition for Activation Type (multiple values separated by “;”)
17 ExecId Y Unique execution message identifier
150 ExecType Y 0=New, 3=DoneForDay, 4=Canceled, 5=Replace, 6=PendingCancel, 7=Stopped, 8=Rejected, 9=Suspended, A=PendingNew, B=Calculated, C=Expired, D=Restated, E=PendingReplace, F=Trade, G=TradeCorrect, H=TradeCancel, I=OrderStatus
39 OrdStatus Y 0=New, 1=PartiallyFilled, 2=Filled, 3=DoneForDay, 4=Canceled, 5=Replaced, 6=PendingCancel, 7=Stopped, 8=Rejected, 9=Suspended, A=PendingNew, B=Calculated, C=Expired, E=PendingReplace, X=Undetermined, U=Unknown
337 ContraTrader N Order Execution Trader
375 ContraBroker N Order Execution Broker
442 MultiLegReportingType N 1=SingleLeg, 2=IndividualLeg, 3=MultiLeg Security
103 OrdRejReason N Reason for rejection
584 MassStatusReqID N Collateral Inquiry RequestID associated with this execution report
198 SecondaryOrderID N Secondary Order ID
526 SecondaryClOrdID N First and most recent ClOrdIDs sent to exchange
453 NoPartyIDs N Number of Party repeating groups
=448 PartyID C Value dependent on PartyIDSource / PartyRole
=447 PartyIDSource C D=Proprietary/Custom code (T4 username if different from TargetSubID)
=452 PartyRole C 44=Order Entry Operator ID (T4 username if different from TargetSubID)
Standard Trailer Y
  • developers/fixapi.executionreport.1755094214.txt.gz
  • Last modified: 2025/08/13 14:10
  • by rob