SessionRejectReason (FIX tag 373)

intFIX 4.4FIX 4.2

SessionRejectReason (tag 373) is an int field defined in FIX 4.4 and FIX 4.2. It appears in 1 message type, always optionally. It is an enumerated field with 19 defined values.

At a glance

Tag
373
Name
SessionRejectReason
Datatype
int
Dialects
FIX 4.4 and FIX 4.2
Messages
1
Valid values
19

What the specification says

FIX 4.4

Code to identify reason for a session-level Reject message

FIX 4.2

Code to identify reason for a session-level Reject message.

Descriptions are quoted from the FIX Orchestra sources under the Apache 2.0 licence.

A real message using tag 373

Reject · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength74
35MsgType3Reject
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
45RefSeqNum1
373SessionRejectReason0Invalid tag number
10CheckSum150
Edit and decode it yourself

Shown with | separators for readability. On the wire FIX uses SOH (0x01), an invisible control byte — and because BodyLength and CheckSum are computed over the actual bytes, the two forms have different checksums. Both are valid and both decode here.

Open in the full decoder →

Generated from the FIX 4.4 dictionary and verified at build time: it parses and validates with no issues. Open the decoder to try your own message.

Valid values

A value outside this list is not a parse error — the message still decodes — but validate() reports it as validate/value-not-in-enum.

ValueMeaningSymbolic nameDialects
0Invalid tag numberINVALID_TAG_NUMBER / InvalidTagNumberFIX 4.4, FIX 4.2
1Required tag missingREQUIRED_TAG_MISSING / RequiredTagMissingFIX 4.4, FIX 4.2
2Tag not defined for this message typeTAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE / TagNotDefinedForThisMessageTypeFIX 4.4, FIX 4.2
3Undefined TagUNDEFINED_TAG / UndefinedTagFIX 4.4, FIX 4.2
4Tag specified without a valueTAG_SPECIFIED_WITHOUT_A_VALUE / TagSpecifiedWithoutAValueFIX 4.4, FIX 4.2
5Value is incorrect (out of range) for this tagVALUE_IS_INCORRECT / ValueIsIncorrectFIX 4.4, FIX 4.2
6Incorrect data format for valueINCORRECT_DATA_FORMAT_FOR_VALUE / IncorrectDataFormatForValueFIX 4.4, FIX 4.2
7Decryption problemDECRYPTION_PROBLEM / DecryptionProblemFIX 4.4, FIX 4.2
8Signature problemSIGNATURE_PROBLEM / SignatureProblemFIX 4.4, FIX 4.2
9CompID problemCOMPID_PROBLEM / CompIDProblemFIX 4.4, FIX 4.2
10SendingTime accuracy problemSENDINGTIME_ACCURACY_PROBLEM / SendingTimeAccuracyProblemFIX 4.4, FIX 4.2
11Invalid MsgTypeINVALID_MSGTYPE / InvalidMsgTypeFIX 4.4, FIX 4.2
12XML Validation errorXML_VALIDATION_ERRORFIX 4.4
13Tag appears more than onceTAG_APPEARS_MORE_THAN_ONCEFIX 4.4
14Tag specified out of required orderTAG_SPECIFIED_OUT_OF_REQUIRED_ORDERFIX 4.4
15Repeating group fields out of orderREPEATING_GROUP_FIELDS_OUT_OF_ORDERFIX 4.4
16Incorrect NumInGroup count for repeating groupINCORRECT_NUMINGROUP_COUNT_FOR_REPEATING_GROUPFIX 4.4
17Non "data" value includes field delimiter (SOH character)NON_DATA_VALUE_INCLUDES_FIELD_DELIMITERFIX 4.4
99OtherOTHERFIX 4.4

Where tag 373 appears

Requiredness is a property of the message, not of the field: the same tag can be optional in one message and conditionally required in another.

MessageMsgTypeFIX 4.4FIX 4.2Where in the message
Reject3OptionalOptionaldirectly on the message body

Wire format

A whole number, optionally signed. Leading zeros are legal on the wire and are preserved in the raw value. @boarteam/fix parses the value as a number and reports parse/invalid-int when it does not lex as one; the raw string is kept either way.

Read tag 373 in TypeScript

decode.tsts
import { createFixEngine } from "@boarteam/fix";import { dictionary } from "@boarteam/fix-dict-fix44";const fix = createFixEngine(dictionary);const { message, issues } = fix.parse(raw);const sessionRejectReason = message.fields[373]?.raw;// e.g. "0" — Invalid tag number// The dictionary also carries the labels:const label = fix.dictionary  .fieldByTag(373)  ?.enumValues?.find((e) => e.value === sessionRejectReason)  ?.description;

Other int fields

Decode this in your own code

The same engine that produced the decoded example above is an Apache-2.0 npm package with zero runtime dependencies. It runs in Node and in the browser, and parse() returns problems as data instead of throwing.

npm i @boarteam/fix @boarteam/fix-dict-fix44