The Execution Report <8>
message is used to
- Acknowledge the receipt of an order
- Confirm changes to an existing order (i.e. cancelled or replaced)
- Reject order
Tag | Field Name | Data Type | Req’d | Comments |
---|---|---|---|---|
Standard header - Outgoing | Y | MsgType 35=8 | ||
37 | OrderID | string | N | Unique identifier for Order as assigned by the Exchange. |
198 | SecondaryOrderID | string | N | Unique identifier for Order as assigned by the Exchange(in a different format). |
11 | ClOrdID | string | Y | Unique identifier of the order as assigned by client. |
41 | OrigClOrdID | string | C | ClOrdID <11> of the existing order that the amend/cancel request want to execute. |
453 | NoPartyIDs | int | N | A repeating group (↺) which should contain unique combinations of below tags: PartyID <448> PartyIDSource <447> PartyRole <452> |
↺ 448 | PartyID | string | C | Party identifier/code. It can be an Exchange firm name or user unique identifier that is the same as tag 1. e.g. XXXX_GROUP. |
↺ 447 | PartyIDSource | string | N | Identifies class or source of PartyID <448> Valid value:D - Proprietary/Custom code |
↺ 452 | PartyRole | int | N | Identifies the type of PartyID <448> Valid values:1 - Executing Firm12 - Executing Trader |
17 | ExecID | string | Y | Unique identifier of execution message as assigned by the Exchange. |
527 | SecondaryExecID | string | N | Unique identifier for executed fill as assigned by the Exchange(in a different format), an alphanumeric string of no more than 20 characters. |
150 | ExecType | string | Y | Describes the specific Execution Report while OrdStatus <39> will always identify the current order status. Valid values:0 - New4 - Canceled5 - Replaced8 - Rejected9 - SuspendedC - ExpiredD - Restated (new or partial fill)F - Trade (partial fill or fill)The supported combination of ExecType <150> and OrdStatus <39> is listed in the reference table below |
39 | OrdStatus | string | Y | Identifies current status of order. Valid values:0 - New1 - Partially filled2 - Filled4 - Cancelled5 - Replaced8 - Rejected9 - SuspendedC - ExpiredThe supported combination of ExecType <150> and OrdStatus <39> is listed in the reference table below |
103 | OrdRejReason | int | N | Code to identify the reason for order rejection. |
378 | ExecRestatement | int | N | Code to identify reason for an ExecutionRpt <8> message sent with ExecType <150> is Restated <D> .Valid values: 8 - Market (Exchange) Option99 - Other |
382 | NoContraBrokers | int | N | Number of repeating groups of contra brokers |
↺ 375 | ContraBroker | string | N | Can be used to provide additional trade into by executing system. Required if NoContraBroker <382> is > 0. |
1 | Account | string | Y | The Exchange user uuid which is the same as the one specify in Logon <A> message Username <553> field. |
660 | AcctIDSource | int | Y | Uses to identify the source of the Account <1> code. Valid value:99 - Other (custom or proprietary). |
63 | SettleType | int | Y | Indicates order settlement period. Valid value:0 - Regular |
55 | Symbol | string | Y | Currency-pair. |
54 | Side | int | Y | Side of order. Valid values:1 - Buy2 - Sell |
31 | LastPx | float | C | The price of this trade. Required if ExecType = TRADE (150=F ) |
32 | LastQty | float | C | The quantity bought / sold on this trade. Required if ExecType = TRADE (150=F ) |
854 | QtyType | int | Y | Type of quantity. Valid values:0 - Units (currency) |
38 | OrderQty | float | C | Quantity to trade. Not required if OrdStatus = REJECTED (39=8 ) |
40 | OrdType | int | Y | Order type. Valid values:1 = Market2 = Limit |
59 | TimeInForce | int | N | Specifies how long the order remains in effect. Valid values:0 - Day1 - Good Till Cancel (GTC)3 - Immediate or Cancel (IOC)4 - Fill or Kill (FOK)6 - Good Till Day (GTD)NOTES: - Exchange will convert to Day automatically if invalid value detected. For market orders, TimeInForce will be ignored. - A Day order will expire after 23:59:59 UTC of the same day it was posted on. |
126 | ExpireTime | timestamp | C | The time of order expiration (UTC). Required if TimeInForce is GTD (59=6 ) and ExpireDate <432> is not present in the message. The order will expire on ExpireTime of the same day the order is entered. |
432 | ExpireDate | timestamp | C | The date of order expiration (local market date, in UTC time). Required if TimeInForce is GTD (59=6 ) and ExpireTime <126> is not present in the message. The order will expire after 23:59:59 UTC on ExpireDate . |
423 | PriceType | int | C | Code to represent the price type. Valid values:2 = Per unit Populated if at least one of the price fields is present. |
44 | Price | float | C | Price per unit of quantity (e.g. per 1 BTC coin).successfully placed orders : Required if present on the order request.rejected orders : not required |
1057 | AggressorIndicator | boolean | N | Used to identify whether the order initiator is an aggressor or not in the trade. Valid values:Y - Order initiator is aggressorN - Order initiator is passive |
151 | LeavesQty | float | Y | Outstanding quantity for further execution. |
14 | CumQty | float | Y | Total quantity filled. |
6 | AvgPx | float | Y | Calculated average price of all fills on this order. |
75 | TradeDate | string | N | Indicates date of trade (UTC) referenced in YYYYMMDD format. |
60 | TransactTime | timestamp | Y | Time of execution/order creation in UTC i.e. yyyyMMdd-hh:mm:ss:xxx |
381 | GrossTradeAmt | float | N | Total amount traded (e.g. CumQty <14> x AvgPx <6> ) expressed in units of currency. |
119 | SettlCurrAmt | float | Y | Total amount due expressed in settlement currency. |
120 | SettlCurrency | string | Y | Currency code of settlement denomination. Valid values:USD USDT |
155 | SettlCurrFxRate | float | N | Foreign exchange rate used to compute SettlCurrAmt <119> from Currency <15> to SettlCurrency <120> |
156 | SettlCurrFxRateCalc | char | N | Specifies whether or not SettlCurrFxRate (155) should be multiplied or divided. Valid values:M - MultiplyD - Divide |
110 | MinQty | float | N | Minimum quantity of the order to be executed. |
111 | MaxFloor | float | N | Maximum quantity within the order to be shown on the exchange at any given time. |
136 | NoMiscFee | int | N | Number of repeating groups of miscellaneous fees. |
↺ 137 | MiscFeeAmt | float | C | Miscellaneous fee value. Required if NoMiscFees > 0 and must be the first field in this group. |
↺ 138 | MiscFeeCurr | string | N | Currency of miscellaneous fee. Valid values:USD USDT |
↺ 139 | MiscFeeType | int | N | Indicates type of miscellaneous fee. Valid value:7 = Other |
797 | CopyMsgIndicator | boolean | N | Indicates whether or not this message is a drop copy of another message. |
58 | Text | string | Y | providing supplemental information on the order. |
Standard trailer | Y |
Tag 150 & 39 tag combinations
Below is a table of the supported combination of ExecType <150> and OrdStatus <39>
ExecType <150> | OrdStatus <39> | Comments |
---|---|---|
0 = New | 0 = New | New order placed |
4 = Cancelled | 4 = Cancelled | Order cancelled |
5 = Replaced | 0 = New 1 = Partially filled 9 = Suspended C = Expired | Order that had not received any fills is now replaced Order was partially filled and then replaced Order was amended to be suspended (e.g. at the beginning of cycle, GTC orders get suspended by the Exchange) Order was amended to be expired (e.g. due to self trade) |
8 = Rejected | 8 = Rejected | Order rejected |
9 = Suspended | 9 = Suspended | When market moved from AUCTION to CONTINUOUS, the Exchange sends out the 2nd Ack for orders placed during AUCTION |
C = Expired | C = Expired | Order expired |
D = Restated | 0 = New 1 = Partially filled | When market moved from AUCTION to CONTINUOUS, the Exchange sends out the 3rd Ack for orders placed during AUCTION to move it into active state Order restated and was partially filled |
F = Trade | 1 = Partially filled 2 = Filled | Execution received and order is partially filled Execution received and order is fully filled |