DX FIX Trading API

dxBrokerage Version

List of changes

Version Date Description
0.6 May-10-2016 Fixes to NewOrderList descriptions – removal of tag 6407 and unsupported list operations
0.7 Apr-04-2017 Parties component is added - Repeating Group 453
0.8 Jun-16-2020 StopLimit (4) orders support
0.9 Jul-17-2020
  • Added new Side: Short Sell (5)
  • Position Effect is mandatory for Side: Sell(2) and Buy to Cover operation for Equities / Sell to Close and Buy to Close for Options.
0.10 Sep-16-2020
  • ExDestination(100) tag for NewOrderSingle/ExecutionReport
  • SymbolSfx(65) tag to support CMS symbology
  • LocateReqd (114) tag for Sell Short
0.11 Mar-11-2022 ExpireDate(432) and ExpireTime(126) can both be used (one or the other) for GTD Orders; both are in UTC; format clarified
0.12 Sep-13-2022 Added Allocation Report
0.13 Mar-28-2023 Added OrigOrdId to drop copy
0.14 Jun-01-2023
  • Added examples of DropCopy messages
0.15 Feb-02-2024 Added trade correct and trade cancel ExecTypes
0.16 Sep-10-2025 Aligned with current version

FIX connection types

FIX engine supports 2 types of FIX connections (sessions): trading connections and drop copy connections.

Trading connection

Trading connection accepts all client requests defined in FIX specification and sends responses only to requests received via this particular connection.

Drop copy connection

Drop copy connection does not accept order requests but instead sends copies of execution reports created for predefined source trading connections. Drop copy connection is to be configured upon request. The configuration of drop copy connection provides options to specify list of source trading connections which executions must be reported as drop copies.

All drop copy messages contains FIX field DropCopy(797)=Y as well as custom field OrigOrdId(9945) with dx client order id

Drop copy connection reports exchange events, i.e. new orders and cancels/replaces rejected by FIX gate itself, are not reported. Also, it may report allocations.

Following execution types ExecType(150) are reported: OrderStatus(only before individual trade reports), New, Replaced, Trade, Cancelled, Expired, Done for Day (for algorithmic orders only).

Session Protocol

Session protocol assures client identification, sequential request processing, session state control and ability to restore the session after downtime.

In the scope of session all FIX messages are identified by unique integer sequence number and processed in that order. When incoming sequence number does not match expected one, the session must be recovered. If incoming sequence number is less than expected and PossDuplFlag is not set to Y, it is considered a fatal error, and the connection is dropped by the server. If sequence number of incoming message is greater than next expected number, the Resend Request is issued for missed messages.

The server does not reset session sequences after client disconnect or on daily basis. Sequence reset may be initiated by client sending Logon message with ResetSeqNumFlag = Y.

Client and server use following administrative messages

Message Format

All FIX messages either administrative or business require standard header and trailer.

Standard Header

Tag Field Name Required Comments, valid values
8 BeginString Y FIX.4.4
9 BodyLength Y Message length excluding CheckSum field
35 MsgType Y Message type
49 SenderCompID Y Assigned value used to identify firm sending message
56 TargetCompID Y Assigned value used to identify receiving firm
34 MsgSeqNum Y Integer message sequence number
43 PossDupFlag C Required for retransmitted messages.
N = Original transmission, Y= Possible duplicate
52 SendingTime Y Time of message transmission (always expressed in UTC) with or without milliseconds depending on FIX session options
50 SenderSubID N Used to identify the client’s session in trading requests. See Trading on behalf of a user
57 TargetSubID N Used in server responses to relate request rejects to particular client’s session, as sent in a request’s SenderSubID field. See Trading on behalf of a user

Standard Trailer

Tag Field Name Required Comments, valid values
10 CheckSum Y Three byte, simple checksum. Always defined as three characters

Administrative messages

Logon

Initiates connection from client side and approves connection if sent by the server. ResetSeqNumFlag allows clients to start the new session (reset session sequence numbers).

Tag Field Name Required Comments, valid values
StandardHeader Y MsgType = A
98 EncryptMethod Y 0 = NONE_OTHER. Security must be guaranteed on transport level
108 HeartBtInt Y Heartbeat interval in seconds
141 ResetSeqNumFlag N N = use previous sequences, Y = Reset sequences (start new session).
If clients cannot recover the previous session they start new session with 1 and set this field to Y.
The flag must be used with caution especially during trading session. Usage of this flag leads to business data loss
StandardTrailer Y

Logout

The server does not support automatic order cancellation on logout. All orders issued by the client will remain working on the exchange upon logout or disconnect.

Tag Field Name Required Comments, valid values
StandardHeader Y MsgType = 5
58 Text N Logout reason
StandardTrailer Y

Resend Request

The message is used to recover inbound session sequence if some message was missed.

Tag Field Name Required Comments, valid values
StandardHeader Y MsgType = 2
7 BeginSeqNo Y Sequence number of the first message in range to be resent
16 EndSeqNo Y Sequence number of the last message in range to be resent
StandardTrailer Y

Sequence Reset

The message may be used in two modes

Tag Field Name Required Comments, valid values
StandardHeader Y MsgType = 4
123 GapFillFlag N N = sequence reset, the counterparty must adjust inbound sequence number. Y = indicates the message is used instead of administrative or business messages which are not to be resent
36 NewSeqNo Y Adjusted sequence number
StandardTrailer Y

Reject

Issued by party if incoming FIX message is unsupported or not property formed. Rejected messages must not be resend if Resend Request is received; instead SequenceReset with FillGapFlag=Y is expected.

Tag Field Name Required Comments, valid values
StandardHeader Y MsgType = 3
45 RefSeqNum Y Sequence number of the rejected message
58 Text Y Error message
373 SessionRejectReason Y Valid values are based on FIX 5.0 specification
StandardTrailer Y

Application Protocol

Client messages and server messages are application messages. Each application message has a set of common component fields which must be present in messages. Application messages refer to common components as <Standard Header>.

Instrument

Tag Field Name Required Data Type Comments
55 Symbol Y String Identifier for an instrument that can be traded (see dxFeed Symbology)
65 SymbolSfx N String Symbol suffix for the platforms using CMS Symbology, e.g. WS meaning Warrant, PR meaning Preferred Stock.
461 CFICode N String CFI code. See A.8. Valid CFICode (461/608)

NewOrderList orders group (ListOrdGrp)

This repeating group is used in NewOrderList message to specify set orders for issue. See also NewOrderListRequest.

Tag Field Name Required Data Type Comments
73 NoOrders Y int Number of orders in this message (number of repeating groups to follow).
11 ClOrdID Y String Unique identifier of an order assigned by client system.
1 Account Y String Unique identifier of an account in the system. Should be the same in all contingency orders
<Instrument> Y
54 Side Y char Order side.
38 OrderQty Y Qty Order quantity.
40 OrdType Y char Order type. See A.1 valid OrdType values.
  • LIMIT – requires Price/PriceInstruction=TL
  • STOP – requires StopPx/PriceInstruction=TS
  • STOP LIMIT – requires both Price and StopPx
44 Price N Price Price per unit of quantity.
99 StopPx N Price Price per unit of quantity.
59 TimeInForce N char Specifies how long the order remains in effect. See A.9: TimeInForce valid values. Default value depends on the platform configuration
432 ExpireDate N LocalMktDate Expiration date in UTC: must have a value for GTD mode, if ExpireTime(126) is not set.
There must be no ExpireDate field for DAY/ATC TimeInForce.
Format : YYYYYMMDD, e.g. 20200731
126 ExpireTime N UTCTimestamp Expiration time in UTC; must have a value for GTD mode, if ExpireDate(432) is not set.
There must be no ExpireTime field for DAY/ATC TimeInForce.
Format: yyyyMMdd-HH:mm:ss.SSS Example: 20200731-23:00:00.000
77 PositionEffect C Char Indicates whether the resulting position after a trade should be an opening position or closing position.
O = Opening, C = Closing
60 TransactTime Y UTCTimestamp Order creation time, expressed in UTC (GMT)
58 Text N String Comment message
100 ExDestination N String Order route selected by trader, valid values depend on the project settings

Parties component

The Parties component block is used to identify and convey information on the entities both central and peripheral to the financial transaction represented by the FIX message containing the Parties Block. The Parties block allows many different types of entities to be expressed through use of the PartyRole field and identifies the source of the PartyID through the the PartyIDSource. The standard 'Parties' component is supported in incoming messages: NewOrderSingle, OrderCancelRequest and OrderCancelReplaceRequest. Outgoing messages: ExecutionReport and OrderCancelReject, should contain the same Parties information - this information is opaque for DX platform.

Tag Field Name Required Data Type Comments
453 NoPartyIDs NumInGroup Number of repeating groups, of PartyID, PartyIDSource and PartyRole, currently assumed that client sends only one ‘Party’ component - NoPartyIDs = 1
448 PartyID Y String Unique identifier of the client in the partner’s system
447 PartyIDSource Y Char Always ‘D’ - Proprietary/Custom code
452 PartyRole Y Int Always 3 - Client ID

Client Messages

DxCore system supports the following client-originated messages:

Supported order types

Market order

A market order is a type of order that is filled with current market price.

Limit, Stop and StopLimit orders

Limit, Stop and StopLimit orders are orders filled when market reaches price specified by the client. For StopLimit after StopPx price is reached, order starts behaving like Limit with Price specified.

Market Fill or Kill (FOK) order

FOK order is a type of order that is either filled with price specified by client or rejected.

Trading on behalf of a user

Orders can be issued on behalf of an existing user session. If the trading party is aware of the existing session, it can include the session token with any trading request - and the trade will be issued on behalf of the user

The token is sent in the 50: SenderSubID tag. If the token is not valid or session is expired, request will be rejected with the 99=OTHER reason. Such reject will have rejected request's token in 57: TargetSubID tag.

NewOrderSingle

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = D
11 ClOrdID Y String Unique identifier of an order assigned by client system
1 Account Y String Unique identifier of an account in the system
<Instrument> Y
54 Side Y Char Order side.
38 OrderQty Y Qty Order quantity. Can be zero for a ‘closing’ order linked to a position via PositionId (applicable to FX markets only).
40 OrdType Y Char Order type. See A.1 valid OrdType values
44 Price N Price Price per unit of quantity. Required for LIMIT OrdType orders
99 StopPx N Price Price per unit of quantity. Required for STOP/STOPLIMIT OrdType orders
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9: TimeInForce valid values. Default value depends on the platform configuration
432 ExpireDate N LocalMktDate Expiration date in UTC: must have a value for GTD mode, if ExpireTime(126) is not set.
There must be no ExpireDate field for DAY/ATC TimeInForce.
Format : YYYYYMMDD, e.g. 20200731
126 ExpireTime N UTCTimestamp Expiration time in UTC; must have a value for GTD mode, if ExpireDate(432) is not set.
There must be no ExpireTime field for DAY/ATC TimeInForce.
Format: yyyyMMdd-HH:mm:ss.SSS Example: 20200731-23:00:00.000
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
60 TransactTime Y UTCTimestamp Order creation time, expressed in UTC (GMT)
775 BookingType C Int Method for booking the order. Must be ‘1’ for CFD.
58 Text N String Comment message
6407 PositionId N String ID of position that should be modified by a given order. Used for position based trading only (Forex, CFD). Not supported for opening orders. Required field for closing orders for Forex, CFD.
<Party> N Component See Parties Component for details
<Standard Trailer> Y

MARKET order example:

|8=FIX.4.4|9=133|35=D|49=SENDER_ID|56=TARGET_ID|34=1|52=20250912-00:00:00|11=uniqueClOrdId|1=account|38=1|40=1|54=1|55=AAPL|60=20250912-00:00:00|77=O|10=007|

LIMIT order example:

|8=FIX.4.4|9=142|35=D|49=SENDER_ID|56=TARGET_ID|34=2|52=20250912-00:00:00|11=uniqueClOrdId|1=account|38=1|40=2|59=1|54=1|55=AAPL|60=20250912-00:00:00|77=O|44=500|10=155|

Closing LIMIT order example:

|8=FIX.4.4|9=142|35=D|49=SENDER_ID|56=TARGET_ID|34=3|52=20250912-00:00:00|11=uniqueClOrdId|1=account|38=1|40=2|59=1|54=2|55=AAPL|60=20250912-00:00:00|77=C|44=100|10=142|

STOP order example:

|8=FIX.4.4|9=142|35=D|49=SENDER_ID|56=TARGET_ID|34=4|52=20250912-00:00:00|11=uniqueClOrdId|1=account|38=1|40=3|59=1|54=1|55=AAPL|60=20250912-00:00:00|77=C|99=100|10=159|

FOK order example:

|8=FIX.4.4|9=147|35=D|49=SENDER_ID|56=TARGET_ID|34=5|52=20250912-00:00:00|11=uniqueClOrdId|1=account|38=1|40=2|59=4|54=1|55=AAPL|60=20250912-00:00:00|77=O|44=100|10=144|

FixLegOrdGrp

This repeating group is used in NewOrderMultileg to specify the order legs

Tag Field Name Required Data Type Comments
600 LegSymbol Y String Identifier for an instrument that can be traded (see dxFeed Symbology)
624 LegSide Y Char 1 - BUY, 2 - SELL, 5 - SELL SHORT
623 LegRatioQty Y Qty Leg quantity ratio
564 LegPositionEffect C Char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O - open, C - close
608 LegCFICode N String CFI code. See A.8. Valid CFICode (461/608)
611 LegMaturityDate N LocalMktDate Maturity date of leg instrument
1358 LegPutCall N Char 0 - PUT, 1 - CALL
612 LegStrikePrice N Price Strike price
566 LegPrice N Price Leg price

NewOrderMultileg

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = AB
11 ClOrdID Y String Unique identifier of an order assigned by client system
1 Account Y String Unique identifier of an account in the system
54 Side Y Char Order side.
38 OrderQty Y Qty Order quantity.
40 OrdType Y Char Order type. See A.1 valid OrdType values
40 MultilegPriceMethod N Char 0 - NetPrice, 3 - Individual
44 Price N Price Price per unit of quantity. When MultilegPriceMethod=0 (NetPrice) or not defined - required for LIMIT OrdType orders
99 StopPx N Price Price per unit of quantity. When MultilegPriceMethod=0 (NetPrice) or not defined - required for STOP/STOPLIMIT OrdType orders
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9: TimeInForce valid values. Default value depends on the platform configuration
432 ExpireDate N LocalMktDate Expiration date in UTC: must have a value for GTD mode, if ExpireTime(126) is not set.
There must be no ExpireDate field for DAY/ATC TimeInForce.
Format : YYYYYMMDD, e.g. 20200731
126 ExpireTime N UTCTimestamp Expiration time in UTC; must have a value for GTD mode, if ExpireDate(432) is not set.
There must be no ExpireTime field for DAY/ATC TimeInForce.
Format: yyyyMMdd-HH:mm:ss.SSS Example: 20200731-23:00:00.000
555 NoLegs Y Integer Number of legs
<FixLegOrdGrp> Y
60 TransactTime Y UTCTimestamp Order creation time, expressed in UTC (GMT)
58 Text N String Comment message
<Party> N Component See Parties Component for details
<Standard Trailer> Y

Market multileg order example:

|8=FIX.4.2|9=200|35=AB|49=SENDER_ID|56=TARGET_ID|34=9|52=20250912-00:00:00|11=uniqueClOrdId|1=account|54=1|38=1|40=1|59=1|555=2|600=AAPL|564=O|623=100|624=1|600=.AAPL260116C140|564=O|623=1|624=1|60=20250912-00:00:00|10=156|

NewOrderListRequest

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = E
66 ListID Y String Unique identifier of an order list assigned by client system
1385 ContingencyType Y Integer Specifies type of contingency. Supported values:
  • 1 – OcO (one cancels the other);
  • 101 – two order (If-Then)
  • 102 – three orders as If-Then-OCO. First order is parent, second and third are children; if there are two children, they are OcO to each other.
68 TotNoOrders Y Integer Should be equal to NoOrders. Message fragmentation is not supported.
<ListOrdGrp> Y See NewOrderList orders group (ListOrdGrp) for description of format
<Standard Trailer> Y

Accepted NewOrderList requests will result in two or three execution reports, depending on ContingencyType of request. It's not guaranteed that first of reports will relate to first order in list. Client must consult value of ClOrdID field in execution report to understand to which order of NewOrderList request it relates.

For PnC FIX messages, first order in ListOrdGrp is parent, all others are contingents.

Across all orders in NewOrderList message following fields must have same value, otherwise request will be rejected: Account, Symbol, TIF. Additionally, if trading non-FX instruments, SecurityType, BookingType or CFICode values specified in message, taken together with Symbol field, must resolve to the same instrument inside DxCore system, otherwise request will be rejected.

Currently, NewOrderList allows following combinations of ContingencyType with values of OrderQty and PositionEffect of individual orders in list:

Entry OCOs: ContingencyType set to 1. Individual orders must not have PositionId field and their PositionEffect must be set to OPEN("O"). Attached or closing OCOs are not supported.

If-Then or If-Then-OCO: ContingencyType set to 101/102. Parent order must have its PositionEffect set to OPEN. There may be one or two contingent orders, and they must have PositionEffect set to CLOSE. For Equities and options, you must specify valid quantity in OrderQty field of individual contingent orders.

OcO request example:

|8=FIX.4.4|9=253|35=E|49=SENDER_ID|56=TARGET_ID|34=230|52=20250912-00:00:00|66=uniqueListId|1385=1|68=2|73=2|11=uniqueClOrdId1|1=account|55=AAPL|38=1|40=2|54=1|77=O|44=100|60=20250912-00:00:00|11=uniqueClOrdId2|1=account|55=AAPL|38=1|40=3|54=1|77=O|99=500|60=20250912-00:00:00|10=222|

If-Then request example with one child:

|8=FIX.4.4|9=255|35=E|49=SENDER_ID|56=TARGET_ID|34=250|52=20250912-00:00:00|66=uniqueListId|1385=101|68=2|73=2|11=uniqueClOrdId1|1=account|55=AAPL|38=1|40=2|54=1|77=O|44=100|60=20250912-00:00:00|11=uniqueClOrdId2|1=account|55=AAPL|38=0|40=3|54=2|77=C|99=100|60=20250912-00:00:00|10=063|

If-Then-OCO request example with two children:

|8=FIX.4.4|9=335|35=E|49=SENDER_ID|56=TARGET_ID|34=276|52=20250912-00:00:00|66=uniqueListId|1385=102|68=3|73=3|11=uniqueClOrdId1|1=account|55=AAPL|38=1|40=2|54=1|77=O|44=100|60=20250912-00:00:00|11=uniqueClOrdId2|1=account|55=AAPL|38=1|40=3|54=2|77=C|99=100|60=20250912-00:00:00|11=uniqueClOrdId3|1=account|55=AAPL|38=1|40=2|54=2|77=C|44=100|60=20250912-00:00:00|10=243|

OrderCancelRequest

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = F
1 Account Y String Unique identifier of an account in the system
11 ClOrdID Y String Cancel order unique identifier assigned by client system
41 OrigClOrdID Y String Order ClOrdID for identifying the previous order in cancel and cancel/replace requests
54 Side Y char Side of order to be cancelled.
<Instrument> N Taken from original order when omitted
60 TransactTime Y UTCTimestamp Time of cancel order creation, expressed in UTC (GMT)
<Party> N Component See Parties component for details
<Standard Trailer> Y

Notes:

Cancel order request example:

|8=FIX.4.4|9=135|35=F|49=SENDER_ID|56=TARGET_ID|34=10|52=20250912-00:00:00|1=account|11=uniqueClOrdId|38=1|54=1|55=AAPL|60=20250912-00:00:00|41=ClOrdIdToCancel|10=242|

OrderCancel/ReplaceRequest

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = G
1 Account Y String Unique identifier of an account in the system
11 ClOrdID Y String Cancel/Replace request order unique identifier assigned by client system
41 OrigClOrdID Y String Order ClOrdID for identifying the previous order in cancel/replace requests
<Instrument> Y
54 Side Y char Side of order to be replaced
38 OrderQty Y Qty Order quantity
40 OrdType Y char Order type as in the original. See A.1. Valid OrdType (40)
44 Price N Price Price per unit of quantity. Required for LIMIT OrdType orders
99 StopPx N Price Price per unit of quantity. Required for STOP/STOPLIMIT OrdType orders
60 TransactTime Y UTCTimestamp Time of cancel order creation, expressed in UTC (GMT)
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
6407 PositionID N String Position based trading only. ID of position that should be modified by a given order. Not supported for opening orders. Can be specified for attached orders replacement
<Party> N Component See Parties component for details
<Standard Trailer> Y

Notes:

Cancel/Replace request of LIMIT order example:

|8=FIX.4.4|9=158|35=G|49=SENDER_ID|56=TARGET_ID|34=26|52=20250912-00:00:00|11=uniqueClOrdId|1=account|41=clOrdIdToReplace|55=AAPL|38=1|40=2|54=1|60=20250912-00:00:00|77=O|44=300|59=1|10=115|

Cancel/Replace request of STOP order example:

|8=FIX.4.4|9=158|35=G|49=SENDER_ID|56=TARGET_ID|34=26|52=20250912-00:00:00|11=uniqueClOrdId|1=account|41=clOrdIdToReplace|55=AAPL|38=1|40=3|54=1|60=20250912-00:00:00|77=O|99=100|59=1|10=115|

MultilegCancelReplaceRequest

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = AC
1 Account Y String Unique identifier of an account in the system
11 ClOrdID Y String Cancel/Replace request order unique identifier assigned by client system
41 OrigClOrdID Y String Order ClOrdID for identifying the previous order in cancel/replace requests
54 Side Y char Side of order to be replaced.
38 OrderQty Y Qty Order quantity.
40 OrdType Y char Order type as in the original. See A.1. Valid OrdType (40)
40 MultilegPriceMethod N Char 0 - NetPrice, 3 - Individual
44 Price N Price Price per unit of quantity. When MultilegPriceMethod=0 (NetPrice) or not defined - required for LIMIT OrdType orders
99 StopPx N Price Price per unit of quantity. When MultilegPriceMethod=0 (NetPrice) or not defined - required for STOP/STOPLIMIT OrdType orders
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9: TimeInForce valid values. Default value depends on the platform configuration
432 ExpireDate N LocalMktDate Expiration date in UTC: must have a value for GTD mode, if ExpireTime(126) is not set.
There must be no ExpireDate field for DAY/ATC TimeInForce.
Format : YYYYYMMDD, e.g. 20200731
126 ExpireTime N UTCTimestamp Expiration time in UTC; must have a value for GTD mode, if ExpireDate(432) is not set.
There must be no ExpireTime field for DAY/ATC TimeInForce.
Format: yyyyMMdd-HH:mm:ss.SSS Example: 20200731-23:00:00.000
555 NoLegs Y Integer Number of legs
<FixLegOrdGrp> Y
60 TransactTime Y UTCTimestamp Time of cancel order creation, expressed in UTC (GMT)
<Party> N Component See Parties component for details
<Standard Trailer> Y

Example:

|8=FIX.4.2|9=220|35=AC|49=SENDER_ID|56=TARGET_ID|34=103|52=20250912-00:00:00|11=uniqueClOrdId|41=clOrdIdToReplace|1=account|54=1|38=1|40=2|59=1|555=2|600=AAPL|564=O|623=100|624=1|600=.AAPL260116C140|564=O|623=1|624=1|60=20250912-00:00:00|44=500|10=022|

Order Status Request

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = H
1 Account Y String Unique identifier of an account in the system
11 ClOrdID Y String Requested order unique identifier assigned by client system
<Instrument> Y
54 Side Y char Order side
790 OrdStatusRequestID N String Can be used to uniquely identify a specific Order Status Request message
<Standard Trailer> Y

The server will reject the request if account and / or instrument don't match account / instrument of the order.

Order Status Request example:

|8=FIX.4.4|9=107|35=H|49=SENDER_ID|56=TARGET_ID|34=34|52=20250912-00:00:00|1=account|11=clOrdIdToCheck|55=AAPL|54=1|790=uniqueStatusRequestId|10=166|

Server Messages

Server will send following messages to update client with the events in corresponding accounts.

FixInstrumentLegExecGrp

This repeating group is used in Execution Report to specify the order leg

Tag Field Name Required Data Type Comments
600 LegSymbol Y String Identifier for an instrument that can be traded (see dxFeed Symbology)
608 LegCFICode N String CFI code. See A.8. Valid CFICode (461/608)
611 LegMaturityDate N LocalMktDate Maturity date of leg instrument
1358 LegPutCall N Char 0 - PUT, 1 - CALL
612 LegStrikePrice N Price Strike price
564 LegPositionEffect C Char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O - open, C - close
624 LegSide N Char 1 - BUY, 2 - SELL, 5 - SELL SHORT
623 LegRatioQty N Qty Leg quantity ratio
566 LegPrice N Price Leg price

Execution Report for accepted orders

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Average price of all fills on this order
11 ClOrdID Y String Order unique identifier assigned by client system
14 CumQty Y Qty Total quantity (e.g. number of executed fills for that order)
17 ExecID Y String Unique identifier of execution message as assigned by server
37 OrderID Y String Unique identifier of an order in DxCore system
38 OrderQty Y Qty Order quantity.
39 OrdStatus Y char Identifies current status of order. See A.5. Possible OrdStatus (39) values
40 OrdType N char Order type.
54 Side Y char Order side.
60 TransactTime Y UTCTimestamp Time of execution, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
150 ExecType Y char Describes purpose of execution report. See A.6. Possible ExecType (150) values
151 LeavesQty Y Qty Quantity available for further execution. Can be zero for a ‘closing’ order linked to a position via PositionId.
31 LastPx N Price Price of this (last) fill. Used when ExecType = TRADE
32 LastQty N Qty Quantity bought/sold on this fill. Used when ExecType = TRADE
377 SolicitedFlag N Boolean Indicates whether or not the order was solicited
<Instrument> N
167 SecurityType N String MLEG for multileg order report
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
44 Price N Price Price from original order. Calculated price for orders with PriceInstruction.
99 StopPx N Price StopPx from original order. Calculated stopPx for orders with PriceInstruction.
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9. Valid TimeInForce (59).Default value depends on the platform configuration
432 ExpireDate N UTCTimestamp Expiration date in UTC: always has a value for GTD mode.
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
6407 PositionId N int Position linked with order.Relevant for position based trading only
<Party> N Component See Parties component for details
<Standard Trailer> Y

Reports example for single leg order:

|8=FIX.4.2|9=202|35=8|49=TARGET_ID|56=SENDER_ID|34=37|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=0|39=0|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=1|59=1|151=1|14=0|6=0|60=20250912-00:00:00|77=O|10=002|

|8=FIX.4.2|9=222|35=8|49=TARGET_ID|56=SENDER_ID|34=38|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=F|39=2|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=1|59=1|32=1|31=226.79|151=0|14=1|6=226.79|60=20250912-00:00:00|77=O|10=217|

Reports example for multileg order:

|8=FIX.4.2|9=304|35=8|49=TARGET_ID|56=SENDER_ID|34=7|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=0|39=0|1=account|167=MLEG|54=1|38=1|40=1|59=1|151=1|14=0|6=0|60=20250912-00:00:00|555=2|600=AAPL|608=EXXXXX|623=100|624=1|564=O|600=.AAPL260116C140|608=OCAXXX|611=20260115|612=140.0|623=1|624=1|564=O|10=023|

|8=FIX.4.2|9=356|35=8|49=TARGET_ID|56=SENDER_ID|34=8|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=F|39=0|1=account|167=MLEG|54=1|38=1|40=1|59=1|32=1|151=1|14=0|6=0|60=20250912-00:00:00|442=3|555=2|600=AAPL|608=EXXXXX|623=100|624=1|566=226.79|564=O|637=226.79|1418=100|600=.AAPL260116C140|608=OCAXXX|611=20260115|612=140.0|623=1|624=1|566=89.75|564=O|10=207|

|8=FIX.4.2|9=358|35=8|49=TARGET_ID|56=SENDER_ID|34=9|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=F|39=2|1=account|167=MLEG|54=1|38=1|40=1|59=1|32=1|151=0|14=1|6=316.54|60=20250912-00:00:00|442=3|555=2|600=AAPL|608=EXXXXX|623=100|624=1|566=226.79|564=O|600=.AAPL260116C140|608=OCAXXX|611=20260115|612=140.0|623=1|624=1|566=89.75|564=O|637=89.75|1418=1|10=073|

Execution Report for rejected orders/order lists.

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Always = 0
11 ClOrdID Y String Order unique identifier assigned by client system.
66 ListID N String List identifier, taken from original NewOrderList. Used for strategy orders.
17 ExecID Y String Execution message unique identifier assigned by server
37 OrderID Y String “NONE” when order is rejected because of validation rule. Unique identifier for order in DxCore system otherwise
377 SolicitedFlag N Boolean Indicates whether or not the order was solicited
39 OrdStatus Y char Order status.
54 Side Y char Side of order
<Instrument> N
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
58 Text N String Reject description
150 ExecType Y char Describes purpose of execution report. 8 = REJECTED
103 OrdRejReason Y int Reject reason. See A.3. Possible OrdRejectReason (103) values
151 LeavesQty Y Qty Always 0
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9. Valid TimeInForce (59). Default value depends on the platform configuration
432 ExpireDate N UTCTimestamp Expiration date in UTC: always has a value for GTD mode.
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
6407 PositionId N int Position linked with order. Relevant for position based trading only
<Party> N Component See Parties component for details
<Standard Trailer> Y

Rejected report example:

|8=FIX.4.4|9=300|35=8|49=TARGET_ID|56=SENDER_ID|34=51|52=20250912-00:00:00|37=orderId|11=clOrderId|17=execId|150=8|39=8|103=99|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=3|99=100.0|59=1|151=0|14=0|6=0|60=20250912-00:00:00|77=O|58=STOP_ORDER_IN_THE_MARKET: Stop price surpassed. Please adjust your stop price.|10=231|

Execution Report for canceled orders

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Always = 0
11 ClOrdID Y String Request unique identifier assigned by client system
41 OrigClOrdID Y String Order ClOrdID which is replaced by client request
17 ExecID Y String Execution message unique identifier assigned by server
37 OrderID Y String Unique identifier for order in DxCore system
377 SolicitedFlag N Boolean Indicates whether or not the order was solicited
39 OrdStatus Y char 4 = CANCELED
54 Side Y Order side.
<Instrument> N
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
150 ExecType Y char 4 = CANCELED
151 LeavesQty Y Qty Always = 0
44 Price N Price Price/ calculated price from original order
99 StopPx N Price StopPx/ calculated stopPx from original order
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9. Valid TimeInForce (59). Default value depends on the platform configuration
432 ExpireDate N UTCTimestamp Expiration date in UTC: always has a value for GTD mode.
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
40 OrdType N char Order type
14 CumQty Y Qty Total quantity (e.g. sum of executed fills for order)
<Party> N Component See Parties component for details
<Standard Trailer> Y

Canceled report example:

|8=FIX.4.2|9=225|35=8|49=TARGET_ID|56=SENDER_ID|34=47|52=20250912-00:00:00|37=orderId|11=clOrdId|41=origClOrdId|17=execId|150=4|39=4|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=2|44=100.0|59=1|151=0|14=0|6=0|60=20250912-00:00:00|77=O|10=086|

Execution Report as response for Order Status Request

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Average price of all fills on order
11 ClOrdID Y String Order unique identifier assigned by client system
790 OrdStatusRequestID Y String Order Status Request ID. Echo back the value provided by requester
41 OrigClOrdID N String ClOrdID of the order, which should be replaced by client request
14 CumQty Y Qty Total quantity (e.g. number of executed fills for order)
17 ExecID Y String Execution message unique identifier assigned by server
37 OrderID Y String Unique identifier for order in DxCore system
38 OrderQty Y Qty Order quantity.
39 OrdStatus Y char Order status
40 OrdType N char Order type
377 SolicitedFlag N Boolean Indicates whether or not the order was solicited
54 Side Y char Order side.
<Instrument> N
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
58 Text N String Reject description
44 Price N Price Price/calculated price from original order
99 StopPx N Price StopPx/ calculated stopPx from original order
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9. Valid TimeInForce (59). Default value depends on the platform configuration
432 ExpireDate N UTCTimestamp Expiration date in UTC: always has a value for GTD mode.
60 TransactTime Y UTCTimestamp Time of execution, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
64 SettlDate N LocalMktDate Specific date of trade settlement (date of profit/loss to be realized) in YYYYMMDD format
75 TradeDate N LocalMktDate Indicates date of trade referenced in this message in YYYYMMDD format
150 ExecType Y char I = ORDER_STATUS
103 OrdRejReason N int Reject reason. See A.3. Possible OrdRejectReason (103) values
151 LeavesQty Y Qty Quantity open for further execution
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
6407 PositionId N int Position linked with order. Relevant for position based trading only
<Party> N Component See Parties component for details
Y

Example:

|8=FIX.4.2|9=209|35=8|49=TARGET_ID|56=SENDER_ID|34=54|52=20250912-00:00:00|37=orderId|11=clOrdId|790=requestId|17=execId|150=I|39=2|1=account|55=AAPL|461=EXXXXX|54=1|38=1|59=1|151=0|14=1|6=226.79|60=20250912-00:00:00|77=O|10=238|

Execution Report for rejected Order Status Request (internal server error)

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Always = 0
11 ClOrdID Y String Order unique identifier assigned client system
66 ListID N String List identifier, taken from original NewOrderList. Used for group orders.
14 CumQty Y Qty Always = 0
17 ExecID Y String Execution message unique identifier assigned by server
37 OrderID Y String Unique identifier for order in DxCore system
38 OrderQty Y Qty Always 0
39 OrdStatus Y char 8=REJECTED
54 Side Y char Order side.
58 Text N String Reject description
<Instrument> N
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
60 TransactTime Y UTCTimestamp Time of execution, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
103 OrdRejReason Y int Reject reason. See A.3. Possible OrdRejectReason (103) values
150 ExecType Y char I = ORDER_STATUS
151 LeavesQty Y Qty Always = 0
<Party> N Component See Parties component for details
<Standard Trailer> Y

Execution Report in response to successful Order Cancel/Replace request

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
1 Account Y String Unique identifier of an account in the system
6 AvgPx Y Price Average price of all fills on order (0 if not filled)
11 ClOrdID Y String Order unique identifier assigned by server or client
41 OrigClOrdID Y String Order ClOrdID which is replaced by client request
66 ListID N String List identifier, taken from original NewOrderList. Used for group orders.
14 CumQty Y Qty Total quantity (e.g. number of executed fills for order)
17 ExecID Y String Execution message unique identifier assigned by server
37 OrderID Y String Unique identifier for order in DxCore system
38 OrderQty Y Qty Order quantity.
39 OrdStatus Y char Identifies the current status of the order. See A.5. Possible OrdStatus (39) values
54 Side Y char Order side.
60 TransactTime Y UTCTimestamp Time of execution, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
150 ExecType Y char 5 = REPLACED
377 SolicitedFlag Y Boolean Indicates whether or not the order was solicited.
151 LeavesQty Y Qty Quantity open for further execution. 0 for filled orders.
<Instrument> N
555 NoLegs N Qty Number of legs in FixInstrumentLegExecGrp in case execution report is for multileg order
<FixInstrumentLegExecGrp> N
44 Price N Price Price/calculated price from original order
99 StopPx N Price StopPx/calculated stopPx from original order
59 TimeInForce N Char Specifies how long the order remains in effect. See A.9. Valid TimeInForce (59). Default value depends on the platform configuration
77 PositionEffect C char Indicates whether the resulting position after a trade should be an opening position or closing position. Required for Equity and Options trading for Brokerage.
O = Opening, C = Closing
<Party> N Component See Parties component for details
<Standard Trailer> Y

Example for single leg order:

|8=FIX.4.2|9=222|35=8|49=TARGET_ID|56=SENDER_ID|34=63|52=20250912-00:00:00|37=orderId|11=clOrdId|41=origClOrdId|17=execId|150=E|39=E|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=2|44=100.0|59=1|151=1|14=0|6=0|60=20250912-00:00:00|77=O|10=182|

|8=FIX.4.2|9=222|35=8|49=TARGET_ID|56=SENDER_ID|34=64|52=20250912-00:00:00|37=orderId|11=clOrdId|41=origClOrdId|17=execId|150=5|39=0|1=account|55=AAPL|461=EXXXXX|54=1|38=1|40=2|44=300.0|59=1|151=1|14=0|6=0|60=20250912-00:00:00|77=O|10=153|

Example for multileg leg order:

|8=FIX.4.2|9=326|35=8|49=TARGET_ID|56=SENDER_ID|34=100|52=20250912-00:00:00|37=orderId|11=clOrdId|41=origClOrdId|17=execId|150=E|39=E|1=account|167=MLEG|54=1|38=1|40=2|44=100.0|59=1|151=1|14=0|6=0|60=20250912-00:00:00|555=2|600=AAPL|608=EXXXXX|623=100|624=1|564=O|600=.AAPL260116C140|608=OCAXXX|611=20260115|612=140.0|623=1|624=1|564=O|10=025|

|8=FIX.4.2|9=326|35=8|49=TARGET_ID|56=SENDER_ID|34=101|52=20250912-00:00:00|37=orderId|11=clOrdId|41=origClOrdId|17=execId|150=5|39=0|1=account|167=MLEG|54=1|38=1|40=2|44=500.0|59=1|151=1|14=0|6=0|60=20250912-00:00:00|555=2|600=AAPL|608=EXXXXX|623=100|624=1|564=O|600=.AAPL260116C140|608=OCAXXX|611=20260115|612=140.0|623=1|624=1|564=O|10=254|

Order Cancel Reject

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 9
1 Account Y String Unique identifier of an account in the system
37 OrderID Y String Cancel request unique ID assigned by server
11 ClOrdID Y String Order ClOrdID which should be rejected by request.
41 OrigClOrdID Y String OrderID that corresponds to OrigClOrdID. If CxlRejReason is «Unknown order», field value is «NONE»
66 ListID N String List identifier, taken from original NewOrderList. Used for group orders.
39 OrdStatus Y char OrdStatus value for specified order. See A.5. Possible OrdStatus (39) values
60 TransactTime Y UTCTimestamp Time of execution, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
434 CxlRejResponseTo Y char Identifies type of request that Cancel Reject is in response to. Used
  • 1=ORDER_CANCEL_REQUEST
  • 2 = ORDER_REPLACE_REQUEST
102 CxlRejReason Y int Code to identify reason for cancel rejection. See A.4. Possible CxlRejReason (102) values
58 Text N String Reject description
<Party> N Component See Parties component for details
<Standard Trailer> Y

Drop Copy ExecutionReport

ExecutionReport sent as Drop Copy contains all FIX tags regular ExecutionReport contains and some additional tags. See examples above to check how regular ExecutionReport looks.

Additional tags of Drop Copy ExecutionReport:

Drop Copy ExecutionReport

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = 8
<ExecutionReport fields> Y See ExecutionReport examples above
9945 OrigOrdID Y String ID of ClientOrder- ID the order client can observe in DxTrade UI or Dealer can observe in WebBroker UI
797 CopyMsgIndicator Y char marks the message is a Drop Copy
<Standard Trailer> Y

Drop Copy ExecutionReport examples:

Example 1:

Preconditions:

Fix messages counterparty can observe in Drop Copy FIX session:

  1. Order was accepted in DX platform.

    |8=FIX.4.2|9=221|35=8|49=TARGET_ID|56=SENDER_ID|34=38|43=N|52=20250912-00:00:00|37=orderId|11=clOrdId|17=execId|150=0|39=0|1=account|55=AAPL|461=EXXXXX|54=1|38=20|40=1|59=0|151=20|14=0|6=0|60=20250912-00:00:00|77=O|797=Y|9945=origOrdId|10=085|
    
  2. Drop Copy with partial with 2 shares.
    |8=FIX.4.2|9=241|35=8|49=TARGET_ID|56=SENDER_ID|34=39|43=N|52=20250912-00:00:01|37=orderId|11=clOrdId|17=execId|150=F|39=1|1=account|55=AAPL|461=EXXXXX|54=1|38=20|40=1|59=0|32=2|31=234.07|151=18|14=2|6=234.07|60=20250912-00:00:01|77=O|797=Y|9945=origOrdId|10=024|
    
  3. Drop Copy with partial with 5 shares.
    |8=FIX.4.2|9=241|35=8|49=TARGET_ID|56=SENDER_ID|34=40|43=N|52=20250912-00:00:02|37=orderId|11=clOrdId|17=execId|150=F|39=1|1=account|55=AAPL|461=EXXXXX|54=1|38=20|40=1|59=0|32=5|31=234.07|151=13|14=7|6=234.07|60=20250912-00:00:02|77=O|797=Y|9945=origOrdId|10=022|
    
  4. Drop Copy with partial with 7 shares.
    |8=FIX.4.2|9=241|35=8|49=TARGET_ID|56=SENDER_ID|34=41|43=N|52=20250912-00:00:03|37=orderId|11=clOrdId|17=execId|150=F|39=1|1=account|55=AAPL|461=EXXXXX|54=1|38=20|40=1|59=0|32=7|31=234.07|151=6|14=14|6=234.07|60=20250912-00:00:03|77=O|797=Y|9945=origOrdId|10=028|
    
  5. Drop Copy with final partial with 6 shares.
    |8=FIX.4.2|9=241|35=8|49=TARGET_ID|56=SENDER_ID|34=42|43=N|52=20250912-00:00:04|37=orderId|11=clOrdId|17=execId|150=F|39=2|1=account|55=AAPL|461=EXXXXX|54=1|38=20|40=1|59=0|32=6|31=234.07|151=0|14=20|6=234.07|60=20250912-00:00:04|77=O|797=Y|9945=origOrdId|10=014|
    

Allocation Report

Platform supports special Allocation Orders Information. Such orders can also be reported via Fix DropCopy session.

OrdAllocGrp

Tag Field Name Required Data Type Comments
73 NoOrders Y int Indicates number of orders to be combined for allocation
37 OrderID Y String Id of order in OrdAllocGrp (e.g. id of block allocation order)

AllocGrp

Tag Field Name Required Data Type Comments
78 NoAllocs Y int Number of allocations in AllocGrp
79 AllocAccount Y String Unique identifier of an account in the system for that allocation is performed in AllocGrp
80 AllocQty Y Qty Quantity allocated to account in AllocGrp
366 AllocPrice Y Price Allocation price in AllocGrp
573 MatchStatus N String 3 = Mismatched for allocations to reminder in AllocGrp

AllocationReport FIX message:

Tag Field Name Required Data Type Comments
<Standard Header> Y MsgType = AS
755 AllocReportID Y String Unique identifier for this message
71 AllocTransType Y int 0 = New
794 AllocReportType Y String 12 = COMPLETE
87 AllocStatus Y int 0 = Accepted
<OrdAllocGrp> Each group starts with OrderID
54 Side Y char Order side
<Instrument> Y
53 Quantity Y Qty Total quantity (e.g. number of shares) allocated to all accounts
6 AvgPx Y Price Average price of shares allocated to accounts
75 TradeDate N LocalMktDate Indicates date of allocations generating in YYYYMMDD format
60 TransactTime Y UTCTimestamp Time when allocations are generated, expressed in UTC (GMT) with or without milliseconds depending on FIX session options
<AllocGrp> Each group starts with AllocAccount

Appendices

A.1. Valid OrdType (40)

Field Value Meaning
1 MARKET
2 LIMIT
3 STOP
4 STOP LIMIT

A.2. Valid Side (54)

Field Value Meaning
1 BUY
2 SELL
5 SELL SHORT

A.3. Possible OrdRejectReason (103) values

Field Value Meaning Comments
0 BROKER_EXCHANGE_OPTION
1 UNKNOWN_SYMBOL
2 EXCHANGE_CLOSED
4 TOO_LATE_TO_ENTER
5 UNKNOWN_ORDER
6 DUPLICATE_ORDER Duplicate ClOrdID (11) fields
8 STALE_ORDER
11 UNSUPPORTED_ORDER_CHARACTERISTIC
13 INCORRECT_QUANTITY
15 UNKNOWN_ACCOUNT
18 INVALID_PRICE_INCREMENT
99 OTHER

A.4. Possible CxlRejReason (102) values

Field Value Meaning
0 TOO_LATE_TO_CANCEL
1 UNKNOWN_ORDER
2 BROKER_EXCHANGE_OPTION
3 ORDER_ALREADY_IN_PENDING_CANCEL_OR_PENDING_REPLACE_STATUS
6 DUPLICATE_CLORDID_RECEIVED
18 INVALID_PRICE_INCREMENT
99 OTHER

A.5. Possible OrdStatus (39) values

Field Value Meaning
0 New
1 Partially filled
2 Filled
3 Done for day
4 Cancelled
6 Pending cancel
8 Rejected
A Pending new
C Expired
E Pending replace

A.6. Possible ExecType (150) values

Field Value Meaning Comments
0 New Order created
3 Done for day
4 Cancelled Order cancelled
5 Replaced
6 Pending cancel Reserved
8 Rejected Order rejected by system
A Pending new
C Expired
F Trade Order executed (FILLED)
G Trade correct Trade corrected
H Trade cancel Trade cancelled
I Order status

A.7. Possible Text (58) values for business rejects

Text values for business rejects (not for FIX-level errors) are of following format: Error_Code: Descriptive_Text. For example, "INTERNAL_ERROR: Internal error. Please contact your account manager".

Following table shows some possible values for error codes, which are constant, and corresponding texts, which can be changed. Additionally, business meaning of error is elaborated in "Comments" column.

Error code Text description (example) Comments
INTERNAL_ERROR Internal error. Please contact your account manager An internal error occurred in the platform, most probably due to incorrect configuration. The issue cannot be resolved by the client; TF support should be contacted
ORDER_NOT_EXECUTED Your order could not be executed. Please contact your account manager Order could not be executed due to execution settings on the platform. The issue cannot be resolved by the client; TF support should be contacted
INCOMPATIBLE_INSTRUMENT_CURRENCY Instrument currency does not match account currency Instrument currency does not match account currency
VALIDATION_FAILED_ACCOUNT_TRADING_IS_NO Trading status is set to 'No Trading' for account ACCOUNT Account is NO_TRADING status
VALIDATION_FAILED_TIME_IN_FORCE_NOT_SET Time in force is not set for the order Time in force is not set for the order
VALIDATION_FAILED_TOO_SMALL_REPLACING_QUANTITY_AFTER_PARTIAL_FILL Quantity of the replacing order must be greater or equal to partially filled quantity (1) Quantity of replacing order is less than already filled quantity
VALIDATION_FAILED_INSTRUMENT_TYPE_NOT_PROVIDED_FOR_ACCOUNT Instrument type OPTION[STOCK] is incompatible with account trading type FUTURES Incompatible instrument type for the account
VALIDATION_FAILED_INSTRUMENT_TRADING_IS_DISABLED Tradable flag is set to 'No' for the instrument AAPL Instrument trading status is DISABLED
VALIDATION_FAILED_INSTRUMENT_CLOSE_ONLY Only closing orders are allowed for instrument AAPL Instrument trading status is CLOSE_ONLY but order has opening leg for this instrument
ORDER_COULD_NOT_BE_EXECUTED_AFTER_THE_LAST_TRADE_TIME Order for .AAPL250912C110 is executed after last trade date of instrument: 12 Sep 2025 11:00:00 PM UTC Last trade time order instrument was passed
VALIDATION_FAILED_ORDER_LEGS_HAVE_SAME_INSTRUMENT Spread order has two or more legs with same instrument Duplicate instruments in order
VALIDATION_FAILED_ORDER_LEGS_HAS_DIFFERENT_UNDERLYING Spread order has two or more legs with different underlying Different underlyings in spread order legs
ORDER_TOO_LATE_TO_REPLACE Too late to replace Order cannot be replaced in current state
VALIDATION_PRICES_MISSED_FOR_PORTFOLIO Account has a position or order with missing quotes [AAPL, IBM] Prices are not available for some positions or open orders
REQUIRED_PRICES_NOT_AVAILABLE Instrument prices for [AAPL, IBM] are missing. Order metrics can not be calculated. Prices are not available for some instruments in order
STOP_ORDER_IN_THE_MARKET Stop price surpassed. Please adjust your stop price. Defined STOP price of the order is in the market
INCORRECT_COMMISSION_CURRENCY Commission currency (EUR) does not match account currency (USD) Incorrect commission configuration
VALIDATION_FAILED_PRICE_INCREMENT Price is not multiple of tick increment: 2.50000 LIMIT or STOP price is not evenly divisible by the instrument's price increment
VALIDATION_MULTILEG_FRACTIONAL_NOTIONAL_ORDER Multileg orders are not supported with fractional or notional quantity value Cash/Fractional multileg orders are not allowed
VALIDATION_FAILED_INSTRUMENT_QUANTITY_INCREMENT Order quantity 10 must be multiple of instrument quantity increment 3 Quantity of each leg in order must be multiple of its instrument quantity increment
VALIDATION_FAILED_LIQUIDATION_IS_IN_PROGRESS Trading is not allowed while liquidation strategy is in progress Trading is not allowed while account under liquidation
VALIDATION_FAILED_POSITION_EFFECT_NOT_SET Position effect is not set for the order Position effect is required for this instrument type
VALIDATION_FAILED_POSITION_CODE_REFERS_TO_NON_EXISTING_POSITION Position code (AAPL) of closing order refers to non existing position Order with closing position effect refers to non existing position
VALIDATION_FAILED_VIOLATED_AVAILABLE_QUANTITY_TO_CLOSE Quantity of closing order 10 is more than available quantity to close 5 Available quantity to close is less than closing order quantity
VALIDATION_OPTION_LEVEL_VIOLATION Order type exceeds approved Options Level on your account. Current level: 1 Account option level can't be exceeded if new order is issued
INSUFFICIENT_PROSPECTIVE_NET_LIQ Insufficient Net liquidation. Order causes net liquidation to exceed minimum requirement 1 USD Order causes net liquidation to exceed minimum requirement
INSUFFICIENT_PROSPECTIVE_EQUITY Insufficient equity. Order causes prospective equity to exceed minimum requirement 1 Order causes prospective equity to exceed minimum requirement
INSUFFICIENT_PROSPECTIVE_BP Insufficient buying power. Order causes prospective buying power equal to -100 Order causes prospective buying power less than zero and not making it better
REASON_WITH_DESCRIPTION Reason : Description Other problems

A.8. Valid CFICode (461/608)

X means symbols specific for the given instrument (currently DX server disregards any values placed at X positions received from client) or symbol 'X' itself for values written by DX server side.

Field Value Meaning
EXXXXX STOCK
OXXXXX
OCAXXX – option call American
OCEXXX – option call European
OPAXXX – option put American
OPEXXX – option put European
OPTION
FXXXXX FUTURES
SDCXXX CFD
SEXXXX CFD_STOCK
SFXXXX CFD_FOREX
SDXXXX FOREX
RTEXXX PRODUCT
RWXXXX WARRANT
CEXXXX ETF

A.9. Valid TimeInForce (59)

Field Value Meaning Comments
0 Day Good till the end of this day’s regular session
1 GTC Good till cancelled
3 IoC Immediate or Cancelled
4 FOK Fill or Kill
5 GTX (Day+) Good till Crossing (till extended session end)
6 GTD Good till date/time specified
7 ATC At the close.