Description

The Business Message Reject 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 (35=3) message should be issued.

The only exception to this rule is when a transport other than the FIX session protocol is being used (transport independence). An appropriate reject message of the given session protocol or the Business Message Reject message should be used instead.

See the session-level Reject (35=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 (35=3) message

Use the session-level Reject (35=3) message (MsgType <35>=3)

In response to: Use the QuoteRequestReject <AG> message
In response to: Use the QuoteStatusReport <AI> message
In response to: Use the MassQuoteAck <b> message
In response to: Use the MarketDataRequestReject <Y> message
In response to: Use the SecurityDefinition <d> message
In response to: Use the SecurityTypes <w> message
In response to: Use the SecurityList <y> message
In response to: Use the DerivativeSecurityList <AA> message
In response to: Use the SecurityStatus <f> message
In response to: Use the TradingSessionStatus <h> message
In response to:

Use the ExecutionReport (35=8) message

In response to: Use the OrderCancelReject (35=9) message
In response to:
  • ExecutionReport (35=8)
Use the DontKnowTrade <Q> (DK) message
In response to: Use the OrderMassCancelReport <r> message
In response to: Use the ListStatus <N> message
In response to: Use the AllocationInstructionAck <P> message
In response to: Use the AllocationReportAck <AT> message
In response to: Use the ConfirmationAck <AU> message
In response to: Use the RegistrationInstructionsResponse <p> message
In response to: Use the TradeCaptureReport <AE> message
In response to: Use the BidResponse <l> message
In response to: Use the Confirmation <AK> message
In response to: Use the SettlementInstructions <T> message
In response to: Use the PositionMaintenanceReport <AM> message
In response to: Use the RequestForPositionsAck <AO> message
In response to: Use the CollateralAssignment <AY> message
In response to: Use the CollateralResponse <AZ> message
In response to: Use the CollateralInquiryAck <BG> message

Note the only exceptions to this rule 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 BusinessMessageReject <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 recipient. In this situation a BusinessMessageReject <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 BusinessMessageReject <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. However, a Business Message Reject 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, which the FIX specification considers an optional field.

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

Scenarios for BusinessMessageReject <j>:

BusinessRejectReason <380>:

  • 0 = Other
  • 1 = Unknown 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").

Structure

Tag Field Name Req'd Comments
Component Block - <StandardHeader> Y MsgType <35> = j (lowercase)
45 RefSeqNum N MsgSeqNum of rejected message
372 RefMsgType Y The MsgType of the FIX message being referenced.
1130 RefApplVerID N Recommended when rejecting an application message that does not explicitly provide ApplVerID <1128> on the message being rejected. In this case the value from the DefaultApplVerID <1137> or the default value specified in the NoMsgTypes repeating group on the logon message should be provided.
1406 RefApplExtID N Recommended when rejecting an application message that does not explicitly provide ApplExtID <1156> on the rejected message. In this case the value from the DefaultApplExtID <1407> or the default value specified in the NoMsgTypes repeating group on the logon message should be provided.
1131 RefCstmApplVerID N Recommended when rejecting an application message that does not explicitly provide CstmApplVerID <1129> on the message being rejected. In this case the value from the DefaultCstmApplVerID <1408> or the default value specified in the NoMsgTypes repeating group on the logon message should be provided.
379 BusinessRejectRefID 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 Y Code to identify reason for a Business Message Reject message.
58 Text N Where possible, message to explain reason for rejection
354 EncodedTextLen N Must be set if EncodedText field is specified and must immediately precede it.
355 EncodedText N Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.
Component Block - <StandardTrailer> Y

Related Messages