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