| 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 |
|
| 0.10 | Sep-16-2020 |
|
| 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 |
|
| 0.15 | Feb-02-2024 | Added trade correct and trade cancel ExecTypes |
| 0.16 | Sep-10-2025 | Aligned with current version |
FIX engine supports 2 types of FIX connections (sessions): trading connections and drop copy connections.
Trading connection accepts all client requests defined in FIX specification and sends responses only to requests received via this particular 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 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
All FIX messages either administrative or business require standard header and trailer.
| 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 |
| Tag | Field Name | Required | Comments, valid values |
|---|---|---|---|
| 10 | CheckSum | Y | Three byte, simple checksum. Always defined as three characters |
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 |
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 |
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 |
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 |
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 |
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>.
| 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) |
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.
|
| 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 |
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 |
DxCore system supports the following client-originated messages:
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.
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.
| 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|
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 |
| 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|
| 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:
|
| 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|
| 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|
| 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|
| 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|
| 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 will send following messages to update client with the events in corresponding accounts.
Execution Report about order execution status /reject reason (received as reply to NewOrderSingle, NewOrderList)
Cancel Reject message notifies that cancel/replace could not be processed (received as reply to Order Cancel/Replace Request)
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 |
| 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|
| 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|
| 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|
| 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|
| 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 |
| 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|
| 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
|
| 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 |
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:
|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|
|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|
|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|
|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|
|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|
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 |
| Field Value | Meaning |
|---|---|
| 1 | MARKET |
| 2 | LIMIT |
| 3 | STOP |
| 4 | STOP LIMIT |
| Field Value | Meaning |
|---|---|
| 1 | BUY |
| 2 | SELL |
| 5 | SELL SHORT |
| 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 |
| 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 |
| 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 |
| 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 |
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 |
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 |
| 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. |