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