Drop Copy
Overview
EDX Markets FIX specifications are based on the FIX Trading Community FIX 5.0 SP2 specifications.
Supported Messages
The following convention is used in this document to indicate message direction:
- IN: a message type received by EDX.
- OUT: a message type originating from EDX.
- IN/OUT: a message type that can be sent to or from EDX.
The values under the “Required” column indicate one of the following:
- ‘Y’ – field is mandatory and must be sent or received as a part of the message.
- ‘N’ – field is not required and should be omitted unless otherwise directed by EDX.
- ‘N/A’ – Field is not used in the context of the message.
Drop Copy Configuration
The Drop Copy Feed returns Execution Reports. By default, Drop Copy sessions are configured to receive only fill Execution Reports.
Session Recovery
Fills that occur while a FIX session is disconnected will be replay-able from buffer when the session reconnects using a TradeCaptureReport Request with the relevant value in the TrdMatchID Tag.
If your drop copy session was configured by Market Operations to receive TradeCaptureReport messages:
- If
TrdMatchIDin theTradeCaptureReportRequestis not specified, the subscription will publish live trades only. - If
TrdMatchIDin theTradeCaptureReportRequestis0, the subscription will publish trades from as far back as the buffer will allow, then continue publishing live trades. - If
TrdMatchIDin theTradeCaptureReportRequestis>0, the subscription will publish trades from as far back as the buffer will allow (starting at the specifiedTrdMatchID), then continue publishing live trades.
The recommended usage for Option 3 is to use the TrdMatchID of the last seen trade or the TrdMatchID of the last
seen trade plus 1 depending on whether you want to be inclusive or exclusive of the trade last seen.
If your drop copy session was configured by Market Operations to receive ExecutionReport messages, you will only
receive live executions, regardless of the value of TrdMatchID in TradeCaptureReportRequest.
Trade Capture Report Request
TradeCaptureReportRequest (IN)
Fields
| Tag | Name | Required | Comments |
|---|---|---|---|
| Standard Header | Y | MsgType 35=AD | |
| 568 | TradeRequestID | Y | TradeCaptureReportRequest ID. |
| 569 | TradeRequestType | Y | Both values behave the same. See tag 880 for options to specify the start of the Drop Copy Feed. ALL_TRADES [0] TRADES_MATCHING_CRITERIA [1] |
| 880 | TrdMatchID | N | Depending on your Drop Copy session configuration, the feed can replay trades starting at the provided TrdMatchID. See 'Session Recovery'. |
| Standard Footer | Y |
Example
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 74
[MsgType] 35 = AD
[MsgSeqNum] 34 = 10
[SendingTime] 52 = 20240728-22:59:56.000
[SenderCompID] 49 = USERNAME
[TargetCompID] 56 = EDXM
[TradeRequestID] 568 = 143525341
[TradeRequestType] 569 = 0
[TrdMatchID] 880 = 3198759860848
[CheckSum] 10 = 174
TradeCaptureReportRequestAck (OUT)
Fields
| Tag | Name | Required | Comments |
|---|---|---|---|
| Standard Header | Y | MsgType 35=AQ | |
| 568 | TradeRequestID | Y | TradeCaptureReportRequest ID. |
| 569 | TradeRequestType | Y | ALL_TRADES [0] TRADES_MATCHING_CRITERIA [1] |
| Standard Footer | Y |
Example
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 76
[MsgType] 35 = AQ
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 11
[SendingTime] 52 = 20240728-22:59:50.540
[TradeRequestID] 568 = 234235912
[TradeRequestType] 569 = 0
[CheckSum] 10 = 193
ExecutionReport (OUT)
Fields
| Tag | Name | Required | Comments |
|---|---|---|---|
| Standard Header | Y | MsgType 35=8 | |
| 37 | OrderID | Y | Exchange provided OrderID. |
| 11 | ClOrdID | Y | Client Identifier for the Order. |
| 41 | OrigClOrdID | N | The ClOrdID associated with the replaced order. |
| 583 | ClOrdLinkID | N | Client provided metadata for the order that is echoed on execution reports. |
| 17 | ExecID | Y | Unique identifier of execution message as assigned by the exchange. |
| 150 | ExecType | Y | Specified the Type of the Execution Report: NEW [0] TRADE [F] – Partial fill or fill. EXPIRED [C] REJECTED [8] |
| 39 | OrdStatus | Y | Indicates the status of an order: NEW [0] PARTIALLY_FILLED [1] FILLED [2] EXPIRED [C] REJECTED [8] |
| 103 | OrderRejReason | N | Identifies the reason a new order was rejected by the system. EDX supports the following values: BROKER_EXCHANGE_OPTION [0] UNKNOWN_SYMBOL [1] UNKNOWN_ORDER [5] DUPLICATE_ORDER [6] UNSUPPORTED_ORDER_CHARACTERISTIC [11] INCORRECT_QUANTITY [13] PRICE_EXCEEDS_CURRENT_PRICE_BAND [16] OTHER [99] EDX exclusive values: ORDER_BOOK_IN_SUSPENDED_STATE [100] ORDER_BOOK_IN_HALT_STATE [101] ORDER_BOOK_IN_EXPIRED_STATE [102] ORDER_BOOK_IN_LISTED_STATE [103] ORDER_BOOK_IN_POST_ONLY_STATE [104] ORDER_BREACHES_BASE_POSITION_LIMIT [105] ORDER_BREACHES_QUOTE_POSITION_LIMIT [106] ACCESS_TO_DESIGNATED_RETAIL_DENIED [200] |
| 1 | Account | Y | Account mnemonic. |
| 55 | Symbol | Y | The instrument for the Order. Example: BTC/USD, ETH/USD, LTC/USD |
| 54 | Side | Y | Order Side: BUY [1] – This is a buy order. SELL [2] – This is a sell order. |
| 38 | OrderQty | N | Quantity of the Order. |
| 152 | CashOrderQty | N | The notional quantity of the order. |
| 5151 | LeavesQuoteQty | N | The remaining notional quantity of the order. Only applies to orders placed as CashOrderQty. |
| 5152 | CumQuoteQty | N | The filled notional quantity of the order. Only applies to orders placed as CashOrderQty. |
| 40 | OrdType | Y | Describes the type of Order being placed: MARKET [1] LIMIT [2] |
| 44 | Price | N | The Price of the Traded Instrument. |
| 59 | TimeInForce | N | When the order should expire: GOOD_TILL_CANCEL [1] IMMEDIATE_OR_CANCEL [3] FILL_OR_KILL [4] GOOD_TILL_DATE [6] GOOD_FOR_TIME [A] |
| 126 | ExpireTime | N | UTC timestamp/ Expiry Time for a GTD Limit Order. |
| 18 | ExecInst | N | Additional controls around the execution of an order. Currently supported options: PARTICIPATE_DONT_INITIATE [6] – Indicates that this is a Post Only Limit Order. |
| 32 | LastQty | N | Quantity bought/sold on this (last) fill. |
| 31 | LastPx | N | Price of this (last) fill. |
| 151 | LeavesQty | Y | Order Quantity available for further execution. |
| 14 | CumQty | Y | Quantity Executed in the current Order Chain. |
| 6 | AvgPx | Y | Calculated average price for fills and partial fills. |
| 75 | TradeDate | N | Indicates date of trade referenced in this message. |
| 60 | TransactTime | Y | Exchange provided timestamp generated by the match engine. |
| 58 | Text | N | Describes cancel reason. In the case of unsolicited cancels due to limit breaches, will be set to BREACHED_QUOTE_POSITION_LIMIT or BREACHED_BASE_POSITION_LIMIT. |
| 880 | TrdMatchID | N | Identifier assigned to the Trade by the matching system. |
| 851 | LastLiquidityInd | N | Indicates the liquidity code for this execution: ADDED_LIQUIDITY [1] - The order added displayed liquidity to the Exchange book. REMOVED_LIQUIDITY [2] - The order removed liquidity from the Exchange book. RETAIL_LIQUIDITY_ADDED [70] - The order available for retail access only added liquidity to the Exchange book. RETAIL_LIQUIDITY_REMOVED [71] - The order available for retail access only removed liquidity from the Exchange book. DESIGNATED_RETAIL_ADDED [170] - The designated retail-only order added liquidity to the Exchange book. DESIGNATED_RETAIL_REMOVED [171] - The designated retail only order removed liquidity from the Exchange book. |
| >453 | NoPartyIDs | N | Number of PartyID, PartyIDSource and PartyRole entries. |
| >448 | PartyID | N | Party Identifier/Code. |
| >447 | PartyIDSource | N | Identifies class or source of the PartyID value. Required if PartyID is specified. Note: applicable values depend upon PartyRole specified. |
| >452 | PartyRole | N | Identifies the type or role of the PartyID specified. |
| 1056 | CalculatedCcyLastQty | N | Used for the calculated quantity of the other side of the currency trade. |
| 15 | Currency | N | Identifies currency used for price or quantity fields. Example: BTC, ETH, LTC |
| 120 | SettlCurrency | N | Currency code of settlement denomination. |
| 528 | OrderCapacity | N | Designates the capacity of the firm placing the order: AGENCY [A] PRINCIPAL [P] RISKLESS_PRINCIPAL [R] |
| 582 | CustOrderCapacity | N | Capacity of customer placing the order: MEMBER_TRADING_FOR_THEIR_OWN_ACCOUNT [1] RETAIL_CUSTOMER [5] |
| 136 | NoMiscFees | N | Number of repeating groups of miscellaneous fees. |
| >891 | MiscFeeBasis | N | Defines the unit for miscellaneous fee. Always ABSOLUTE [0] |
| >137 | MiscFeeAmt | N | Miscellaneous fee value. |
| >138 | MiscFeeCurr | N | Currency of miscellaneous fee. Will match the quote asset associated with the traded instrument. |
| >139 | MiscFeeType | N | Indicates type of miscellaneous fee. Valid values for EDX: EXCHANGE_FEES [4] OTHER [7] REBATE [33] Other represents estimated fees for new and replaced order status. |
| 9416 | ExtendedExecInst | N | Designates that an order is a Retail order or a Retail Liquidity Providing order. DESIGNATED_RETAIL [R] - Indicates that this is a Retail Taker order. RETAIL_LIQUIDITY_PROVIDER [T] - Indicates that this is a Retail Maker order. |
| 5040 | NoCapacityEntries | Y | Number of repeating groups for capacity entries. |
| >5041 | AvailableCapacity | Y | Remaining long/short trade limit capacity. |
| >5042 | CapacityCurrency | Y | Long/short risk asset. Expect 2 entries for every spot order/instrument. Buy order example - BTC/USD order expect to see both Buy BTC and Sell USD entries. Sell order example - BTC/USD order expect to see both Sell BTC and Buy USD entries. |
| >5043 | CapacitySide | Y | Long/short risk limit indicator: BUY [1] SELL [2] |
| Standard Footer | Y |
Example (NEW)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 315
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 12
[SendingTime] 52 = 20250308-00:51:40.309
[OrderID] 37 = 3482909417980013939
[ClOrdID] 11 = 542234423134
[ExecID] 17 = 3482909417980013940
[ExecType] 150 = 0
[OrdStatus] 39 = 0
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[Side] 54 = 1
[OrderQty] 38 = 1
[OrdType] 40 = 2
[Price] 44 = 89000
[TimeInForce] 59 = 1
[LeavesQty] 151 = 1
[CumQty] 14 = 0
[AvgPx] 6 = 0
[TransactTime] 60 = 20250308-00:51:40.300182688
[NoMiscFees] 136 = 1
[MiscFeeAmt] 137 = 9.0
[MiscFeeCurr] 138 = USD
[MiscFeeType] 139 = 7
[MiscFeeBasis] 891 = 0
[NoPartyIDs] 453 = 1
[PartyID] 448 = USERNAME
[PartyIDSource] 447 = D
[PartyRole] 452 = 44
[OrderCapacity] 528 = P
[CustOrderCapacity] 582 = 1
[NoCapacityEntries] 5040 = 2
[AvailableCapacity] 5041 = 4
[CapacityCurrency] 5042 = USD
[CapacitySide] 5043 = 1
[AvailableCapacity] 5041 = 9910999
[CapacityCurrency] 5042 = BTC
[CapacitySide] 5043 = 2
[CheckSum] 10 = 237
Example (REPLACE)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 308
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 227
[SendingTime] 52 = 20250308-01:14:28.265
[OrderID] 37 = 3242898425879913838
[ClOrdID] 11 = 542532324
[OrigClOrdID] 41 = 139048181
[ExecID] 17 = 3482909417980013940
[ExecType] 150 = 5
[OrdStatus] 39 = 0
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[Side] 54 = 1
[OrderQty] 38 = 1
[OrdType] 40 = 2
[Price] 44 = 88000
[TimeInForce] 59 = 1
[LeavesQty] 151 = 1
[CumQty] 14 = 0
[AvgPx] 6 = 0
[TransactTime] 60 = 20250308-01:14:28.241593955
[NoMiscFees] 136 = 1
[MiscFeeAmt] 137 = 9.8725
[MiscFeeCurr] 138 = USD
[MiscFeeType] 139 = 7
[MiscFeeBasis] 891 = 0
[NoCapacityEntries] 5040 = 2
[AvailableCapacity] 5041 = 2
[CapacityCurrency] 5042 = BTC
[CapacitySide] 5043 = 1
[AvailableCapacity] 5041 = 9733999
[CapacityCurrency] 5042 = USD
[CapacitySide] 5043 = 2
[CheckSum] 10 = 108
Example (TRADE)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 385
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 183
[SendingTime] 52 = 20250308-01:03:34.343
[OrderID] 37 = 3262887839789919387
[ClOrdID] 11 = 234245245
[ExecID] 17 = 3262887839789983788
[ExecType] 150 = F
[OrdStatus] 39 = 2
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[Side] 54 = 1
[OrderQty] 38 = 1
[OrdType] 40 = 2
[Price] 44 = 89000
[TimeInForce] 59 = 1
[LastQty] 32 = 1
[LastPx] 31 = 89000
[LeavesQty] 151 = 0
[CumQty] 14 = 1
[AvgPx] 6 = 89000
[TradeDate] 75 = 20250308
[TransactTime] 60 = 20250308-01:03:34.305526503
[TrdMatchID] 880 = 3333259586143518720
[LastLiquidityInd] 851 = 1
[NoPartyIDs] 453 = 1
[PartyID] 448 = USERNAME
[PartyIDSource] 447 = D
[PartyRole] 452 = 44
[CalculatedCcyLastQty] 1056 = 89000
[Currency] 15 = BTC
[SettlCurrency] 120 = USD
[NoCapacityEntries] 5040 = 2
[AvailableCapacity] 5041 = 4
[CapacityCurrency] 5042 = BTC
[CapacitySide] 5043 = 1
[AvailableCapacity] 5041 = 9910999
[CapacityCurrency] 5042 = USD
[CapacitySide] 5043 = 2
[CheckSum] 10 = 095
Example (CANCELLED)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 326
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 15
[SendingTime] 52 = 20250308-00:51:11.442
[OrderID] 37 = 34242987616870012848
[ClOrdID] 11 = 5435326523
[OrigClOrdID] 41 = 2354353242
[ExecID] 17 = 8352898797388452814
[ExecType] 150 = 4
[OrdStatus] 39 = 4
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[Side] 54 = 1
[OrderQty] 38 = 1
[OrdType] 40 = 2
[Price] 44 = 89000
[TimeInForce] 59 = 1
[LeavesQty] 151 = 0
[CumQty] 14 = 0
[AvgPx] 6 = 0
[TransactTime] 60 = 20250308-00:51:11.428151034
[Text] 58 = USER_INITIATED
[NoPartyIDs] 453 = 1
[PartyID] 448 = USERNAME
[PartyIDSource] 447 = D
[PartyRole] 452 = 44
[NoCapacityEntries] 5040 = 2
[AvailableCapacity] 5041 = 5
[CapacityCurrency] 5042 = BTC
[CapacitySide] 5043 = 1
[AvailableCapacity] 5041 = 9999999
[CapacityCurrency] 5042 = USD
[CapacitySide] 5043 = 2
[CheckSum] 10 = 061
Example (REJECTED)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 239
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 16
[SendingTime] 52 = 20240729-00:19:29.378
[OrderID] 37 = NONE
[ClOrdID] 11 = 324234234
[ExecID] 17 = 3252776287218878480
[ExecType] 150 = 8
[OrdStatus] 39 = 8
[OrdRejReason] 103 = 1
[Account] 1 = USERNAME
[Symbol] 55 = UNKNOWN
[Side] 54 = 1
[OrdType] 40 = 2
[LeavesQty] 151 = 0
[CumQty] 14 = 0
[AvgPx] 6 = 0
[TransactTime] 60 = 20240729-00:19:29.370662362
[Text] 58 = UNKNOWN_INSTRUMENT
[NoPartyIDs] 453 = 1
[PartyID] 448 = USERNAME
[PartyIDSource] 447 = D
[PartyRole] 452 = 44
[CheckSum] 10 = 069
Example (EXPIRED)
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 248
[MsgType] 35 = 8
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 17
[SendingTime] 52 = 20240729-00:43:44.017
[OrderID] 37 = 3262894187877389770
[ClOrdID] 11 = 3254234425244
[OrigClOrdID] 41 = 2542543211412
[ExecID] 17 = 8352894441399792257
[ExecType] 150 = C
[OrdStatus] 39 = C
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[Side] 54 = 1
[OrderQty] 38 = 3.432
[OrdType] 40 = 2
[Price] 44 = 61500
[TimeInForce] 59 = 6
[ExpireTime] 126 = 20240729-00:43:33.000
[LeavesQty] 151 = 0
[CumQty] 14 = 0
[AvgPx] 6 = 0
[TransactTime] 60 = 20240729-00:43:33.014048214
[CheckSum] 10 = 181
OrderCancelReject (OUT)
Fields
| Tag | Name | Required | Comments |
|---|---|---|---|
| Standard Header | Y | MsgType 35=9 | |
| 37 | OrderID | Y | Exchange provided OrderID. |
| 11 | ClOrdID | Y | Client Identifier for the Order. |
| 583 | ClOrdLinkID | N | Permits order originators to tie together groups of orders in which trades resulting from orders are associated for a specific purpose, for example the calculation of average execution price for a customer. |
| 41 | OrigClOrdID | Y | Client Identifier for the Order to be cancelled. |
| 39 | OrdStatus | Y | Indicates the status of an order: REJECTED [8] |
| 1 | Account | Y | Account mnemonic. |
| 60 | TransactTime | Y | Exchange provided timestamp generated by the match engine. |
| 434 | CxlRejResponseTo | Y | Indicates the message type the Reject is in response to. ORDER_CANCEL_REQUEST [1] ORDER_CANCEL_REPLACE_REQUEST [2] |
| 102 | CxlRejReason | Y | The code which identifies the reason for the cancel reject. EDX's system supports the following values: UNKNOWN_ORDER [1] PRICE_EXCEEDS_CURRENT_PRICE_BAND [8] OTHER [99] EDX exclusive values: ORDER_BREACHES_BASE_POSITION_LIMIT [16] ORDER_BREACHES_QUOTE_POSITION_LIMIT [17] ORDER_BOOK_IN_SUSPENDED_STATE [100] ORDER_BOOK_IN_HALT_STATE [101] ORDER_BOOK_IN_EXPIRED_STATE [102] ORDER_BOOK_IN_LISTED_STATE [103] ORDER_BOOK_IN_POST_ONLY_STATE [104] |
| 5040 | NoCapacityEntries | Y | Number of repeating groups for capacity entries. |
| >5041 | AvailableCapacity | Y | Remaining long/short trade limit capacity. |
| >5042 | CapacityCurrency | Y | Long/short risk asset. Expect 2 entries for every spot order/instrument. Buy order example - BTC/USD order expect to see both Buy BTC and Sell USD entries. Sell order example - BTC/USD order expect to see both Sell BTC and Buy USD entries. |
| >5043 | CapacitySide | Y | Long/short risk limit indicator: BUY [1] SELL [2] |
| 58 | Text | Y | Describes reason for rejection. |
| Standard Footer | Y |
Example
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 142
[MsgType] 35 = 9
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 18
[SendingTime] 52 = 20240729-00:15:14.660
[OrderID] 37 = NONE
[ClOrdID] 11 = 14713347
[OrigClOrdID] 41 = 23523423
[OrdStatus] 39 = 8
[Account] 1 = USERNAME
[TransactTime] 60 = 20240729-00:15:14.655794062
[CxlRejResponseTo] 434 = 1
[CxlRejReason] 102 = 1
[Text] 58 = UNKNOWN_ORDER
[CheckSum] 10 = 195
Trade Capture Report
TradeCaptureReport (OUT)
Fields
| Tag | Name | Required | Comments |
|---|---|---|---|
| Standard Header | Y | MsgType 35=AE | |
| 571 | TradeReportID | Y | Unique identifier of Trade Capture Report. |
| 568 | TradeRequestID | N | Trade Capture Report Request ID. |
| 487 | TradeReportTransType | N | Identifies Trade Report message transaction type. |
| 37 | OrderID | Y | Exchange provided OrderID. |
| 11 | ClOrdID | N | Client Identifier for the Order. |
| 583 | ClOrdLinkID | N | Client provided metadata for the order that is echoed on Execution Reports. |
| 17 | ExecID | Y | Unique identifier of execution message as assigned by the exchange. |
| 150 | ExecType | Y | Specifies the type of Execution Report: NEW [0] CANCELED [4] REPLACE [5] REJECTED [8] EXPIRED [C] TRADE [F] ORDER_STATUS [I] |
| 325 | UnsolicitedIndicator | N | Indicates whether or not message is being sent as a result of a subscription request or not. |
| 527 | SecondaryExecID | N | Assigned by the party which accepts the order. Can be used to provide the ExecID used by an exchange or executing system. |
| 1 | Account | N | Account associated with the order. |
| 55 | Symbol | N | The instrument for the Order. Example: BTC/USD, ETH/USD, LTC/USD |
| 552 | NoSides | Y | Number of Side repeating group instances. One side [1] Both sides [2] |
| 54 | Side | Y | Defines the side of an order. Buy [1] Sell [2] |
| 32 | LastQty | Y | Quantity bought/sold on this (last) fill. |
| 31 | LastPx | Y | Price of this (last) fill. |
| 570 | PreviouslyReported | Y | Indicates if the trade capture report was previously reported to the counterparty. Not reported to counterparty [N] Previously reported to counterparty [Y] |
| 75 | TradeDate | Y | Date of trade referenced in this message. |
| 60 | TransactTime | Y | Time of execution/order creation. UTC timestamp. |
| 880 | TrdMatchID | N | Identifier assigned to the trade by the matching system. |
| 851 | LastLiquidityInd | Y | Indicates the liquidity code for this execution: ADDED_LIQUIDITY [1] - The order added displayed liquidity to the Exchange book. REMOVED_LIQUIDITY [2] - The order removed liquidity from the Exchange book. RETAIL_LIQUIDITY_ADDED [70] - The order available for retail access only added liquidity to the Exchange book. RETAIL_LIQUIDITY_REMOVED [71] - The order available for retail access only removed liquidity from the Exchange book. DESIGNATED_RETAIL_ADDED [170] - The designated retail-only order added liquidity to the Exchange book. DESIGNATED_RETAIL_REMOVED [171] - The designated retail-only order removed liquidity from the Exchange book. |
| 453 | NoPartyIDs | N | Number of PartyID, PartyIDSource and PartyRole entries. |
| >448 | PartyID | N | Party identifier/code. |
| >447 | PartyIDSource | N | Identifies class or source of the PartyID value. Required if PartyID is specified. Note: applicable values depend upon PartyRole specified. |
| >452 | PartyRole | N | Identifies the type or role of the PartyID specified. |
| 1056 | CalculatedCcyLastQty | N | Used for the calculated quantity of the other side of the currency trade. |
| 15 | Currency | N | Identifies currency used for price. |
| 120 | SettlCurrency | N | Currency code of settlement denomination. |
| 136 | NoMiscFees | N | Number of repeating groups of miscellaneous fee. |
| >137 | MiscFeeAmt | N | Miscellaneous fee value. |
| >138 | MiscFeeCurr | N | Currency of miscellaneous fee. Will match the quote asset associated with the traded instrument. |
| >139 | MiscFeeType | N | Indicates type of miscellaneous fee. Valid values for EDX: EXCHANGE_FEES [4] OTHER [7] REBATE [33] Other represents estimated fees for new and replaced order status. |
| >891 | MiscFeeBasis | N | Defines the unit for miscellaneous fee. Always ABSOLUTE [0] |
| 9416 | ExtendedExecInst | N | Designates that an order is a Retail order or a Retail Liquidity Providing order. DESIGNATED_RETAIL [R] - Indicates that this is a Retail Taker order. RETAIL_LIQUIDITY_PROVIDER [T] - Indicates that this is a Retail Maker order. |
| 5001 | EnrichedTradePx | N | Optional client display trade price, for internal use only. |
| 828 | TrdType | N | Conditionally required for perps instrument type trades. REGULAR_TRADE [0] - Occurs when the customer places orders in the open market. LIQUIDATION_TRADE [9000] - Occurs when the exchange's liquidation engine places an order in the open market. |
| Standard Footer | Y |
Example
[BeginString] 8 = FIXT.1.1
[BodyLength] 9 = 347
[MsgType] 35 = AE
[SenderCompID] 49 = EDXM
[TargetCompID] 56 = USERNAME
[MsgSeqNum] 34 = 3
[SendingTime] 52 = 20250513-15:35:29.954
[TradeReportID] 571 = 3357396612971233282
[TradeRequestID] 568 = 01
[TradeReportTransType] 487 = 0
[OrderID] 37 = 3357396612971233280
[ClOrdID] 11 = 3
[ExecID] 17 = 3357396612971233282
[ExecType] 150 = F
[UnsolicitedIndicator] 325 = N
[Account] 1 = USERNAME
[Symbol] 55 = BTC/USD
[NoSides] 552 = 1
[Side] 54 = 1
[LastQty] 32 = 0.01
[LastPx] 31 = 103525.78
[PreviouslyReported] 570 = N
[TradeDate] 75 = 20250512
[TransactTime] 60 = 20250513-15:35:29.945323648
[TrdMatchID] 880 = 3357396612971233280
[LastLiquidityInd] 851 = 2
[NoPartyIDs] 453 = 1
[PartyID] 448 = USERNAME
[PartyIDSource] 447 = D
[PartyRole] 452 = 44
[CalculatedCcyLastQty] 1056 = 1035.2578
[Currency] 15 = BTC
[SettlCurrency] 120 = USD
[CheckSum] 10 = 003
Change Log
| Date | Section/Message | Description |
|---|---|---|
| 3/4/2024 | N/A | Initial v1.0 release of FIX Drop Copy specifications for EDX Markets match engine. |
| 3/14/2024 | Logon Message | v1.0.1
|
| 3/26/2024 | Tag 851 - LastLiquidityInd | v1.0.2
|
| 3/27/2024 | Tag 580 - NoDates | v1.0.3
|
| 4/5/2024 | Trade Capture Report - NoMiscFees | v1.0.4
|
| 4/24/2024 | ExecutionReport, OrderCancelReject | v1.0.5
|
| 4/26/2024 | Login (IN) | v1.0.6
|
| 4/26/2024 | Logout (OUT) | v1.0.6
|
| 5/1/2024 | Throttle Limits | v1.0.7
|
| 5/3/2024 | ExecutionReport (OUT), OrderCancelReject (OUT) | v1.0.8
|
| 5/3/2024 | TradeCaptureReport (OUT) | v1.0.8
|
| 5/13/2024 | Drop Copy Configuration | v1.0.9
|
| 5/13/2024 | Sequence Reset | v1.0.9
|
| 5/14/2024 | ExecutionReport (OUT) | v1.0.10
|
| 5/22/2024 | Subscription Interaction Model | v1.0.11
|
| 6/01/2024 | TradeCaptureReportRequest (IN) | v1.0.12
|
| 6/03/2024 | TradeCaptureReportRequest (IN) > TradeDate | v1.0.13
|
| 7/30/2024 | Overview | v1.0.14
|
| 7/30/2024 | Logon | v1.0.14
|
| 7/30/2024 | Test Request | v1.0.14
|
| 7/30/2024 | Resend Request | v1.0.14
|
| 7/30/2024 | Trade Capture Report Request | v1.0.14
|
| 7/30/2024 | Execution Report | v1.0.14
|
| 7/30/2024 | Order Cancel Reject | v1.0.14
|
| 08/28/2024 | TradeCaptureReportRequest (IN) | V1.0.15
|
| 08/29/2024 | Execution Report | V1.0.15
|
| 08/29/2024 | Trade Capture Report | Tag 5001(EnrichedTradePx) added |
| 08/31/2024 | Trade Capture Report | v1.0.16
|
| 12/23/2024 | Execution Report | v1.0.17
|
| 01/22/2025 | OrderCancelReject | V1.0.18
|
| 05/15/2025 | Execution Report | V1.0.19
|
| 06/12/2025 | Standard Header (OUT) | V1.0.20
|
| 7/15/2025 | OrderCancelReject(OUT), ExecutionReport(OUT) | V1.0.21
|
| 03/07/2026 | Execution Report | V1.0.22
|
| 03/07/2026 | Execution Report | V1.0.23
|