====== 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]()*