Trade

Summary

List of message supported on the trade and otc trade connections

New Order Single

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = D
11ClOrdIDYStringMust be unique identifier sent by the client. Used for response
1AccountYStringThe client SubAccount that is trading, found in the TDX Client Profile
526EndClientIdentifierNFor institutional clients that don't segregate assets account but need trading alerts detection on end client performed by TDX. (Need to be enabled beforehand). Must be an unique ID per end client. Must be anonymized (non-PII). Ignored in OTC Trading
54SideYCharSide of order in reference to the dealt assets (tag 15).
Valid values:
1 = Buy
2 = Sell
55SymbolYStringSymbol to trade on, for instance BTC/EUR
38OrderQtyYQtyThe amount for the order of the specified asset (tag 15)
40OrdTypeYCharType of order.
Valid values:
1 = Market
2 = Limit
44PriceCPriceRequired for limit orders
59TimeInForceNCharHow long the order remains in effect.
Valid values:
0 = Day (default for limit orders)
1 = Good till cancel
5 = Immediate or cancel (default for market orders)
60TransactTimeYUTCTimestampTime this order was initiated/released by the client trading system
Standard TrailerY

Order Cancel Request

Used to cancel an order. An order already partially filed will have the remaining quantity canceled.

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = F
11ClOrdIDYStringMust be a unique identifier for the cancel request, sent by the client. Returned in the cancellation execution report
41OrigClOrdIDYStringClOrdID of the order to be cancelled.
55SymbolYStringSymbol of the order to cancel
54SideYCharIgnored (required by FIX)
38OrderQtyYQtyIgnored (required by FIX)
60TransactTimeYUTCTimestampTime this cancel request was initiated/released by the client trading system
Standard TrailerY

Execution Report

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 8
37OrderIDYStringUnique identifier defined by TDX. Unique and unchanged for this chain of order (the initial execution report and all the following execution report from regarding a status update or the order eventual modification / cancellation)
11ClOrdIDYStringMust be the unique identifier sent by the client. Used for response
54SideYCharSide of the order
55SymbolYStringSymbol
38OrderQtyYQtyQuantity ordered
40OrdTypeYCharType of order
44PriceCPricePrice at which the client wants to buy/sell. Only if OrdType = 40 (limit).
110MinQtyNQtyMinimum quantity ordered by the client
150ExecTypeYCharThe execution report’s type.
Valid values:
0 = New
3 = Done
4 = Cancelled
5 = Replaced
8 = Rejected
C = Expired
F = Trade (Partial Fill or Fill)
39OrdStatusYCharCurrent order state.
Valid values:
0 = New
1 = Partially filled
2 = Filled
4 = Cancelled
8 = Rejected
C = Expired
32LastQtyCQuantityQuantity bought/sold on the last fill. Only when ExecType = F (trade).
31LastPxCPricePrice of this last fill. Only when ExecType = F (trade).
151LeavesQtyCQuantityRemaining quantity open for execution
14CumQtyCQuantitySum of executed quantities for this chain of fills for the same order. Only set when ExecType = F (trade)
6AvgPxCPriceAverage price of the chain of fills weighted by quantity. Only set when ExecType = F (trade)
60TransactTimeYUTCTimestampTime this cancel request was initiated/released by the client trading system
58TextCStringWill contain the reason if a rejection occurred
Standard TrailerY

Order Cancel Reject

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 9
37OrderIDYStringUnique identifier defined by TDX. Unique and unchanged for this chain of order (the initial execution report and all the following execution report from regarding a status update or the order eventual modification / cancellation)
11ClOrdIDYStringMust be the unique identifier sent by the client. Used for response
41OrigClOrdIDYStringClOrdID of the Order that could not be cancelled
39OrdStatusYCharCurrent order state.
Valid values:
0 = New
1 = Partially filled
2 = Filled
3 = Done for the day
4 = Cancelled
6 = Pending cancel
8 = Rejected
C = Expired
58TextYStringWill contain the reason
Standard TrailerY

OTC RFQs

The OTC Trading of TDX supports the RFQ trading flow. While the flow results in trades, it is substantially different from single orders and its usage in FIX is less mainstream, it is thus described in detail here.

Overview

In this integration the stream of quotes is initiated by sending a QuoteRequest (R) message. When a valid QuoteRequest is received, TDX begins streaming Quote (S) messages. A client accepts a quote by sending a QuoteResponse (AJ) message, and any resulting trade (or rejection) is reported via an ExecutionReport (8). Finally, a Quote Cancel (Z) message marks the end of the quote stream.

Quote Request

To request a stream of quotes, send a QuoteRequest message :

TagFieldNameRequiredData TypeComment
Standard HeaderYMsgType = R
131QuoteRequestIDYstringA globally unique identifier chosen by the client (a UUID v4 is recommended).
146NoRelatedSymYintegerSet to 1, indicating that one symbol (and its associated component block) follows.
55SymbolYstringThe pair symbol for which quotes are requested (e.g. ETH/USD).
1AccountYstringThe sub-account used on TDX for trading.
38OrderQtyYdecimalThe base quantity to be quoted at the preferred precision (e.g. 42.0000, meaning 42 ETH).

Quote

The Quote message provides the details of each bid or ask :

TagFieldNameRequiredData TypeComment
Standard HeaderYMsgType = S
117QuoteIDYstringAn encoded token to use when accepting this specific quote.
55SymbolYstringThe pair symbol for which the quote is provided (e.g. ETH/USD).
54SideYcharIndicates the side: 1 (Buy, for an Ask quote) or 2 (Sell, for a Bid quote).
23432OtcRfqIDYstringA UUID identifying this stream of quotes; must be repeated for any message that references this stream.
132BidPxYdecimalThe proposed unit price, applicable for a Bid.
133OfferPxYdecimalThe requested unit price, applicable for an Ask.
134BidSizeYdecimalSame as the OrderQty from the QuoteRequest, repeated for ease of consumption.
135OfferSizeYdecimalSame as the OrderQty from the QuoteRequest, repeated for ease of consumption.

Quote Response

To accept a quote from the stream, send a QuoteResponse message :

TagFieldNameRequiredData TypeComment
Standard HeaderYMsgType = AJ
694QuoteResponseTypeYcharMust be set to 1 (Hit/Lift) to accept the quote.
693QuoteResponseIDYstringA unique, client-provided id to identify this quote response
1AccountYstringThe sub-account used on TDX for trading (as in the QuoteRequest).
55SymbolYstringThe pair symbol for which the quotes were requested (e.g. ETH/USD).
117QuoteIDYstringThe encoded token from the Quote that the client wishes to accept.
23432OtcRfqIDYstringThe UUID identifying the flow of quotes to which the accepted quote belongs.

Execution Report

After accepting a quote, TDX sends an ExecutionReport message that contains the trade’s outcome. While it is also present in normal order flows, the most relevant and RFQ-specific fields are repeated here :

TagFieldNameRequiredData TypeComment
Standard HeaderYMsgType = 8
150ExecTypeYcharF indicates that the quote acceptance resulted in a trade; 8 indicates rejection.
17ExecIDYstringA UUID corresponding to the traded quote.
23432OtcRfqIDYstringThe UUID identifying the stream of quotes that generated this trade.
39OrderStatusYchar2 (Filled) if traded, or 8 (Rejected) if not; provided for ease of integration and to show that quotes are fulfilled in one trade.
693QuoteResponseIDYstringRepeats the QuoteResponseID provided by the client during acceptance.
11ClOrdIDYstringRepeats the ClOrdID provided by the client during the quote acceptance.

Quote Cancel

When a quote stream terminates or is explicitly cancelled, the following message is sent:

TagFieldNameRequiredData TypeComment
Standard HeaderYMsgType = Z
298QuoteCancelTypeYintegerWill be set to 4, indicating “All Quotes”.
23432OtcRfqIDYstringThe UUID identifying the stream of quotes that is being terminated.



  © 2025 Taurus SA. All rights reserved.