Reject
Message Rejection
FIX Session rule violations are manifested through the Reject message. The receipt of a Reject message signals a serious violation of FIX Session rules. Appropriate action must immediately be taken by the receiver of a Reject message.
A rejected message may be retransmitted by the sending application if a correction is appropriate.
The T4 FIX API can detect an extensive set of FIX session violations and will issue a Reject message. Even after a corrected retransmission, the T4 FIX API may choose to terminate the FIX Session depending on the severity.
Where possible, the T4 FIX API will provide:
- a Reject Reason (Tag 373)
- a Reference Message Type (Tag 372)
- a Reference Sequence Number (Tag 45)
When a FIX session termination is imminent due to a session rejection, the T4 FIX API may also issue a Logout message with additional details.
FIX Session rejects can be generated for many reasons, such as:
- Empty tags
- Tags out of sequence
- Incorrect data types
Common Rejection Reasons (Tag 373)
- 0 = Invalid tag number
- 1 = Required tag missing
- 2 = Tag not defined for this message type
- 3 = Undefined Tag
- 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
- 12 = XML Validation error
- 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
- 17 = Non “data” value includes field delimiter (SOH character)
- 18 = Invalid Trader or No Trader specified
When the FIX Session is terminated due to a reject, the T4 FIX API will expect a restart with:
- A new FIX Session
- Sequence numbers reset to 1
Message Dictionary
Tag | Field Name | Req'd | Comments |
---|---|---|---|
- | Standard Header | Y | MsgType = 3 |
45 | RefSeqNum | Y | MsgSeqNum of rejected message |
371 | RefTagID | N | Tag number of the FIX field being referenced |
372 | RefMsgType | N | MsgType of the FIX message being referenced |
373 | SessionRejectReason | N | Code to identify reason for session-level Reject message |
58 | Text | N | Optional message to explain reason for rejection |
- | Standard Trailer | Y |
Sample Messages
Reject message generated by the receipt of an old Cancel Request message
34=12|49=T4Example|50=TraderName|52=20120828-20:20:14.417|56=T4|57=G|369=11|1=123456|11=11FE|37=533408825203|41=11AN|48=CME_20121200_6EZ2|54=2|55=6E|60=20120828-20:20:14.376|107=Euro FX Dec12|167=FUT|
[FIXCANCEL]
- [MsgSeqNum] 34 = 12
- [SenderCompID] 49 = T4Example
- [SenderSubID] 50 = TraderName
- [SendingTime] 52 = 20120828-20:20:14.417
- [TargetCompID] 56 = T4
- [TargetSubID] 57 = G
- [LastMsgSeqNumProcessed] 369 = 11
- [Account] 1 = 123456
- [ClOrdID] 11 = 11FE
- [OrderID] 37 = 533408825203
- [OrigClOrdID] 41 = 11AN
- [SecurityID] 48 = CME_20121200_6EZ2
- [Side] 54 = 2 (SELL)
- [Symbol] 55 = 6E
- [SecurityExchange] 207 = CME_Fo
- [TransactTime] 60 = 20120828-19:20:14.376
- [SecurityDesc] 107 = Euro FX Dec12
- [SecurityType] 167 = FUT (FUTURE)
Reject Message for SendingTime Accuracy Problem
34=12|49=T4|56=T4Example|50=T4FIX|52=20120905-21:07:45.472|45=12|372=F|373=10|58=Sending Time Accuracy problem|
[REJECT]
- [MsgSeqNum] 34 = 12
- [SenderCompID] 49 = T4
- [TargetCompID] 56 = T4Example
- [SenderSubID] 50 = T4FIX
- **[Se]()*