Skip to main content

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 TrdMatchID in the TradeCaptureReportRequest is not specified, the subscription will publish live trades only.
  • If TrdMatchID in the TradeCaptureReportRequest is 0, the subscription will publish trades from as far back as the buffer will allow, then continue publishing live trades.
  • If TrdMatchID in the TradeCaptureReportRequest is >0, the subscription will publish trades from as far back as the buffer will allow (starting at the specified TrdMatchID), 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​

TagNameRequiredComments
Standard HeaderYMsgType 35=AD
568TradeRequestIDYTradeCaptureReportRequest ID.
569TradeRequestTypeYBoth 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]
880TrdMatchIDNDepending on your Drop Copy session configuration, the feed can replay trades starting at the provided TrdMatchID. See 'Session Recovery'.
Standard FooterY

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​

TagNameRequiredComments
Standard HeaderYMsgType 35=AQ
568TradeRequestIDYTradeCaptureReportRequest ID.
569TradeRequestTypeYALL_TRADES [0]
TRADES_MATCHING_CRITERIA [1]
Standard FooterY

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​

TagNameRequiredComments
Standard HeaderYMsgType 35=8
37OrderIDYExchange provided OrderID.
11ClOrdIDYClient Identifier for the Order.
41OrigClOrdIDNThe ClOrdID associated with the replaced order.
583ClOrdLinkIDNClient provided metadata for the order that is echoed on execution reports.
17ExecIDYUnique identifier of execution message as assigned by the exchange.
150ExecTypeYSpecified the Type of the Execution Report:
NEW [0]
TRADE [F] – Partial fill or fill.
EXPIRED [C]
REJECTED [8]
39OrdStatusYIndicates the status of an order:
NEW [0]
PARTIALLY_FILLED [1]
FILLED [2]
EXPIRED [C]
REJECTED [8]
103OrderRejReasonNIdentifies 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]
1AccountYAccount mnemonic.
55SymbolYThe instrument for the Order. Example: BTC/USD, ETH/USD, LTC/USD
54SideYOrder Side:
BUY [1] – This is a buy order.
SELL [2] – This is a sell order.
38OrderQtyNQuantity of the Order.
152CashOrderQtyNThe notional quantity of the order.
5151LeavesQuoteQtyNThe remaining notional quantity of the order. Only applies to orders placed as CashOrderQty.
5152CumQuoteQtyNThe filled notional quantity of the order. Only applies to orders placed as CashOrderQty.
40OrdTypeYDescribes the type of Order being placed:
MARKET [1]
LIMIT [2]
44PriceNThe Price of the Traded Instrument.
59TimeInForceNWhen the order should expire:
GOOD_TILL_CANCEL [1]
IMMEDIATE_OR_CANCEL [3]
FILL_OR_KILL [4]
GOOD_TILL_DATE [6]
GOOD_FOR_TIME [A]
126ExpireTimeNUTC timestamp/ Expiry Time for a GTD Limit Order.
18ExecInstNAdditional controls around the execution of an order. Currently supported options:
PARTICIPATE_DONT_INITIATE [6] – Indicates that this is a Post Only Limit Order.
32LastQtyNQuantity bought/sold on this (last) fill.
31LastPxNPrice of this (last) fill.
151LeavesQtyYOrder Quantity available for further execution.
14CumQtyYQuantity Executed in the current Order Chain.
6AvgPxYCalculated average price for fills and partial fills.
75TradeDateNIndicates date of trade referenced in this message.
60TransactTimeYExchange provided timestamp generated by the match engine.
58TextNDescribes 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.
880TrdMatchIDNIdentifier assigned to the Trade by the matching system.
851LastLiquidityIndNIndicates 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.
>453NoPartyIDsNNumber of PartyID, PartyIDSource and PartyRole entries.
>448PartyIDNParty Identifier/Code.
>447PartyIDSourceNIdentifies class or source of the PartyID value. Required if PartyID is specified. Note: applicable values depend upon PartyRole specified.
>452PartyRoleNIdentifies the type or role of the PartyID specified.
1056CalculatedCcyLastQtyNUsed for the calculated quantity of the other side of the currency trade.
15CurrencyNIdentifies currency used for price or quantity fields. Example: BTC, ETH, LTC
120SettlCurrencyNCurrency code of settlement denomination.
528OrderCapacityNDesignates the capacity of the firm placing the order:
AGENCY [A]
PRINCIPAL [P]
RISKLESS_PRINCIPAL [R]
582CustOrderCapacityNCapacity of customer placing the order:
MEMBER_TRADING_FOR_THEIR_OWN_ACCOUNT [1]
RETAIL_CUSTOMER [5]
136NoMiscFeesNNumber of repeating groups of miscellaneous fees.
>891MiscFeeBasisNDefines the unit for miscellaneous fee. Always ABSOLUTE [0]
>137MiscFeeAmtNMiscellaneous fee value.
>138MiscFeeCurrNCurrency of miscellaneous fee. Will match the quote asset associated with the traded instrument.
>139MiscFeeTypeNIndicates 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.
9416ExtendedExecInstNDesignates 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.
5040NoCapacityEntriesYNumber of repeating groups for capacity entries.
>5041AvailableCapacityYRemaining long/short trade limit capacity.
>5042CapacityCurrencyYLong/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.
>5043CapacitySideYLong/short risk limit indicator:
BUY [1]
SELL [2]
Standard FooterY

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​

TagNameRequiredComments
Standard HeaderYMsgType 35=9
37OrderIDYExchange provided OrderID.
11ClOrdIDYClient Identifier for the Order.
583ClOrdLinkIDNPermits 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.
41OrigClOrdIDYClient Identifier for the Order to be cancelled.
39OrdStatusYIndicates the status of an order:
REJECTED [8]
1AccountYAccount mnemonic.
60TransactTimeYExchange provided timestamp generated by the match engine.
434CxlRejResponseToYIndicates the message type the Reject is in response to.
ORDER_CANCEL_REQUEST [1]
ORDER_CANCEL_REPLACE_REQUEST [2]
102CxlRejReasonYThe 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]
5040NoCapacityEntriesYNumber of repeating groups for capacity entries.
>5041AvailableCapacityYRemaining long/short trade limit capacity.
>5042CapacityCurrencyYLong/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.
>5043CapacitySideYLong/short risk limit indicator:
BUY [1]
SELL [2]
58TextYDescribes reason for rejection.
Standard FooterY

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​

TagNameRequiredComments
Standard HeaderYMsgType 35=AE
571TradeReportIDYUnique identifier of Trade Capture Report.
568TradeRequestIDNTrade Capture Report Request ID.
487TradeReportTransTypeNIdentifies Trade Report message transaction type.
37OrderIDYExchange provided OrderID.
11ClOrdIDNClient Identifier for the Order.
583ClOrdLinkIDNClient provided metadata for the order that is echoed on Execution Reports.
17ExecIDYUnique identifier of execution message as assigned by the exchange.
150ExecTypeYSpecifies the type of Execution Report:
NEW [0]
CANCELED [4]
REPLACE [5]
REJECTED [8]
EXPIRED [C]
TRADE [F]
ORDER_STATUS [I]
325UnsolicitedIndicatorNIndicates whether or not message is being sent as a result of a subscription request or not.
527SecondaryExecIDNAssigned by the party which accepts the order. Can be used to provide the ExecID used by an exchange or executing system.
1AccountNAccount associated with the order.
55SymbolNThe instrument for the Order. Example: BTC/USD, ETH/USD, LTC/USD
552NoSidesYNumber of Side repeating group instances.
One side [1]
Both sides [2]
54SideYDefines the side of an order.
Buy [1]
Sell [2]
32LastQtyYQuantity bought/sold on this (last) fill.
31LastPxYPrice of this (last) fill.
570PreviouslyReportedYIndicates if the trade capture report was previously reported to the counterparty.
Not reported to counterparty [N]
Previously reported to counterparty [Y]
75TradeDateYDate of trade referenced in this message.
60TransactTimeYTime of execution/order creation. UTC timestamp.
880TrdMatchIDNIdentifier assigned to the trade by the matching system.
851LastLiquidityIndYIndicates 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.
453NoPartyIDsNNumber of PartyID, PartyIDSource and PartyRole entries.
>448PartyIDNParty identifier/code.
>447PartyIDSourceNIdentifies class or source of the PartyID value. Required if PartyID is specified. Note: applicable values depend upon PartyRole specified.
>452PartyRoleNIdentifies the type or role of the PartyID specified.
1056CalculatedCcyLastQtyNUsed for the calculated quantity of the other side of the currency trade.
15CurrencyNIdentifies currency used for price.
120SettlCurrencyNCurrency code of settlement denomination.
136NoMiscFeesNNumber of repeating groups of miscellaneous fee.
>137MiscFeeAmtNMiscellaneous fee value.
>138MiscFeeCurrNCurrency of miscellaneous fee. Will match the quote asset associated with the traded instrument.
>139MiscFeeTypeNIndicates 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.
>891MiscFeeBasisNDefines the unit for miscellaneous fee. Always ABSOLUTE [0]
9416ExtendedExecInstNDesignates 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.
5001EnrichedTradePxNOptional client display trade price, for internal use only.
828TrdTypeNConditionally 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 FooterY

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​

DateSection/MessageDescription
3/4/2024N/AInitial v1.0 release of FIX Drop Copy specifications for EDX Markets match engine.
3/14/2024Logon Messagev1.0.1
  • Updated sample Logon message to include standard header/footer.
3/26/2024Tag 851 - LastLiquidityIndv1.0.2
  • Enumerated options for liquidity codes.
3/27/2024Tag 580 - NoDatesv1.0.3
  • Removed.
4/5/2024Trade Capture Report - NoMiscFeesv1.0.4
  • Added NoMiscFees repeating group to the Trade Capture Report message.
4/24/2024ExecutionReport, OrderCancelRejectv1.0.5
  • Enumerated options for CxlRejReason and OrdRejReason codes
4/26/2024Login (IN)v1.0.6
  • Updated ResetSeqNumFlag
4/26/2024Logout (OUT)v1.0.6
  • Updated ResetSeqNumFlag
5/1/2024Throttle Limitsv1.0.7
  • Added Throttle Limits
5/3/2024ExecutionReport (OUT), OrderCancelReject (OUT)v1.0.8
  • Specified the supported values for tag 39 (OrdStatus)
5/3/2024TradeCaptureReport (OUT)v1.0.8
  • Removed reference to D [RESTATED] and added I [ORDER STATUS] for Tag 150 (ExecType)
5/13/2024Drop Copy Configurationv1.0.9
  • Describe the 2 options
5/13/2024Sequence Resetv1.0.9
  • Added Sequence Reset section.
5/14/2024ExecutionReport (OUT)v1.0.10
  • AvgPx changed to “Always 0”
5/22/2024Subscription Interaction Modelv1.0.11
  • Added section “Subscription Interaction model”
6/01/2024TradeCaptureReportRequest (IN)v1.0.12
  • Added information on Tag 880 for clarity
6/03/2024TradeCaptureReportRequest (IN) > TradeDatev1.0.13
  • Removed TradeDate
7/30/2024Overviewv1.0.14
  • Interaction model broken down into several models for each corresponding message.
  • Sequence Reset interaction model added.
  • Test Request section added.
  • Resend Request section added.
  • Separated Standard Header into (IN) and (OUT) messages.
7/30/2024Logonv1.0.14
  • Logon interaction model added.
  • Tag 1408 (DefaultCstmApplVerID) no longer in Logon (IN).
  • Value/Comment added for tag 553 (Username) and tag 554 (Passphrase).
  • Logon (OUT) tag 141 (ResetSeqNumFlag) req’d changed to Y.
  • Logon (OUT) sample message updated.
  • Logout (IN) matrix added.
  • Logout (IN) sample message added.
  • Logout (OUT) sample message added.
7/30/2024Test Requestv1.0.14
  • Test Request matrix added.
  • Test Request (OUT) sample message added.
  • Heartbeat (IN) sample message added.
7/30/2024Resend Requestv1.0.14
  • Resend Request (OUT) matrix added.
  • Sequence Reset (IN) matrix added.
  • Reject (OUT) matrix added.
  • Resend Request (OUT) sample message added.
  • Sequence Reset (IN) sample message added.
  • Reject (OUT) sample message added.
7/30/2024Trade Capture Report Requestv1.0.14
  • Trade Capture Report Request interaction model added.
  • Trade Capture Report Request Ack matrix added.
7/30/2024Execution Reportv1.0.14
  • Tag 11 (ClOrdID) changed req’d to Y.
  • Added values to tag 150 (ExecType)
  • Removed tag 636 (WorkingIndicator)
  • Changed tag 1 (Account) req’d to Y.
  • Changed tag 55 (Symbol) req’d to Y.
  • Tag 854 (QtyType) removed.
  • Tag 40 (OrdType) changed req’d to Y.
  • Tag 432 (ExpireDate) removed.
  • Tag 60 (TransactTime) changed req’d to Y.
  • Tag 9416 (ExtendedExecInst) removed.
  • Value added to tag 15 (Currency).
7/30/2024Order Cancel Rejectv1.0.14
  • Tag 39 (OrdStatus) changed req’d to Y.
  • Tag 636 (WorkingIndicator) removed.
  • Tag 1 (Account) removed.
  • Tag 60 (TransactTime) changed req’d to Y.
  • Tag 75 (TradeDate) removed.
  • Tag 58 (Text) changed req’d to Y.
  • Trade Capture Report Request (IN) sample message added.
  • Trade Capture Report Request Ack (OUT) sample message added.
  • Execution Report New (OUT) sample message added.
  • Execution Report Replace (OUT) sample message added.
  • Execution Report Fill (OUT) sample message added.
  • Execution Report Cancelled (OUT) sample message added.
  • Execution Report Rejected (OUT) sample message added.
  • Execution Report Expired (OUT) sample message added.
  • Order Cancel Reject (OUT) sample message added.
  • Trade Capture Report sample messages removed.
08/28/2024TradeCaptureReportRequest (IN)V1.0.15
  • Added recommended behavior for option 3.
08/29/2024Execution ReportV1.0.15
  • Added:
    • NoMiscFees
    • >MiscFeeAmt
    • >MiscFeeCurr
    • >MiscFeeType
    • >MiscFeeBasis
08/29/2024Trade Capture ReportTag 5001(EnrichedTradePx) added
08/31/2024Trade Capture Reportv1.0.16
  • TrdType added to TradeCaptureReport
12/23/2024Execution Reportv1.0.17
  • Added values sent in Text for unsolicited cancellations due to risk limit breaches
  • Added Tag 9416 (ExtendedExecInst)
01/22/2025OrderCancelRejectV1.0.18
  • Added Tag 1 Account
05/15/2025Execution ReportV1.0.19
  • AvgPx will return the Calculated average price for fills and partial fills.
06/12/2025Standard Header (OUT)V1.0.20
  • Added Tag 57 TargetSubID
7/15/2025OrderCancelReject(OUT), ExecutionReport(OUT)V1.0.21
  • Added Capacity Tags to Reject (OUT) messages:
    • 5040 NoCapacityEntries
    • >5041 AvailableCapacity
    • >5042 CapacityCurrency
    • >5043 CapacitySide
03/07/2026Execution ReportV1.0.22
  • Added MARKET [1] to Tag 40 OrdType
  • Added 152 CashOrdQty
  • Added 5151 LeavesQuoteQty
  • Added 5152 CumQuoteQty
03/07/2026Execution ReportV1.0.23
  • Added 152 CashOrdQty for LIMIT [2] OrdType
  • Added 5151 LeavesQuoteQty for LIMIT [2] OrdType
  • Added 5152 CumQuoteQty for LIMIT [2] OrdType