Business Message Reject (MsgType = j, FIXML = BizMsgRej)

The Business Message Reject (j) message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject (3) message should be issued.

See the session-level Reject (3) message

It should *NOT* be used in the following situations:

Situation Appropriate Response
Session-level problem meeting the criteria of the session-level Reject (3) message Use the session-level Reject (3) message (MsgType=3)
In response to: Use the Quote Request Reject (AG) message
In response to: Use the Quote Status Report (AI) message
In response to: Use the Mass Quote Acknowledgement (b) message
In response to: Use the Market Data Request Reject (Y) message
In response to: Use the Security Definition (d) message
In response to: Use the Security Types (w) message
In response to: Use the Security List (y) message
In response to: Use the Derivative Security List (AA) message
In response to: Use the Security Status (f) message
In response to: Use the Trading Session Status (h) message
In response to Use the Execution Report (8) message
In response to: Use the Order Cancel Reject (9) message
In response to: Use the Don't Know Trade (DK) (Q) message
In response to: Use the Order Mass Cancel Report (r) message
In response to: Use the List Status (N) message
In response to: Use the Allocation Instruction Ack (P) message
In response to: Use the Allocation Report Ack (AT) message
In response to: Use the Confirmation Ack (AU) message
In response to: Use the Registration Instructions Response (p) message
In response to: Use the Trade Capture Report (AE) message
In response to: Use the Bid Response (l) message
In response to: Use the Confirmation (AK) message
In response to: Use the Settlement Instructions (T) message
In response to: Use the Position Maintenance Report (AM) message
In response to: Use the Request for Positions Ack (AO) message
In response to: Use the Collateral Assignment (AY) message
In response to: Use the Collateral Response (AZ) message
In response to: Use the Collateral Inquiry Ack (BG) message

Note the only exceptions to this rule is are:

  1. in the event a business message is received, fulfills session-level rules, however, the message cannot be communicated to the business-level processing system. In this situation a Business Message Reject (j) with BusinessRejectReason (380) = "Application not available at this time" can be issued if the the system is unable to send the specific "reject" message listed above due to this condition.
  2. in the event a valid business message is received, fulfills session-level rules, however, the message type is not supported by the receipient. In this situation a Business Message Reject (j) with BusinessRejectReason (380) = "Unsupported Message Type" can be issued if the system is unable to send the specific "reject" message listed above because the receiving system cannot generate the related "reject" message.
  3. In the event a business message is received, fulfills session-level rules, but lacks a field conditionally required by the FIX specification. In this situation a Business Message Reject (j) with BusinessRejectReason (380) = "Conditionally Required Field Missing" can be issued if the system is unable to send the specific "reject" message listed above. One example of this would be a stop order missing StopPx (99) . However, a Business Message Reject (j) message MUST NOT be used to enforce proprietary rules more restrictive than those explicit in the FIX specification, such as a broker requiring an order to contain an Account (1) , which the FIX specification considers an optional field.

Messages which can be referenced via the Business Message Reject (j) message are (the "ID" field BusinessRejectRefID (379) refers to noted in [ ]):

Scenarios for Business Message Reject:

BusinessRejectReason (380)
0 = Other
1 = Unkown ID
2 = Unknown Security
3 = Unsupported Message Type (receive a valid, but unsupported MsgType (35) )
4 = Application not available
5 = Conditionally Required Field Missing

Whenever possible, it is strongly recommended that the cause of the failure be described in the Text (58) field (e.g. "UNKNOWN SYMBOL: XYZ").

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = j
45 RefSeqNum @RefSeqNum N MsgSeqNum (34) of rejected message
372 RefMsgType @RefMsgTyp Y The MsgType (35) of the FIX message being referenced.
379 BusinessRejectRefID @BizRejRefID N The value of the business-level "ID" field on the message being referenced. Required unless the corresponding ID field (see list above) was not specified.
380 BusinessRejectReason @BizRejRsn Y Code to identify reason for a Business Message Reject (j) message.
58 Text @Txt N Where possible, message to explain reason for rejection
354 EncodedTextLen @EncTxtLen C Must be set if EncodedText (355) field is specified and must immediately precede it.
355 EncodedText @EncTxt C Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field.
<Standard Message Trailer> Y