Application Layer FIX Message Definitions
Application Layer FIX Message Definitions include the following.Â
Contents
Supported Application Layer Messages
Supported messages together with the sessions they are applicable for are outlined below:
Message Name | MsgType | Session Type | Sent by Client | Sent by EBS |
---|---|---|---|---|
MarketDataRequest | V | Market Data | √ | - |
MarketDataFullRefresh | W | Market Data | - | √ |
MarketDataIncrementalRefresh | X | Market Data | - | √ |
MarketDataRequestReject | Y | Market Data | - | √ |
NewOrderSingle | D | Order | √ | - |
ExecutionReport | 8 | Order | - | √ |
OrderCancelRequest | F | Order | √ | - |
OrderCancelReject | 9 | Order | - | √ |
OrderStatusRequest | H | Order | √ | - |
OrderMassCancelReport | r | Order | - | √ |
BusinessMessageReject | j | All | √ | √ |
In the following section where fields contain custom values or elements of later versions of the FIX protocol these have been highlighted.
Market Data (ESP)
Market Data Request (35=V)
Tag | Field Name | Req | Ver | Comments | ||
---|---|---|---|---|---|---|
128 | DeliverToCompId | N | 4.4 | Used to target a specific LP (Pass-Through) for this Market Data Request. | ||
262 | MDReqID | Y | 4.4 | Unique identifier for the MarketDataRequest. Should be unique for at least 1 week. | ||
263 | SubscriptionRequestType | Y | 4.4 | 1 = Subscribe 2 = Unsubscribe (MDReqID must match original subscription) | ||
265 | MDUpdateType | C | 4.4 | Required when SubscriptionRequestType=1. 1 = Incremental Update Messages - only supported on Sweepable (1300=D) segment | ||
12003 | UpdateInterval | N | Custom (Int) | Requested frequency of updates in milliseconds. Valid Values: 0-1000 | ||
1021 | MDBookType | C | 5.0* | Required when SubscriptionRequestType=1. 1104 – MultiLevelPriceDepth (SIngle TIcket, custom). | ||
264 | MarketDepth | Y | 4.4 | For Unsubscribe, the value will be ignored by EBS. 0 = Full book PriceDepth (Sweepable) – All prices MultiLevelPriceDepth (Single Ticket) –All prices at each LP Level. PriceDepth (Sweepable) – Best price. (Not supported for MDUpdateType of 1, Incremental.) MultiLevelPriceDepth (Single Ticket) –Best price at each LP Level. PriceDepth (Sweepable) – Not supported for MDUpdateType of 1, Incremental. MultiLevelPriceDepth (Single Ticket) - Number of price entries at each LP Level. | ||
266 | AggregatedBook | N | 4.4 | Specifies whether book entries should be aggregated. | ||
MDReqGrp | ||||||
267 | NoMDEntryTypes | Y | 4.4 | For Subscribe:Set to '2' (All requests must be two-sided price requests) | ||
→ | 269 | MDEntryType | Y | 4.4 | For Unsubscribe, the value will be ignored. 0 = Bid 1 = Offer | |
END – MDReqGrp | ||||||
InstrmtMDReqGrp - All values in this group will be ignored on unsubscribe requests. | ||||||
146 | NoRelatedSym | Y | 4.4 | Set to '1' – each ccy pair must be requested separately. | ||
→ | 55 | Symbol | Y | 4.4 | The currency pair requested, in CCY1/CCY2 format, where CCY1 and CCY2 are the ISO codes of the base and local currencies for which a price is requested, e.g. EUR/USD. | |
→ | 167 | SecurityType | C | 5.0 | Instrument type. Required for subscribing. Valid values: FXSPOT | |
→ | 1300 | MarketSegment ID | C | 5.0 | Required for subscribing and ignored for unsubscribing. D = Sweepable DF = Single Ticket | |
→ | 63 | SettlType | N | 5.0 | Instrument tenor. Valid values are listed in the Tenor and Settlement Dates section. | |
→ | 271 | MDEntrySize | N | 4.4 | For Sweepable pricing, this is the cumulative notional depth you would like to see. EBS will return the minimum number of levels required to achieve your desired depth. Cannot be used in conjunction with MarketDepth(264)>0. Specified value must be between 1000000 and 100000000 (1m and 100m). | |
END - InstrmtMDReqGrp |
Market Data Snapshot Full Refresh (35=W)
Tag | Field Name | Req | Ver | Comments | |
---|---|---|---|---|---|
262 | MDReqID | Y | 4.4 | Unique identifier for the initial MarketDataRequest. Echoes back the value on the MDRequest message. | |
1021 | MDBookType | Y | 4.4* | Echoed from the request. 2 – PriceDepth (Sweepable) 1104 – MultiLevelPriceDepth (Single Ticket, custom) | |
55 | Symbol | Y | 4.4 | Currency pair in CCY1/CCY2 format. | |
1300 | MarketSegmentID | Y | 5.0 | EBS Market Segment of this snapshot. D = Sweepable DF = Single Ticket | |
167 | SecurityType | Y | 5.0 | Instrument type. Valid values: FXSPOT | |
63 | SettlType | C | 5.0 | Instrument tenor. Valid values are listed in the Tenor and Settlement Dates section. | |
64 | SettlDate | N | 4.4 | Standard FIX field - custom on this message. | |
MDFullGrp | |||||
268 | NoMDEntries | Y | 4.4 | Number of entries in the MarketData message. | |
→ | 269 | MDEntryType | Y | 5.0 | 0 = Bid 1 = Offer J = Empty Book - Indicates no bids or offers. |
→ | 278 | MDEntryID | N | 5.0 | Used to reference the MD entry for updates and deletions. Will be zero for an empty book entry. Not sent on SnapshotFullRefresh (35=W) messages. |
→ | 270 | MDEntryPx | C | 4.4 | Price of the market data entry. |
→ | 271 | MDEntrySize | C | 4.4 | LP's quantity available at this price. Not provided if MDEntryType = EmptyBook (J). |
→ | 282 | MDEntryOriginator | N | 4.4 | Indicates the LP account ID associated with the MDEntry. Not provided if MDEntryType = EmptyBook (J). |
END - MDFullGrp |
Market Data Incremental Refresh (35=X)
Tag | Field Name | Req | Ver | Comments | |
---|---|---|---|---|---|
262 | MDReqID | Y | 4.4 | Identifier of the Market Data stream. Echoes back the value on the MDRequest message. | |
1021 | MDBookType | Y | 4.4* | Describes the characteristics of prices provided in this message. Echoed from the request. 1104 – MultiLevelPriceDepth (Custom) | |
1300 | MarketSegmentID | C | 5.0 | EBS Market Segment of this snapshot. D = Direct DF = Direct – Single Ticket – Only for MultiLevelPriceDepth book type. | |
MDIncGrp | |||||
268 | NoMDEntries | Y | 4.4 | Number of entries in the MarketData message. Must be ≥ 1 | |
→ | 279 | MDUpdateAction | Y | 4.4 | 0 = New 1 = Change 2 = Delete Will be Change (1) whenever MDEntryPx, or MDEntrySize changes. |
→ | 269 | MDEntryType | C | 5.0 | 0 = Bid 1 = Offer J = Empty Book - Indicates no bids or offers. |
→ | 278 | MDEntryID | Y | 4.4 | If MDUpdateAction = New, will be unique among currently active entries for this MDReqID. |
→ | 55 | Symbol | C | 4.4 | Currency pair in CCY1/CCY2 format. |
→ | 167 | SecurityType | C | 5.0 | Instrument type. Valid values: FXSPOT Provided when MDUpdateAction = New. Not provided when MDUpdateAction = Change or Delete. |
→ | 63 | SettlType | C | 5.0 | Instrument tenor. Not provided on empty book messages. Valid values are listed in the Tenor and Settlement Dates section. |
→ | 64 | SettlDate | N | 4.4* | The settlement date of the instrument. May be provided when MDUpdateAction = Change Not provided when MDUpdateAction = Delete. |
→ | 270 | MDEntryPx | C | 4.4 | Price of the market data entry. If MDUpdateAction = New and MDEntryType ≠Empty Book, always provided. If MDUpdateAction = Change, provided for change of this field. If MDUpdateAction = Delete, not present. If MDEntryType = Empty Book, not present. |
→ | 271 | MDEntrySize | C | 4.4 | LP's quantity available at this price. If MDUpdateAction = Change, provided. If MDUpdateAction = Delete, not present If MDEntryType = Empty Book, not present. |
→ | 282 | MDEntryOriginator | N | 4.4 | Indicates the LP account ID associated with the MDEntry. Relevant only for non-aggregated prices. Provided if MDUpdateAction = New and MDEntryType ≠Empty Book. |
END – MDIncGrp |
Market Data Request Reject (35=Y)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
262 | MDReqID | Y | 4.4 | Market Data request id which is being rejected. |
281 | MDReqRejReason | N | 4.4* | Rejection reason code: 1 – DuplicateMDReqID 2 – InsufficientBandwidth 3 – InsufficientPermissions 4 – UnsupportedSubscriptionRequestType 5 – UnsupportedMarketDepth 6 – UnsupportedMDUpdateType 8 – UnsupportedMDEntryType i - Invalid UpdateFrequency x – Market Data Unavailable (Custom) y – Throughput Violation (Custom) z – Other – Reason to be provided in Text field (Custom) |
58 | Text | C | 5.0 | Textual description of the reason for the market data request rejection. |
Trading
New Order Single (35=D)
Tag | Field Name | Req | Ver | Comments | |
---|---|---|---|---|---|
128 | DeliverToCompId | N | 4.4 | Used to target a specific LP (Pass-Through). Only supported when sending 59=3 (IOC) or 4 (FOK). | |
11 | ClOrdID | Y | 4.4 | A unique identifier for the order assigned by the client. This should be unique for at least a week. | |
1 | Account | Y | 4.4 | Trader's floor code. | |
55 | Symbol | Y | 4.4 | Currency pair to be traded, in CCY1/CCY2 format. | |
167 | SecurityType | Y | 5.0 | Valid Values: FXSPOT | |
1300 | MarketSegmentID | Y | 5.0 | EBS Market Segment of this order: DÂ = Sweepable DF = Single Ticket | |
63 | SettlType | N | 4.4 | Instrument tenor. Valid values are listed in the Tenor and Settlement Dates section | |
64 | SettlDate | N | 4.4 | Settlement date of the instrument (value date). Valid values are listed in the Tenor and Settlement Dates section. | |
54 | Side | Y | 4.4 | Trading intention from client perspective. 1 = Client Buys 2 = Client Sells | |
40 | OrdType | Y | 4.4 | Type of order: 2 = Limit | |
59 | TimeInForce | N | 5.0 | Specifies how long the order will remain in effect. 1 = Good Till Cancel (GTC) 3 = Immediate or Cancel (IOC) Default value for Sweepable (MarketSegmentID=D). Not supported on Single Ticket (MarketSegmentID=DF) 4 = Fill or Kill. Default value for Single Ticket (MarketSegmentID=DF). Not supported on Sweepable (MarketSegmentID=D) | |
38 | OrderQty | Y | 4.4 | Quantity of order, in units of the specified Currency. | |
15 | Currency | N | 4.4 | 3 character ISO code of the dealing currency. Must be base (CCY1).Defaults to base currency (CCY1). | |
44 | Price | Y | 4.4 | Limit price of order. | |
60 | TransactTime | Y | 4.4 | UTC Timestamp (Date/Time) of order. | |
5106 | FundDesignation | C | 4.4 | Designated fund code. Limit of 12 characters. | |
20115 | UserReference1 | N | Custom(String) | Customer order references. Only ASCII printable character codes 32-127 are allowed. Limit of 12 characters. | |
Parties - Identifies party involved in the NewOrderSingle. | |||||
453 | NoPartyIDs | N | 4.4 | ||
→ | 448 | PartyID | Y | 4.4 | Identifier of the party. |
→ | 447 | PartyIDSource | Y | 5.0 | Identifies the source of PartyID value. |
→ | 452 | PartyRole | Y | 4.4 | 1 = Executing LC Firm (Floor Code) 12 = Executing LC Trader (TraderId). If provided this will be validated and must match a corresponding entry on the EBS platform otherwise the order will be rejected. |
END - Parties |
Execution Report (35=8)
An Execution Report is returned to indicate whether a deal has been filled or rejected. It is also returned in response to an OrderStatusRequest.
Tag | Field Name | Req | Ver | Comments | |||
---|---|---|---|---|---|---|---|
37 | OrderID | Y | 4.4 | Unique identifier of the order assigned by EBS. | |||
11 | ClOrdID | Y | 4.4 | Unique identifier of the order/request as assigned by the client. | |||
41 | OrigClOrdID | C | 4.4 | ClOrdID of the order for which cancellation was requested. | |||
790 | OrdStatusReqID | C | 4.4 | Unique identifier of the OrderStatusRequest message. | |||
17 | ExecID | Y | 4.4 | Contains Deal ID when ExecType = F, Trade. Contains zero when in response to an OrderStatusRequest. Otherwise contains a unique identifier of the ExecutionReport. | |||
150 | ExecType | Y | 4.4 | Purpose of this Execution Report 0 = New (order accepted) 4 = Cancelled 6 = Pending Cancel 8 = Rejected C = Expired F = Trade (Partial or full) I = Order Status | |||
39 | OrdStatus | Y | 4.4 | Status of order 1 = Partially filled 2 = Filled (Completed) 4 = Cancelled 6 = Pending Cancel. Confirms receipt of order cancel request for orders with matches in flight. 8 = Rejected C = Expired (due to TimeInForce value) | |||
378 | ExecRestatementReason | N | 4.4 | Identifies the reason for unsolicited cancel. 99 = Other | |||
1 | Account | Y | 4.4 | Trader's floor code. | |||
55 | Symbol | Y | 4.4 | Currency pair in CCY1/CCY2 format. | |||
167 | SecurityType | Y | 5.0 | Valid Values: FXSPOT | |||
1300 | MarketSegmentID | Y | 5.0 | EBS Market Segment. Valid Values: DF = Single Ticket | |||
63 | SettlType | C | 5.0 | Instrument tenor. Valid values are listed in the Tenor and Settlement Dates section. | |||
54 | Side | Y | 4.4 | Side of the order from the client perspective. (Echoed from request) 2 = Client Sells | |||
64 | SettlDate | C | 4.4 | The settlement date of this trade in YYYYMMDD format. Provided when ExecType = F [Trade]. | |||
75 | TradeDate | C | 4.4 | Effective business date of the trade in YYYYMMDD format. Provided when ExecType = F [Trade]. | |||
38 | OrderQty | Y | 4.4 | Quantity of order, in units of the specified Currency. (Echoed from NOS or the Order Cancel Request) | |||
15 | Currency | N | 4.4 | 3 character ISO code of the dealt Currency. (Echoed from NOS) | |||
59 | TimeInForce | N | 4.4 | Specifies how long the order will remain in effect. (Echoed from NOS, if provided) | |||
40 | OrdType | Y | 4.4 | Type of order: | |||
44 | Price | C | 4.4 | Price submitted on the order. (Echoed from NOS, if provided) | |||
60 | TransactTime | Y | 4.4 | The UTC Timestamp (Date/Time) the transaction represented by this ExecutionReport occurred. | |||
126 | ExpireTime | N | 4.4 | Date/Time the order will be expired. | |||
31 | LastPx | C | 4.4 | The dealt price of this trade. | |||
32 | LastQty | C | 4.4 | The quantity of this trade in terms of the dealt Currency. Provided when ExecType = F [Trade]. | |||
1056 | CalculatedCcyLastQty | N | 4.4 | Calculated quantity of the contra currency. Provided when ExecType = F [Trade]. | |||
14 | CumQty | Y | 4.4 | Total amount of the order which has been filled in terms of the dealt Currency. | |||
151 | LeavesQty | Y | 4.4 | Quantity of the order which is open for execution in terms of the dealt Currency. | |||
6 | AvgPx | Y | 4.4 | Average price at which this order has been filled (weighted by size). | |||
103 | OrdRejReason | N | 4.4 | Code indicating why the order was rejected. Provided when the order is rejected. | |||
58 | Text | N | 4.4 | Human-readable text field regarding the execution. | |||
5106 | FundDesignation | N | 4.4 | Designated fund code. Echoed from NOS, if provided. | |||
20115 | UserReference1 | N | Custom (String) | Customer order references. Echoed from NOS D = Direct (Sweepable) DF = Direct (Single Ticket) | |||
Parties - Identifies the parties of the trade. Or identifies the order submitter. | |||||||
453 | NoPartyIDs | C | 4.4 | ||||
→ | 448 | PartyID | Y | 4.4 | Identifier of the party. | ||
→ | 447 | PartyIDSource | Y | 5.0 | Identifies the source of PartyID valueD = Proprietary | ||
→ | 452 | PartyRole | Y | 4.4 | 1 = Executing LC Firm 12 = Executing LC Trader 17 = Contra Firm (for settlement) 35 = Liquidity Provider | ||
END – Parties |
Order Rejection Reason Codes
When an order is rejected or cancelled without being filled, the OrdRejReason (103) will be provided on the Execution Report to indicate the reason for rejection.
Code | Description | Comment |
---|---|---|
0 | Broker Credit | Client has insufficient credit to execute order. |
1 | Unknown Symbol | Symbol not recognized. |
2 | Exchange Closed | Market currently unavailable. |
3 | Order Exceeds Limit | Size of order exceeds limit. |
4 | Too Late To Enter | Trading in this instrument not currently available. |
5 | Unknown Order | N/A |
6 | Duplicate Order | ClOrdID of NOS is not unique. |
8 | Stale Order | SendingTime on NOS indicates that a network delivery delay has caused the order to be stale. |
11 | Unsupported Order Characteristic | Property on order not supported. |
13 | Incorrect Quantity | OrderQty does not meet instrument's min, max or size increment restrictions. |
15 | Unknown Account | Account not recognized. |
16 | Price Exceeds Current Price Band | Price on order does not comply with price range limits. |
18 | Invalid Price Increment | Price does not meet instrument's price increment restrictions. |
99 | Other | Catch all for other rejection reasons. |
Order Cancel Request (35=F)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
41 | OrigClOrdID | Y | 4.4 | Unique identifier of the order to be cancelled, as assigned by the client on the NewOrderSingle. Value of ClOrdID(11)Â from the NewOrderSingle. |
37 | OrderID | N | 4.4 | Unique identifier of the order requested to be cancelled, assigned by EBS. |
11 | ClOrdID | Y | 4.4 | Unique order identifier of this Cancel Request. |
55 | Symbol | Y | 4.4 | Currency pair, in CCY1/CCY2 format. |
54 | Side | Y | 4.4 | Side of order to be cancelled, as appeared on NOS. 1Â = Client Buys 2 = Client Sells |
38 | OrderQty | Y | 4.4 | Original OrderQty of order, as appeared on NOS. |
60 | TransactTime | Y | 4.4 | UTC Timestamp (Date/Time) of order cancellation request. |
Order Cancel Reject (35=9)
The client will receive this message if the OrderCancelRequest cannot be executed.
The order may have been filled
The order may have expired
The order may have already been canceled
OrigClOrdID could not be found
Duplicate ClOrdID
The client will also receive this message for each order that could not be cancelled from the OrderMassCancelReport. The order would have been included in the TotalAffectedOrders on the OrderMassCancelReport. The reason for the rejection will be provided in the CxlRejReason field.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
37 | OrderID | Y | 4.4 | Unique identifier of the order requested to be cancelled, assigned by EBS. |
11 | ClOrdID | Y | 4.4 | Identifier of the OrderCancelRequest message which is being rejected. |
41 | OrigClOrdID | Y | 4.4 | ClOrdID of the order requested to be cancelled. |
434 | CxlRejResponseTo | Y | 4.4 | Type of request that the Cancel Reject is in response to. (Always equals 1) |
39 | OrdStatus | Y | 4.4 | Order status after this cancel reject is applied. 1 = Partially filled 2 = Filled – Order has already been filled 4 = Canceled – Order has already been cancelled 6 = Pending cancel. Indicates a duplicate cancel request 8 = Rejected – Order is unknown C = Expired |
102 | CxlRejReason | N | 4.4 | Code to identify reason for cancel rejection. 1 = Unknown order 2 = Exchange Option (Cancel not valid for order's TimeInForce value) 3 = Order already Pending Cancel 6 = Duplicate ClOrdID 99 = Other. Reason will be provided in Text field. |
58 | Text | N | 4.4 | Optional text string providing reason for cancellation rejection. |
60 | TransactTime | Y | 4.4 | UTC Timestamp (Date/Time) of order cancellation rejection by the EBS System. |
Order Status Request (35=H)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
37 | OrderID | N | 4.4 | Unique identifier of the order whose status is requested, assigned by EBS. |
11 | ClOrdID | Y | 4.4 | Client assigned unique identifier of the order whose status is being requested. |
790 | OrdStatusReqID | N | 4.4 | Used to uniquely identify the Order Status Request (per session). Echoed on the Execution Report if provided. |
1 | Account | N | 4.4 | Trader's floor code for the requested order. (submitted on NOS) |
55 | Symbol | Y | 4.4 | The currency pair for the requested order, in CCY1/CCY2 format, where CCY1 and CCY2 are the ISO codes of the base and local currencies. e.g. EUR/USD. |
167 | SecurityType | N | 5.0 | Valid Values: FXSPOT |
1300 | MarketSegmentID | N | 5.0 | EBS Market Segment of this order:Â D= Sweepable DF =Â Single Ticket |
63 | SettlType | N | 5.0* | Instrument tenor. Valid values are listed in the Tenor and Settlement Dates section. |
64 | SettlDate | N | 4.4 | Settlement date of the instrument. (value date). |
54 | Side | Y | 4.4 | Side of the order from the client perspective 1 = Client Buys 2 = Client Sells |
Cancel Request Order State Changes
The examples provide some of the critical fields in the request and response messages. The rows depicting the rejection of the request are italicized.
Zero Filled Order (No matches in flight)
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Execution | New | New | 10M | 0 | 10M | ||
3 | Cancel Request | 10M | ||||||
4 | Cancel Reject | New | If request is invalid | |||||
4 | Execution | Cancelled | Cancelled | 10M | 0 | 0 | Order has been cancelled |
Zero Filled Order (Matches in flight)
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Execution | New | New | 10M | 0 | 10M | ||
3 | Cancel Request | 10M | ||||||
4 | Cancel Reject | New | If request is invalid | |||||
4 | Execution | Pending Cancel | Pending Cancel | 10M | 0M | 10M | An order has been sent to an LP, so there is a match in flight. | |
5 | Execution | Canceled | Canceled | 10M | 0 | 0 | LP did not accept the order. |
Partially Filled Order (No matches in flight)
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Execution | New | New | 10M | 0 | 10 | ||
3 | Execution | Trade | Partially Filled | 10M | 2M | 8M | Execution for 2M | |
4 | Cancel Request | 10M | ||||||
5 | Cancel Reject | Partially Filled | If request is rejected | |||||
5 | Execution | Cancelled | Cancelled | 10M | 2M | 0 | 'Cancelled' order status is the final status |
Partially Filled Order (Matches in Flight)
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Execution | New | New | 10M | 0 | 10 | ||
3 | Execution | Trade | Partially Filled | 10M | 2M | 8M | Execution for 2M | |
4 | Cancel Request | 10M | ||||||
5 | Execution | Trade | Partially Filled | 10M | 5M | 5M | Execution for 3M. ER was sent to client prior to receipt of CancelRequest. | |
6 | Cancel Reject | Partially Filled | If request is rejected | |||||
6 | Execution | Pending Cancel | Pending Cancel | 10M | 5M | 5M | An order has been sent to an LP, so there is a match in flight. 'Pending cancel' order status takes precedence over 'partially filled' order status | |
7 | Execution | Canceled | Canceled | 10M | 5M | 0 | LP did not accept the order. |
Matches are in flight, resulting in a filled order
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Execution | New | New | 10M | 0 | 10M | ||
3 | Execution | Trade | Partially Filled | 10M | 2M | 8M | Execution for 2M | |
4 | Cancel Request | 10M | ||||||
5 | Cancel Reject | Partially Filled | If request is rejected | |||||
5 | Execution | Pending Cancel | Pending Cancel | 10M | 2M | 8M | 'Pending cancel' order status takes precedence over 'partially filled' order status | |
6 | Execution | Trade | Pending Cancel | 10M | 10M | 0 | Execution for 8M. Order was sent to LP prior to receipt of CancelRequest . | |
7 | Cancel Reject | Filled | Cancel request rejected – CxlRejectReason = 0 (too late to cancel) |
Order Not Yet Acknowledged
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | New Order | 10M | ||||||
2 | Cancel Request | 10M | Cancel before acknowledgment of order. | |||||
3 | Execution | New | New | 10M | 0 | 10M | ||
4 | Execution | Canceled | Canceled | 10M | 0 | 0 |
Unknown Order
Time | Message Received | Message Sent | ExecType (150) | OrdStatus (39) | OrderQty (38) | CumQty (14) | LeavesQty (151) | Comment |
---|---|---|---|---|---|---|---|---|
1 | Cancel Request | 10M | ||||||
2 | Cancel Reject | Rejected | Cancel request rejected with reject reason of "Unknown Order" and OrderID is "NONE" |
Business Level Reject (35=j)
The Business Reject message is a generic application level message which can be used by either side to reject a message for a business reason. It contains fields to indicate the FIX sequence number and ID of the invalid message.
If a message contains multiple business level errors which would cause rejection, only the first detected error will be indicated in the Reject message. To avoid rejection loops, errors in a Reject message should not themselves be rejected.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
45 | RefSeqNum | N | 4.4 | FIX sequence number of the rejected message. |
372 | RefMsgType | Y | 4.4 | Message type of the rejected message. |
379 | BusinessRejectRefID | N | 4.4 | The value of the business-level "ID" field on the message being referenced, e.g. ClOrdID, MDReqID |
380 | BusinessRejectReason | Y | 4.4 | Code to identify reason for the Business level Reject message. 1 = Unknown ID 2 = Unknown Security 5 = Conditionally required field is missing. |
58 | Text | N | 4.4 | Free-form text message to explain the reason for the rejection. |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.