Skip to content

FIX MESSAGE 35=8

ExecutionReport

MsgType (35) = 8SingleGeneralOrderHandlingAdded FIX.2.7

Definition

The ExecutionReport(35=8) message is used to:

  1. confirm the receipt of an order (i.e. acknowledge)
  2. confirm changes to an existing order (i.e. accept cancel and replace requests)
  3. relay order status information
  4. relay fill information on working orders
  5. relay fill information on tradeable or restricted tradeable quotes
  6. reject orders
  7. report post-trade fees calculations associated with a trade
Additional detail from the official source

Individual ExecutionReport(35=8) messages are sent for each order in a NewOrderList(35=E) message.

The TradingSessionID(336) and TradingSessionSubID(625) fields are on the root level of the ExecutionReport(35=8) message and identify the active trading (sub)session in which the event of the report occurred. They are *not* used to echo the order attributes given with the TrdgSesGrp component in the order handling messages where it contains one or more (sub)sessions for which the order is valid, and it is not part of the ExecutionReport(35=8) message.

Each ExecutionReport(35=8) message contains two fields which are used to communicate both the current state of the order as understood by the recipient (OrdStatus(39)) and the purpose of the message (ExecType(150)).

Execution information (e.g. new partial fill or complete fill) should not be communicated in the same report as one which communicates other state changes (such as pending cancel, pending replace, canceled, replaced, accepted, done for day etc.).

Precedence | OrdStatus | Description :---------------|:----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 11 | Pending Cancel | Order with a pending cancel request, used to confirm receipt of an OrderCancelRequest(35=F) message. DOES NOT INDICATE THAT THE ORDER HAS BEEN CANCELED. 10 | Pending Replace | Order with a pending replacement request, used to confirm receipt of an OrderCancelReplaceRequest(35=G) message. DOES NOT INDICATE THAT THE ORDER HAS BEEN REPLACED. 9 | Done for Day | Order not, or partially, filled; no further executions forthcoming for the trading day 8 | Calculated | Order has been completed for the day (either filled or done for day). Commission or currency settlement details have been calculated and reported in this execution message 7 | Filled | Order completely filled, no remaining quantity 6 | Stopped | Order has been stopped at the exchange. Used when guaranteeing or protecting a price and quantity 5 | Suspended | Order has been placed in suspended state at the request of the client. 4 | Canceled | Canceled order with or without executions 4 | Expired | Order has been canceled in broker's system due to TimeInForce(59) instructions. The only exceptions are Fill or Kill and Immediate or Cancel orders that have Canceled as terminal order state. 3 | Partially Filled | Outstanding order with executions and remaining quantity 2 | New | Outstanding order with no executions 2 | Rejected | Order has been rejected by sell-side (broker, exchange, ECN). NOTE: An order can be rejected subsequent to order acknowledgment, i.e. an order can pass from New to Rejected status. 2 | Pending New | Order has been received by sell-side's (broker, exchange, ECN) system but not yet accepted for execution. An execution message with this status will only be sent in response to an OrderStatusRequest(35=H) message. 1 | Accepted for bidding | Order has been received and is being evaluated for pricing. It is anticipated that this status will only be used with the BidType(394) = 2 (Disclosed style) List Order Trading model.

Message structure 4503 distinct fields

Source order, including nested components and groups. Group counts precede the repeated entries. “Required here” is relative to the enclosing component or group, not unconditional in the message. A dash means not marked required; conditional requirements remain in the source notes. This is a reference, not a counterparty-specific validator.

Nested fields load when needed. Open the full static layout (also works without JavaScript).

  1. StandardHeaderComponentRequired

    MsgType = 8

    Open this block to load its fields in message context, or follow the definition link.

  2. ApplicationSequenceControlComponent

    For use in drop copy applications. NOT FOR USE in transactional applications.

    Open this block to load its fields in message context, or follow the definition link.

  3. 37 OrderIDStringRequired

    OrderID is required to be unique for each chain of orders.

  4. Required if provided on the order message. Echo back the value provided in the order message.

  5. Can be used to link execution to the MassOrder(35=DJ) message.

  6. Can be used to provide order id used by exchange or executing system. Can alternatively be used to convey implicit order priority.

  7. 11 ClOrdIDString

    Required when referring to orders that were electronically submitted over FIX or otherwise assigned a ClOrdID(11).

    In the case of quotes can be mapped to:

  8. In the case of quotes can be mapped to:

    o QuoteMsgID(1166) of a single Quote(35=S)

    o QuoteID(117) of a MassQuote(35=i)

  9. Conditionally required for response to a Cancel or Cancel/Replace request (ExecType(150) = 6 (Pending Cancel, 5 (Replaced), or 4 (Canceled)) when referring to orders that where electronically submitted over FIX or otherwise assigned a ClOrdID(11). ClOrdID(11) of the previous accepted order (NOT the initial order of the day) when canceling or replacing an order.

  10. 278 MDEntryIDString

    Reference to the MDEntryID(278) of this order or quote in the market data.

  11. Required if responding to a QuoteResponse(35=AJ) message. Echo back the Initiator's value specified in the message.

  12. Required if responding to and if provided on the OrderStatusRequest(35=H) message. Echo back the value provided by the requester.

  13. Required if responding to a OrderMassStatusRequest(35=AF). Echo back the value provided by the requester.

  14. Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + legs

  15. Can be used when responding to an OrderMassStatusRequest(35=AF) to identify the total number of ExecutionReport(35=8) messages which will be returned.

  16. Can be used when responding to an OrderMassStatusRequest(35=AF) to indicate that this is the last ExecutionReport(35=8) messages which will be returned as a result of the request.

  17. PartiesRepeating groupCount tag 453

    Specifies party information related to the submitter.

    Open this block to load its fields in message context, or follow the definition link.

  18. TargetPartiesRepeating groupCount tag 1461

    Specifies parties not directly associated with or owning the order, who are to be informed to effect processing of the order.

    Open this block to load its fields in message context, or follow the definition link.

  19. ContraGrpRepeating groupCount tag 382

    Open this block to load its fields in message context, or follow the definition link.

  20. 66 ListIDString

    Required for executions against orders which were submitted as part of a list.

  21. 548 CrossIDString

    CrossID for the replacement order

  22. Must match original cross order. Same order chaining mechanism as ClOrdID(11)/OrigClOrdID(41) with OrderCancelReplaceRequest(35=G).

  23. Conditionally required when RefRiskLimitCheckID(2334) is specified.

  24. 17 ExecIDStringRequired

    Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType(150) = I (Order Status)).

  25. 19 ExecRefIDString

    Required for ExecType(150) = H (Trade Cancel) and ExecType(150) = G (Trade Correct).

  26. 150 ExecTypecharRequired

    Describes the purpose of the execution report.

  27. Can be used to provide further detail for ExecType(150) field.

  28. 39 OrdStatuscharRequired

    Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx

  29. For optional use with OrdStatus = 0 (New)

  30. For optional use with ExecType = 8 (Rejected)

  31. Reason description for rejecting the transaction request.

  32. Must be set if EncodedRejectText(1665) field is specified and must immediately precede it.

  33. Encoded (non-ASCII characters) representation of the RejectText(1328) field in the encoded format specified via the MessageEncoding(347) field.

  34. Required for ExecType = D (Restated).

  35. For optional use in algo trials.

  36. If ExecType(150)=F (Trade), indicates the algorithm used for last fill.

  37. For optional use in reporting trades.

  38. For optional use in reporting trades.

  39. For optional use in reporting trades. Conditionally requires presence of TrdType(828).

  40. For optional use in reporting trades. Conditionally requires presence of SecondaryTrdType(855).

  41. TradeTypeGrpRepeating groupCount tag 3005

    For optional use in reporting trades as alternative to the use of individual fields.

    Open this block to load its fields in message context, or follow the definition link.

  42. RegulatoryTradeIDGrpRepeating groupCount tag 1907

    Open this block to load its fields in message context, or follow the definition link.

  43. May be used to bilaterally inform counterparty of trade reporting status.

  44. 1 AccountString

    Required for executions against electronically submitted orders which were assigned an account by the institution or intermediary

  45. Specifies type of account

  46. 70 AllocIDString
  47. PreAllocGrpRepeating groupCount tag 78

    Pre-trade allocation instructions.

    Open this block to load its fields in message context, or follow the definition link.

  48. 63 SettlTypeString
  49. 64 SettlDateLocalMktDate

    Takes precedence over SettlType value and conditionally required/omitted for specific SettleType values.

    Required for NDFs to specify the "value date".

  50. 574 MatchTypeString
  51. InstrumentComponentRequired

    Open this block to load its fields in message context, or follow the definition link.

  52. InstrumentExtensionComponent

    Open this block to load its fields in message context, or follow the definition link.

  53. FinancingDetailsComponent

    Open this block to load its fields in message context, or follow the definition link.

  54. UndInstrmtGrpRepeating groupCount tag 711

    Number of underlyings

    Open this block to load its fields in message context, or follow the definition link.

  55. PaymentGrpRepeating groupCount tag 40212

    Open this block to load its fields in message context, or follow the definition link.

  56. 54 SidecharRequired
  57. Available for optional use when Side(54) = 6(Sell short exempt).

  58. StipulationsRepeating groupCount tag 232

    Open this block to load its fields in message context, or follow the definition link.

  59. OrderQtyDataComponent

    Conditionally required when the OrderQtyData component is required or specified in a prior, related message.

    For example, when used in a work flow including a NewOrderSingle(35=D) or NewOrderCross(35=s) message, the OrderQtyData component is a required component in these messages and thus the component is required here. When the OrderQtyData component is optional in a related message, such as the NewOrderMultileg(35=AB), the component is required here when specified in the prior, related NewOrderMultileg(35=AB) message.

    Open this block to load its fields in message context, or follow the definition link.

  60. 40 OrdTypechar
  61. PriceQualifierGrpRepeating groupCount tag 2709

    Open this block to load its fields in message context, or follow the definition link.

  62. 44 PricePrice

    Required if specified on the order

  63. 99 StopPxPrice

    Required if specified on the order

  64. TriggeringInstructionComponent

    Open this block to load its fields in message context, or follow the definition link.

  65. PegInstructionsComponent

    Open this block to load its fields in message context, or follow the definition link.

  66. DiscretionInstructionsComponent

    Open this block to load its fields in message context, or follow the definition link.

  67. The current price the order is pegged at

  68. The reference price of a pegged order.

  69. The current discretionary price of the order

  70. Required if specified on the order

  71. The target strategy of the order

  72. StrategyParametersGrpRepeating groupCount tag 957

    Strategy parameter block

    Open this block to load its fields in message context, or follow the definition link.

  73. 848 TargetStrategyParametersDeprecated FIX.5.0String

    For further specification of the TargetStrategy

  74. 849 ParticipationRateDeprecated FIX.5.0Percentage

    Mandatory for a TargetStrategy=Participate order and specifies the target particpation rate.

    For other order types optionally specifies a volume limit (i.e. do not be more than this percent of the market volume)

  75. For communication of the performance of the order versus the target strategy

  76. 15 CurrencyCurrency
  77. Must be set if EncodedComplianceText(2352) field is specified and must immediately precede it.

  78. Encoded (non-ASCII characters) representation of the ComplianceText(2404) field in the encoded format specified via the MessageEncoding(347) field.

  79. Absence of this field indicates Day order

  80. 168 EffectiveTimeUTCTimestamp

    Time specified on the order at which the order should be considered valid

  81. 432 ExpireDateLocalMktDate

    Conditionally required if TimeInForce(59) = 6 (GTD) and ExpireTime(126) is not specified.

  82. 126 ExpireTimeUTCTimestamp

    Conditionally required if TimeInForce(59) = 6 (GTD) and ExpireDate(432) is not specified.

  83. Conditionally required when TimeInForce(59)=10 (Good for Time)

  84. 18 ExecInstMultipleCharValue

    Can contain multiple instructions, space delimited.

  85. 529 OrderRestrictionsMultipleCharValue
  86. Applies to trades resulting from the order.

  87. OrderAttributeGrpRepeating groupCount tag 2593

    Open this block to load its fields in message context, or follow the definition link.

  88. Quantity (e.g. shares) bought/sold on this (last) fill. Required if ExecType(150) = F (Trade) or ExecType(150) = G (Trade Correct) unless FillsGrp or OrderEventGrp is used.

    If ExecType(150) = 7 (Stopped), represents the quantity stopped/guaranteed/protected for.

  89. Used for FX trades to express the quantity or amount of the other side of the currency. Conditionally required if ExecType(150) = F (Trade) or G (Trade Correct) and is an FX trade.

  90. 1071 LastSwapPointsPriceOffset

    Optionally used when ExecType(150) = F (Trade) or G (Trade Correct) and is a FX Swap trade. Used to express the swap points for the swap trade event.

  91. 31 LastPxPrice

    Price of this (last) fill. Required if ExecType(150) = ExecType = F (Trade) or G (Trade Correct) unless FillsGrp or OrderEventGrp or TradePriceCondition(1839)=17 (Price is pending) or 18 (Price is not applicable) is used.

    Should represent the "all-in" (LastSpotRate(194) + LastForwardPoints(195)) rate for F/X orders.).

    If ExecType(150) = 7 (Stopped), represents the price stopped/guaranteed/protected at.

    Not required for FX Swap when ExecType(150) = F (Trade) or G (Trade Correct) as there is no "all-in" rate that applies to both legs of the FX Swap.

  92. Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx(31) is expressed in Yield, Spread, Discount or any other price type that is not percent-of-par.

  93. 631 MidPxPrice
  94. Applicable for F/X orders

  95. 195 LastForwardPointsPriceOffset

    Applicable for F/X orders

  96. Upfront Price for CDS transactions. Conditionally required if TradePriceNegotiationMethod(1740) = 4(Percent of par and upfront amount), 5(Deal spread and upfront amount) or 6(Upfront points and upfront amount).

  97. 30 LastMktExchange

    If ExecType(150) = F (Trade), indicates the market where the trade was executed. If ExecType(150) = 0 (New (0), indicates the market where the order was routed.

  98. LimitAmtsRepeating groupCount tag 1630

    Open this block to load its fields in message context, or follow the definition link.

  99. 151 LeavesQtyQtyRequired

    Quantity open for further execution. If the OrdStatus(39) is = 4 (Canceled), 3 (Done For Day), C (Expired), B (Calculated), or 8 (Rejected) (in which case the order is no longer active) then LeavesQty(151) could be 0, otherwise LeavesQty(151) = OrderQty(38) - CumQty(14).

  100. 14 CumQtyQtyRequired

    Currently executed quantity for chain of orders.

  101. 84 CxlQtyQty

    Can be used to specify the remaining quantity that was cancelled prior to order reaching terminal state (i.e. when LeavesQty(151)=0). If specified, OrderQty(38) = CumQty(14) + CxlQty(84).

  102. 6 AvgPxPrice

    Not required for markets where average price is not calculated by the market.

    Conditionally required otherwise.

  103. For GT orders on days following the day of the first trade.

  104. For GT orders on days following the day of the first trade.

  105. 426 DayAvgPxPrice

    For GT orders on days following the day of the first trade.

  106. Used to support fragmentation. Sum of NoFills(1362) across all messages with the same ExecID(17).

  107. Indicates whether this is the last fragment in a sequence of message fragments. Only required where message has been fragmented.

  108. FillsGrpRepeating groupCount tag 1362

    Specifies the partial fills included in this ExecutionReport(35=8), mutually exclusive with OrderEventGrp component.

    Open this block to load its fields in message context, or follow the definition link.

  109. OrderEventGrpRepeating groupCount tag 1795

    Specifies the order events included in this ExecutionReport(35=8), mutually exclusive with FillsGrp component.

    Open this block to load its fields in message context, or follow the definition link.

  110. States whether executions are booked out or accumulated on a partially filled GT order

  111. 75 TradeDateLocalMktDate

    Used when reporting other than current day trades.

  112. 60 TransactTimeUTCTimestamp

    Time the transaction represented by this ExecutionReport(35=8) occurred.

  113. CommissionDataComponent

    Note: On a fill/partial-fill message, it represents value for that fill/partial fill. On ExecType(150) = B (Calculated), it represents cumulative value for the order.

    Open this block to load its fields in message context, or follow the definition link.

  114. CommissionDataGrpRepeating groupCount tag 2639

    Use as an alternative to CommissionData component if multiple commissions or enhanced attributes are needed.

    Open this block to load its fields in message context, or follow the definition link.

  115. SpreadOrBenchmarkCurveDataComponent

    Open this block to load its fields in message context, or follow the definition link.

  116. RelativeValueGrpRepeating groupCount tag 2529

    Open this block to load its fields in message context, or follow the definition link.

  117. YieldDataComponent

    Open this block to load its fields in message context, or follow the definition link.

  118. 230 ExDateLocalMktDate
  119. For fixed income products which pay lump-sum interest at maturity.

  120. For repurchase agreements the accrued interest on termination.

  121. For repurchase agreements the start (dirty) cash consideration.

  122. For repurchase agreements the end (dirty) cash consideration.

  123. 259 BasisFeatureDateLocalMktDate
  124. On a fill/partial fill message, it represents value for that fill/partial fill. On a ExecType(150) = B (Calculated) message, it represents cumulative value for the order. Value expressed in the currency reflected by the Currency(15) field.

  125. Used to report results of forex accommodation trade.

  126. Used to report results of forex accommodation trade.

    Required for Non-Deliverable Forwards.

  127. RateSourceRepeating groupCount tag 1445

    Open this block to load its fields in message context, or follow the definition link.

  128. Foreign exchange rate used to compute SettlCurrAmt(119) from Currency(15) to SettlCurrency(120).

  129. Specifies whether the SettlCurrFxRate(155) should be multiplied or divided.

  130. ValueChecksGrpRepeating groupCount tag 1868

    Open this block to load its fields in message context, or follow the definition link.

  131. MatchingInstructionsRepeating groupCount tag 1624

    Open this block to load its fields in message context, or follow the definition link.

  132. May be used as an alternative to MatchingInstructions when the identifier does not appear in another field.

  133. May be used to return the self-match prevention instruction provided on the order placement message. Omit for unsolicited cancellations and use ExecRestatementReason(378) to convey the self-match prevention instruction that caused the cancellation.

  134. DisplayInstructionComponent

    Open this block to load its fields in message context, or follow the definition link.

  135. DisclosureInstructionGrpRepeating groupCount tag 1812

    Open this block to load its fields in message context, or follow the definition link.

  136. 111 MaxFloorDeprecated FIX.5.0SP2Qty
  137. For use in derivatives omnibus accounting

  138. 210 MaxShowDeprecated FIX.5.0Qty
  139. Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar). Absence of this field implies regular booking.

  140. 58 TextString
  141. Must be set if EncodedText field is specified and must immediately precede it.

  142. Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.

  143. 193 SettlDate2Deprecated FIX.5.0LocalMktDate

    Can be used with OrdType = "Forex - Swap" to specify the "value date" for the future portion of a F/X swap.

  144. 192 OrderQty2Deprecated FIX.5.0Qty

    Can be used with OrdType = "Forex - Swap" to specify the order quantity for the future portion of a F/X swap.

  145. 641 LastForwardPoints2Deprecated FIX.5.0SP2PriceOffset

    Can be used with OrdType = "Forex - Swap" to specify the forward points (added to LastSpotRate) for the future portion of a F/X swap.

  146. Default is a single security if not specified.

  147. For contingency orders, the type of contingency as specified in the order.

  148. For CIV - Optional

  149. 513 RegistIDString

    Reference to Registration Instructions message for this Order.

  150. Supplementary registration information for this Order

  151. 483 TransBkdTimeUTCTimestamp

    For CIV - Optional

  152. 515 ExecValuationPointUTCTimestamp

    For CIV - Optional

  153. For CIV - Optional

  154. For CIV - Optional

  155. 639 PriceImprovementPriceOffset
  156. Applicable only on OrdStatus(39) = 1 of (Partially filled) or 2(Filled).

  157. ContAmtGrpRepeating groupCount tag 518

    Open this block to load its fields in message context, or follow the definition link.

  158. InstrmtLegExecGrpRepeating groupCount tag 555

    Specifies the leg executions of a multi-leg order or quote.

    Open this block to load its fields in message context, or follow the definition link.

  159. MiscFeesGrpRepeating groupCount tag 136

    Required if any miscellaneous fees are reported.

    Open this block to load its fields in message context, or follow the definition link.

  160. 1380 DividendYieldPercentage
  161. 1030 ReceivedDeptIDDeprecated FIX.5.0SP2String
  162. 1031 CustOrderHandlingInstMultipleStringValue
  163. May be used for cross orders submitted with single order messages.

  164. May be used for cross orders submitted with single order messages.

  165. Can be used to highlight change of order ownership.

  166. TrdRegTimestampsRepeating groupCount tag 768

    Open this block to load its fields in message context, or follow the definition link.

  167. TrdRegPublicationGrpRepeating groupCount tag 2668

    Open this block to load its fields in message context, or follow the definition link.

  168. TradePriceConditionGrpRepeating groupCount tag 1838

    Open this block to load its fields in message context, or follow the definition link.

  169. May be used to indicate the post-execution trade continuation or lifecycle event. This should echo the value in the message that resulted in this report.

  170. Must be set if EncodedTradeContinuationText(2371) field is specified and must immediately precede it.

  171. Encoded (non-ASCII characters) representation of the TradeContinuationText(2374) field in the encoded format specified via the MessageEncoding(347) field.

  172. ThrottleResponseComponent

    Open this block to load its fields in message context, or follow the definition link.

  173. RelatedOrderGrpRepeating groupCount tag 73

    May be used to provide a list of orders and their relationship to the order identified in this message.

    Open this block to load its fields in message context, or follow the definition link.

  174. StandardTrailerComponentRequired

    Open this block to load its fields in message context, or follow the definition link.