Definition
The execution report message is used to:
- Confirm the receipt of an order
- Confirm changes to an existing order (i.e. accept cancel and replace requests)
- Relay order status information
- Relay fill information on working orders
- Reject orders
- Report post-trade fees calculations associated with a trade
FIX 4.2 group names/IDs were assigned during the official Orchestra translation; some mappings to later versions are approximate. This layout stays within the 4.2 source.
Message structure 126 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.
StandardHeaderComponentRequired
MsgType = 8
StandardHeader definition & usage →
FIX.4.2 (Always unencrypted, must be first field in message)
(Always unencrypted, must be second field in message)
(Always unencrypted, must be third field in message)
(Always unencrypted)
(Always unencrypted)
Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)
Trading partner company ID used when sending messages via a third party (Can be embedded within encrypted data section.)
Required to identify length of encrypted section of message. (Always unencrypted)
Required when message body is encrypted. Always immediately follows SecureDataLen field.
(Can be embedded within encrypted data section.)
(Can be embedded within encrypted data section.)
Sender's LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)
"ADMIN" reserved for administrative messages not intended for a specific user. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) (Can be embedded within encrypted data section.)
Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner SubID used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Trading partner LocationID (i.e. geographic location and/or desk) used when delivering messages via a third party. (Can be embedded within encrypted data section.)
Always required for retransmitted messages, whether prompted by the sending system or as the result of a resend request. (Can be embedded within encrypted data section.)
Required when message may be duplicate of another message sent under a different sequence number. (Can be embedded within encrypted data section.)
(Can be embedded within encrypted data section.)
Required for message resent as a result of a ResendRequest. If data is not available set to same value as SendingTime (Can be embedded within encrypted data section.)
Required when specifying XmlData to identify the length of a XmlData message block. (Can be embedded within encrypted data section.)
Can contain an XML-formatted message block (e.g. FIXML). Always immediately follows XmlDataLen field. (Can be embedded within encrypted data section.) See Appendix M – FIXML Support
Type of message encoding (non-ASCII characters) used in a message’s "Encoded" fields. Required if any "Encoding" fields are used.
The last MsgSeqNum value received and processed. Can be specified on every message sent. Useful for detecting a backlog with a counterparty.
Used when a message is sent via a "hub" or "service bureau". If A sends to Q (the hub) who then sends to B via a separate FIX session, then when Q sends to B the value of this field should represent the SendingTime on the message A sent to Q. (always expressed in UTC (Universal Time Coordinated, also known as "GMT")
OrderID is required to be unique for each chain of orders.
Can be used to provide order id used by exchange or executing system.
Required for executions against electronically submitted orders which were assigned an ID by the institution. Not required for orders manually entered by the broker.
Conditionally required for response to an electronic Cancel or Cancel/Replace request (ExecType=PendingCancel, Replaced, or Canceled). ClOrdID of the previous order (NOT the initial order of the day) when canceling or replacing an order.
Used for firm identification in third-party transactions (should not be a substitute for OnBehalfOfCompID/DeliverToCompID).
Used for firm identification in third-party transactions (should not be a substitute for OnBehalfOfCompID/DeliverToCompID).
ContraGrpRepeating groupCount tag 382—
Number of ContraBrokers repeating group instances.
ContraGrp definition & usage →
First field in repeating group. Required if NoContraBrokers > 0.
Required for executions against orders which were submitted as part of a list.
Must be unique for each Execution Report message
Required for Cancel and Correct ExecTransType messages
Describes the type of execution report. Same possible values as OrdStatus.
Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx
For optional use with ExecType = 8 (Rejected)
Required for ExecType = D (Restated).
Required for executions against electronically submitted orders which were assigned an account by the institution
Absence of this field is interpreted as Regular.
Required when SettlmntTyp = 6 (Future) or SettlmntTyp = 8 (Sellers Option)
Must be specified if a Future or Option. If a Future: Symbol, SecurityType, and MaturityMonthYear are required. If an Option: Symbol, SecurityType, MaturityMonthYear, PutOrCall, and StrikePrice are required.
Specifies the month and year of maturity. Required if MaturityDay is specified.
Can be used in conjunction with MaturityMonthYear to specify a particular maturity date.
For Options.
For Options.
For Options.
For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount.
For Fixed Income.
Can be used to identify the security.
Must be set if EncodedIssuer field is specified and must immediately precede it.
Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding field.
Must be set if EncodedSecurityDesc field is specified and must immediately precede it.
Encoded (non-ASCII characters) representation of the SecurityDesc field in the encoded format specified via the MessageEncoding field.
Either CashOrderQty or OrderQty is required. Not required for a rejected cash order or an order ack for a cash order.
Either CashOrderQty or OrderQty is required. Specifies the approximate "monetary quantity" conveyed on the order. Broker is responsible for converting and calculating OrderQty in shares for subsequent messages involving fills.
Required if specified on the order
Required if specified on the order
Required if specified on the order
Code to identify the price a DiscretionOffset is related to and should be mathematically added to. Required if DiscretionOffset is specified.
Amount (signed) added to the "related to" price specified via DiscretionInst.
Absence of this field indicates Day order
Time specified on the order at which the order should be considered valid
Conditionally required if TimeInForce = GTD and ExpireTime is not specified.
Conditionally required if TimeInForce = GTD and ExpireDate is not specified.
Can contain multiple instructions, space delimited.
Quantity of shares bought/sold on this (last) fill. Not required ExecTransType = 3 (Status). When required, should be "0" for non-fills ("fill" defined as ExecTransType=New and ExecType=Partial Fill or Fill) unless noted below. If ExecType=Stopped, represents the quantity stopped/guaranteed/protected for.
Price of this (last) fill. Not required for ExecTransType = 3 (Status), Should represent the "all-in" (LastSpotRate + LastForwardPoints) rate for F/X orders. ). When required, should be "0" for non-fills ("fill" defined as ExecTransType=New and ExecType=Partial Fill or Fill) unless noted below. If ExecType=Stopped, represents the price stopped/guaranteed/protected at.
Applicable for F/X orders
Applicable for F/X orders
Amount of shares open for further execution. If the OrdStatus is Canceled, DoneForTheDay, Expired, Calculated, or Rejected (in which case the order is no longer active) then LeavesQty could be 0, otherwise LeavesQty = OrderQty - CumQty.
Currently executed shares for chain of orders.
For GT orders on days following the day of the first trade.
For GT orders on days following the day of the first trade.
For GT orders on days following the day of the first trade.
States whether executions are booked out or accumulated on a partially filled GT order
Used when reporting other than current day trades.
Time the transaction represented by this ExecutionReport occurred
On a fill/partial fill messages, it represents value for that fill/partial fill, on ExecType=Calculated, it represents cumulative value for the order. Monetary commission values are expressed in the currency reflected by the Currency field.
Used to report results of forex accommodation trade
Used to report results of forex accommodation trade
Foreign exchange rate used to compute SettlCurrAmt from Currency to SettlCurrency
Specifies whether the SettlCurrFxRate should be multiplied or divided
For options
Must be set if EncodedText field is specified and must immediately precede it.
Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.
Can be used with OrdType = "Forex - Swap" to specify the "value date" for the future portion of an F/X swap.
Can be used with OrdType = "Forex - Swap" to specify the order quantity for the future portion of an F/X swap.
Default is a single security if not specified.
StandardTrailerComponentRequired
StandardTrailer definition & usage →
Required when trailer contains signature. Note: Not to be included within SecureData field
Note: Not to be included within SecureData field
(Always unencrypted, always last field in message)