Indexes

Message Layouts
Session
PreTrade
Trade
PostTrade
Infrastructure

  • Documentation

  • Message

    ExecutionReport (8)

    ID9
    PedigreeAdded FIX.2.7, Updated FIX.4.2

    The execution report message is used to:

    1. confirm the receipt of an order
    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. reject orders
    6. report post-trade fees calculations associated with a trade

    NOTE: Execution reports do not replace the end-of-day confirm. Execution reports are to be regarded only as replacements for the existing fill messages currently communicated via telephone.

    Each execution report contains three fields which are used to communicate both the current state of the order as understood by the broker and the purpose of the message: OrdStatus, ExecType and ExecTransType.

    In an execution report the OrdStatus is used to convey the current state of the order. If an order simultaneously exists in more than one order state, the value with highest precedence is the value that is reported in the OrdStatus field. The order statuses are as follows (in highest to lowest precedence):

    PrecedenceOrdStatusDescription
    12Pending CancelOrder with an Order Cancel Request pending, used to confirm receipt of an Order Cancel Request. DOES NOT INDICATE THAT THE ORDER HAS BEEN CANCELED.
    11Pending ReplaceOrder with an Order Cancel/Replace Request pending, used to confirm receipt of an Order Cancel/Replace Request. DOES NOT INDICATE THAT THE ORDER HAS BEEN REPLACED.
    10Done for DayOrder not, or partially, filled; no further executions forthcoming for the trading day
    9CalculatedOrder 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
    8FilledOrder completely filled, no remaining quantity
    7StoppedOrder has been stopped at the exchange. Used when guranteeing or protecting a price and quantity
    6SuspendedOrder has been placed in suspended state at the request of the client.
    5CanceledCanceled order with or without executions
    5ExpiredOrder has been canceled in broker’s system due to time in force instructions.
    4Partially FilledOutstanding order with executions and remaining quantity
    3ReplacedReplaced order with or without executions
    2NewOutstanding order with no executions
    2RejectedOrder has been rejected by broker. NOTE: An order can be rejected subsequent to order acknowledgment, i.e. an order can pass from New to Rejected status.
    2Pending NewOrder has been received by brokers system but not yet accepted for execution. An execution message with this status will only be sent in response to a Status Request message.
    1Accepted for biddingOrder has been received and is being evaluated for pricing. It is anticipated that this status will only be used with the “Disclosed” BidType List Order Trading model.

    The ExecType is used to identify the purpose of the execution report message. To transmit a change in OrdStatus for an order, the broker(sell side) should send an Execution Report with the new OrdStatus value in both the ExecType AND the OrdStatus fields to signify this message is changing the state of the order. The only exception to this rule is that when rejecting a cancel or cancel/replace request the CancelReject message is used both to reject the request and to communicate the current OrdStatus. An ExecType of Pending Cancel or Pending Replace is used to indicate that a cancel or cancel/replace request is being processed. An ExecType of Canceled or Replace is used to indicate that the cancel or cancel/replace request has been successfully processed.

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

    Any fills which occur and need to be communicated to the customer while an order is “pending” and waiting to achieve a new state (i.e. via a Order Cancel Replace (aka Order Modification) Request) must contain the “original” (current order prior to state change request) order parameters (i.e. ClOrdID, OrderQty, Price, etc). These fills will cause the CumQty and AvgPx to be updated. An order cannot be considered replaced until it has been explicitly accepted and confirmed to have reached the replaced status via an execution report with ExecType = ‘Replace’, at which time the effect of the replacement (ClOrdID, new quantity or limit price etc) will be seen. Note that due to the precedence rules above, in reports where ExecType=Replace, OrdStatus may not = Replaced.

    Requests to cancel or cancel/replace an order are only acted upon when there is an outstanding order quantity. Requests to replace the OrderQty to a level less than the CumQty will be interpreted by the broker as requests to stop executing the order. Requests to change price on a filled order will be rejected (see Order Cancel Reject message type). The OrderQty, CumQty, LeavesQty, and AvgPx fields should be calculated to reflect the cumulative result of all versions of an order. For example, if partially filled order A were replaced by order B, the OrderQty, CumQty, LeavesQty, and AvgPx on order B’s fills should represent the cumulative result of order A plus those on order B.

    The general rule is: OrderQty = CumQty + LeavesQty.

    There can be exceptions to this rule when ExecType and/or OrdStatus are Canceled, DoneForTheDay (e.g. on a day order), Expired, Calculated, or Rejected in which case the order is no longer active and LeavesQty could be 0.

    Execution report messages are transmitted with a transaction type (ExecTransType) NEW, CANCEL, CORRECT or STATUS. Transaction types CANCEL and CORRECT modify the state of the message identified in field ExecRefID, and are used to cancel or correct a previously reported execution. Transaction type STATUS indicates that the execution message contains no new information, only summary information regarding order status.

    The NEW transaction type indicates that this message represents a new order, a change in status of the order, or a new fill against an existing order. The combination of the ExecTransType, ExecType, and OrdStatus fields will indicate how the message is to be applied to an order.

    The CANCEL transaction type applies at the execution level. The Cancel transaction will be used to cancel an execution which has been reported in error. The canceled execution will be identified in the ExecRefID field. Note: ExecTransType of Cancel should not be used to cancel a previous ExecutionRpt with ExecTransType of Cancel (e.g. cannot cancel a cancel).

    The CORRECT transaction type applies at the execution level and is used to modify an incorrectly reported fill. The incorrect execution will be identified in the ExecRefID field. If a single execution is corrected more than once, ExecRefID should refer to the ExecID of the last corrected ExecutionRpt (same convention as ClOrdID and OrigClOrdID). To correct an ExecutionRpt which was previously canceled, an ExecutionRpt with ExecTransType=New should be sent (e.g. cannot send ExecTransType=Correct for an ExecutionRpt with ExecTransType=Cancel). Note: Data reported in the CumQty, LeavesQty, and AvgPx fields represent the status of the order as of the time of the correction, not as of the time of the originally reported execution.

    See Appendix D: Order State Change Matrices for examples of key state changes, processing of cancel and cancel/replace requests, and for execution cancel/corrects.

    An ExecutionRpt with ExecType = Restated represents an ExecutionRpt sent by the sellside communicating a change in the order or a restatement of the order’s parameters without an electronic request from the customer. ExecRestatementReason must be set. This is used for GT orders and corporate actions (see below), changes communicated verbally to the sellside either due to normal business practices or as an emergency measure when electronic systems are not available, repricing of orders by the sellside (such as making Sell Short orders compliant with uptick / downtick rules), or other reasons (Broker option). ExecRestatementReason can also be used to communicate unsolicited cancels.

    The field ClOrdID is provided for institutions to affix an identification number to an order to coincide with internal systems. The OrderID field is populated with the broker-generated order number. Unlike ClOrdID/OrigClOrdID which requires a chaining through Cancel/Replaces and Cancels, OrderID and SecondaryOrderID are not required to change through changes to an order.

    The underlying business assumption of orders that can trade over multiple days, such as GTC and Good Till Date orders expiring on a future trading date (henceforth referred to as GT orders) is that a GT order that is not fully executed and has not been canceled and has not expired on a given day remains good for the broker to execute the following day. Note that the concept of day is determined by the market convention, which will be security specific. At the end of each trading day, once the order is no longer subject to execution, the broker may optionally send an Execution Report with ExecType=Done for Day(3). When the ExpireDate or ExpireTime of a Good Till Date order is reached, or a GTC order reaches a maximum age, the order is considered expired and the broker may optionally send an Execution Report with ExecType and OrdStatus=Expired(C).

    In handling GT orders, the OrderQty, CumQty and AvgPx fields will represent the entirety of the order over all days. The fields DayOrderQty, DayCumQty, and DayAvgPx can be used on days following the day of the first trade on a GT order. Prior to the start of business each day, for all GT orders that have partial fills on previous days, DayCumQty and DayAvgPx are set to zero, and DayOrderQty becomes the LeavesQty. The following relationship holds: DayOrderQty = OrderQty – (CumQtyDayCumQty). Since (CumQtyDayCumQty) represents the volume traded on all previous days, DayOrderQty = OrderQtyVolume traded on all previous days. Note that when changing the quantity of an order, both OrderQty and DayOrderQty will change. Requests to change or cancel an order will be made in terms of the total quantity for the order, not the quantity open today. For example, on an order where OrderQty=10000 and 2000 shares trade during the previous days, a request to change OrderQty to 15000 will mean that 13000 shares will be open. See Appendix D – Order State Change Matrices for examples of canceling and changing GT orders partially filled on previous days.

    A Cancel on an execution (trade bust) happening the same day of the trade will result in CumQty and DayCumQty each decreasing by the quantity busted, and LeavesQty increasing by the quantity busted. OrderQty and DayOrderQty will remain unchanged. If the business rules allow for a trade bust to be reported on a later date than the trade being busted, the OrderQty and DayCumQty will remain unchanged, the LeavesQty and DayOrderQty will increase by the quantity busted, and the CumQty will decrease by the quantity busted.

    If bilaterally agreed between counterparties, a broker may wish to transmit a list of all open GT orders, permitting reconciliation of the open orders. Typically this transmission may occur at the end of the trading day or at the start of the following trading day. There is no expected response to such retransmission; in the event of a reconciliation problem this should be resolved manually or via the DK message. Assuming no corporate actions have occurred, the broker will send an Execution Report with ExecType = Restated (D) and ExecRestatementReason = GT renewal / restatement (no corporate action) (1) for each open GT order. These Execution Reports may have DayCumQty and DayAvgPx restated to zero, and DayOrderQty restated to LeavesQty if the transmission occurs at the start of the following business day. The broker has the option of changing the OrderID and SecondaryOrderID fields, or leaving them unchanged. If they are changed, then the buy-side should use these new ID fields when sending Order Cancel Request, Order Cancel/Replace Request, and Order Status Request messages.

    In the case of a corporate action resulting in the adjustment of an open GT order, the broker will send an Execution Report with ExecType = Restated (D) and ExecRestatementReason = GT Corporate action (0) with the order’s state after the corporate action adjustment. In the case of stock splits, OrderQty, CumQty, AvgPx, and LeavesQty will be adjusted to reflect the order’s state in terms of current shares, not pre-split shares. See Appendix D – Order State Change Matrices for examples of GT order restatement with and without a corporate action.

    Field
    Name
    Type
    Req'd
    Comments
    Pedigree
    Y
    MsgType = 8
    Added FIX.2.7
    37
    Y
    Added FIX.2.7
    198
    Can be used to provide order id used by exchange or executing system.
    Added FIX.4.1
    11
    Required for executions against electronically submitted orders which were assigned an ID by the institution. Not required for orders manually entered by the broker.
    Added FIX.2.7
    41
    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.
    Added FIX.4.1
    Updated FIX.4.2
    109
    Used for firm identification in third-party transactions.
    Added FIX.3.0
    76
    Used for firm identification in third-party transactions.
    Added FIX.3.0
    Number of ContraBrokers repeating group instances.
    Added FIX.4.2
    66
    Required for executions against orders which were submitted as part of a list.
    Added FIX.2.7
    17
    Y
    Must be unique for each Execution Report message
    Added FIX.2.7
    Updated FIX.4.2
    20
    Y
    Added FIX.2.7
    19
    Required for Cancel and Correct ExecTransType messages
    Added FIX.2.7
    150
    Y
    Describes the type of execution report. Same possible values as OrdStatus.
    Added FIX.4.1
    39
    Y
    Describes the current state of a CHAIN of orders, same scope as OrderQty, CumQty, LeavesQty, and AvgPx
    Added FIX.2.7
    Updated FIX.4.1
    103
    For optional use with ExecType = 8 (Rejected)
    Added FIX.2.7
    Updated FIX.4.1
    378
    Required for ExecType = D (Restated).
    Added FIX.4.2
    1
    Required for executions against electronically submitted orders which were assigned an account by the institution
    Added FIX.2.7
    63
    Absence of this field is interpreted as Regular.
    Added FIX.2.7
    64
    Required when SettlmntTyp = 6 (Future) or SettlmntTyp = 8 (Sellers Option)
    Added FIX.2.7
    55
    Y
    Added FIX.2.7
    65
    Added FIX.2.7
    48
    Added FIX.2.7
    22
    Added FIX.2.7
    167
    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.
    Added FIX.4.1
    200
    For Options or Futures to specify the month and year of maturity.
    Added FIX.4.1
    205
    For Options or Futures and can be used in conjunction with MaturityMonthYear to specify a particular maturity date.
    Added FIX.4.1
    201
    For Options.
    Added FIX.4.1
    202
    For Options.
    Added FIX.4.1
    206
    For Options.
    Added FIX.4.1
    231
    For Fixed Income, Convertible Bonds, Derivatives, etc. Note: If used, quantities should be expressed in the "nominal" (e.g. contracts vs. shares) amount.
    Added FIX.4.2
    223
    For Fixed Income.
    Added FIX.4.2
    207
    Can be used to identify the security.
    Added FIX.4.1
    106
    Added FIX.3.0
    348
    Must be set if EncodedIssuer field is specified and must immediately precede it.
    Added FIX.4.2
    349
    Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding field.
    Added FIX.4.2
    107
    Added FIX.3.0
    350
    Must be set if EncodedSecurityDesc field is specified and must immediately precede it.
    Added FIX.4.2
    351
    Encoded (non-ASCII characters) representation of the SecurityDesc field in the encoded format specified via the MessageEncoding field.
    Added FIX.4.2
    54
    Y
    Added FIX.2.7
    38
    Either CashOrderQty or OrderQty is required. Not required for a rejected cash order or an order ack for a cash order.
    Added FIX.2.7
    Updated FIX.4.2
    152
    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.
    Added FIX.4.2
    40
    Added FIX.4.0
    44
    Required if specified on the order
    Added FIX.2.7
    Updated FIX.4.1
    99
    Required if specified on the order
    Added FIX.2.7
    Updated FIX.4.1
    211
    Required if specified on the order
    Added FIX.4.1
    388
    Code to identify the price a DiscretionOffset is related to and should be mathematically added to. Required if DiscretionOffset is specified.
    Added FIX.4.2
    389
    Amount (signed) added to the “related to” price specified via DiscretionInst.
    Added FIX.4.2
    15
    Added FIX.2.7
    Updated FIX.4.1-errata1
    376
    Added FIX.4.2
    377
    Added FIX.4.2
    59
    Absence of this field indicates Day order
    Added FIX.2.7
    168
    Time specified on the order at which the order should be considered valid
    Added FIX.4.2
    432
    Conditionally required if TimeInForce = GTD and ExpireTime is not specified.
    Added FIX.4.2
    126
    Conditionally required if TimeInForce = GTD and ExpireDate is not specified.
    Added FIX.4.0
    Updated FIX.4.2
    18
    Can contain multiple instructions, space delimited.
    Added FIX.2.7
    Updated FIX.3.0
    47
    Added FIX.2.7
    32
    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.
    Added FIX.2.7
    Updated FIX.4.2
    31
    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.
    Added FIX.2.7
    Updated FIX.4.2
    194
    Applicable for F/X orders
    Added FIX.4.1
    195
    Applicable for F/X orders
    Added FIX.4.1
    30
    Added FIX.2.7
    336
    Added FIX.4.2
    29
    Added FIX.2.7
    151
    Y
    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.
    Added FIX.4.1
    14
    Y
    Currently executed shares for chain of orders.
    Added FIX.2.7
    Updated FIX.4.1
    6
    Y
    Added FIX.2.7
    Updated FIX.3.0
    424
    For GT orders on days following the day of the first trade.
    Added FIX.4.2
    425
    For GT orders on days following the day of the first trade.
    Added FIX.4.2
    426
    For GT orders on days following the day of the first trade.
    Added FIX.4.2
    427
    For use in stating whether executions are booked out or accumulated on a part-filled GT order
    Added FIX.4.2
    75
    Used when reporting other than current day trades.
    Added FIX.3.0
    60
    Added FIX.2.7
    113
    Added FIX.3.0
    12
    Added FIX.4.0
    13
    Added FIX.4.0
    381
    Added FIX.4.2
    Required if any miscellaneous fees are reported. Indicates number of repeating entries.
    Added FIX.4.0
    Deprecated FIX.4.1
    118
    Required if miscellaneous fees are reported, in currency of execution
    Added FIX.4.0
    Deprecated FIX.4.1
    119
    Used to report results of forex accommodation trade
    Added FIX.4.0
    120
    Used to report results of forex accommodation trade
    Added FIX.4.0
    155
    Foreign exchange rate used to compute SettlCurrAmount from Currency to SettlCurrency
    Added FIX.4.1
    156
    Specifies whether the SettlCurrFxRate should be multiplied or divided
    Added FIX.4.1
    21
    Added FIX.4.2
    110
    Added FIX.4.2
    111
    Added FIX.4.2
    77
    For options
    Added FIX.4.2
    210
    Added FIX.4.2
    58
    Added FIX.2.7
    354
    Must be set if EncodedText field is specified and must immediately precede it.
    Added FIX.4.2
    355
    Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.
    Added FIX.4.2
    193
    Can be used with OrdType = “Forex - Swap” to specify the “value date” for the future portion of a F/X swap.
    Added FIX.4.2
    192
    Can be used with OrdType = “Forex - Swap” to specify the order quantity for the future portion of a F/X swap.
    Added FIX.4.2
    439
    Added FIX.4.2
    440
    Added FIX.4.2
    442
    Default is a single security if not specified.
    Added FIX.4.2
    Y
    Added FIX.2.7

    Orchimate Copyright 2026 Atomic Wire Technology Limited
    Orchestra Copyright 2026 FIX Protocol Ltd
    Terms of Service|Privacy Policy