Application Layer Messages
Execution Reports (35=8) and Order Cancel Reject (35=9)
For Execution Reports (i.e. when a NewOrderSingle is rejected), the reason code is provided in OrdRejReason (Tag 103). For Order Cancel Reject messages (i.e. when a cancel or cancel/replace is rejected), the reason code is provided in CxlRejReason (Tag 102). Note that the FIX protocol specifies different enumerations for OrdRejReason vs CxlRejReason. As such, the exact same error condition may produce a different error code in an execution report versus an order cancel reject message.| Description | Example Error String (Tag 58) | OrdRejReason (Tag 103) | CxlRejReason (Tag 102) |
|---|---|---|---|
| Notional lower than minimum | âLow total notional size limit is 1, given 0.944â | Exchange option (0) | Exchange option (2) |
| Notional larger than maximum | âHigh total notional size limit is 500000, given 500025â | Exchange option (0) | Exchange option (2) |
| Price lower than minimum | âLow price limit is 0.5, given 0.49â | Exchange option (0) | Exchange option (2) |
| Price higher than maximum | âHigh price limit is 1.5, given 1.51â | Exchange option (0) | Exchange option (2) |
| Quantity lower than minimum | âLow order size limit is 100, given 98â | Exchange option (0) | Exchange option (2) |
| Quantity higher than maximum | âHigh order size limit is 500, given 600â | Exchange option (0) | Exchange option (2) |
| Minimum trade quantity | âMinimum trade quantity is 100, given 99â | Exchange option (0) | Exchange option (2) |
| Insufficient buying power | â1000 USD available, requested 1000.098â | Exchange option (0) | Exchange option (2) |
| Self Match Prevention | âSelf Match Preventionâ | Exchange option (0) | Exchange option (2) |
| Participate Donât Initiate | âOrder may participate but not initiate in the marketâ | Exchange option (0) | Exchange option (2) |
| BEST_LIMIT Exec Instruction with no orders on same side | âNo liquidity to derive limit priceâ | Exchange option (0) | Exchange option (2) |
| IMMEDIATELY_EXECUTABLE_LIMIT Exec Instruction with no orders on opposite side | âNo liquidity to derive limit priceâ | Exchange option (0) | Exchange option (2) |
| Re-use of ClOrdID in Session | âClOrdID already in use by an open orderâ | Exchange option (0) | Exchange option (2) |
| Account Type Validation | âRequested Account Type (FLOOR_TRADER) does not match account configurationâ | Exchange option (0) | Exchange option (2) |
| Customer Order Capacity validation | âRequested Customer Order Capacity (PROPRIETARY_ACCOUNT) does not match user/account configurationâ | Exchange option (0) | Exchange option (2) |
| No Reference Price for Market to Limit Order | âfailed risk check: rpc error: code = FailedPrecondition desc = No last trade when open, trading reference price, settlement price, or previous close is available to evaluate reference priceâ | Exchange option (0) | n/a |
| No Qty Filled on CashOrderQty Order | âThere is no liquidity to immediately fill any portion of this CashOrderQty order, and the order cannot rest as a limit order because the order qty would be 0 at the current fallback priceâ | Exchange option (0) | n/a |
| Invalid Attributes | âOrder has attributes that cannot be placed in MATCH_AND_CLOSE_AUCTIONâ | Exchange closed (2) | Exchange option (2) |
| Invalid Attributes | âOrder has attributes that cannot be placed in PRE_OPENâ | Exchange closed (2) | Exchange option (2) |
| Market Closed | âBook is CLOSEDâ | Exchange closed (2) | Exchange option (2) |
| Market Suspended by Exchange | âBook is SUSPENDEDâ | Exchange closed (2) | Exchange option (2) |
| Market Halted by Exchange | âBook is HALTEDâ | Exchange closed (2) | Exchange option (2) |
| Attempt to Cancel/Replace a Filled Order | âUnknown orderâ | n/a | Unknown order (1) |
Market Data Request Reject (35=Y)
There are no cases where the FIX Market Data Gateway will send this message. Rejections on the FIX MD Gateway will be either 35=3 or 35=j messages.Session Layer Messages
New Message Reject (35=3)
A session level reject is sent when the FIX session cannot process an incoming message. RefSeqNum(45) will contain the MsgSeqNum(34) of the message that triggered the reject. SessionRejectReason(373) and Text(58) will contain an error code and description, respectively.| Error Code (Tag 373) | Example Error String (Tag 58) |
|---|---|
| 0 | âInvalid tag numberâ |
| 1 | âRequired tag missingâ |
| 1 | âAccount type must be providedâ |
| 1 | âCustomer order capacity must be providedâ |
| 2 | âTag not defined for this message typeâ |
| 4 | âTag specified without a valueâ |
| 5 | âValue is incorrect (out of range) for this tagâ |
| 6 | âIncorrect data format for valueâ |
| 7 | âDecryption problemâ |
| 8 | âSignature problemâ |
| 9 | âCompID problemâ |
| 10 | âSendingTime accuracy problemâ |
| 11 | âInvalid MsgTypeâ |
| 13 | âTag appears more than onceâ |
| 14 | âTag specified out of required orderâ |
| 15 | âRepeating group fields out of orderâ |
| 16 | âIncorrect NumInGroup count for repeating groupâ |
| 99 | âOtherâ |
Business Message Reject (35=j)
Below is a list of Business Message Reject (35=j) error strings produced by the EP3 FIX gateways.| Reason | Example Error String (Tag 58) | BusinessRejectReason (Tag 380) |
|---|---|---|
| Self-Match Override Prohibited | âSession-level self match prevention ID already providedâ | Other (0) |
| Rate Limits on Session | âMessage rate limit throttled for sessionâ | Other (0) |
| Unknown Account Type | âAccount type unknownâ | Other (0) |
| Unknown Customer Order Capacity | âCustomer order capacity unknownâ | Other (0) |
| Unsupported Commission Type | âUnsupported CommTypeâ | Other (0) |
| MD session not eligible to have commission spread overwritten | âCannot supply MDFeedType on this sessionâ | Other (0) |
| Unknown account property in MDFeedType | âUnknown MDFeedTypeâ | Other (0) |
| Unknown Firm | âLegal Entity Unavailable: %sâ | Unknown ID (1) |
| Unknown Security | âInstrument Unavailable: %sâ | Unknown security (2) |
| Non Tradable Instrument | âInstrument is not tradableâ | Unknown security (2) |
| Unsupported Message | âUnsupported Message Typeâ | Unsupported message type (3) |
| Quotes Disabled | âquotes are not availableâ | Application not available (4) |
| Cash Order Quantity Validation | âFor cash_order_qty order_type must be MARKET_TO_LIMITâ | Conditionally required field missing (5) |
| Conditionally Required Field Missing | âConditionally Required Field Missing (%d)â | Conditionally required field missing (5) |
| Unsupported Message Type for Session | âmessage is not supported for this session typeâ | Not authorized (6) |