RegistRejReasonCode (FIX tag 507)

intFIX 4.4FIX 5.0 SP2

RegistRejReasonCode (tag 507) is an int field defined in FIX 4.4 and FIX 5.0 SP2. It appears in 1 message type, always optionally. It is an enumerated field with 19 defined values.

At a glance

Tag
507
Name
RegistRejReasonCode
Datatype
int
Dialects
FIX 4.4 and FIX 5.0 SP2
Messages
1
Valid values
19

What the specification says

FIX 4.4

Reason(s) why Registration Instructions has been rejected. The reason may be further amplified in the RegistRejReasonCode field. Possible values of reason code include:

FIX 5.0 SP2

Reason(s) why Registration Instructions has been rejected.

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

A real message using tag 507

RegistrationInstructionsResponse · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength105
35MsgTypepRegistration Instructions Response
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
513RegistIDEXAMPLE
514RegistTransType0New
508RegistRefIDEXAMPLE
506RegistStatusAAccepted
507RegistRejReasonCode1Invalid/unacceptable Account Type
10CheckSum018
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 name
1Invalid/unacceptable Account TypeINVALID_UNACCEPTABLE_ACCOUNT_TYPE
2Invalid/unacceptable Tax Exempt TypeINVALID_UNACCEPTABLE_TAX_EXEMPT_TYPE
3Invalid/unacceptable Ownership TypeINVALID_UNACCEPTABLE_OWNERSHIP_TYPE
4Invalid/unacceptable No Reg DtlsINVALID_UNACCEPTABLE_NO_REG_DETLS / INVALID_UNACCEPTABLE_NO_REG_DETAILS
5Invalid/unacceptable Reg Seq NoINVALID_UNACCEPTABLE_REG_SEQ_NO
6Invalid/unacceptable Reg DtlsINVALID_UNACCEPTABLE_REG_DTLS / INVALID_UNACCEPTABLE_REG_DETAILS
7Invalid/unacceptable Mailing DtlsINVALID_UNACCEPTABLE_MAILING_DTLS / INVALID_UNACCEPTABLE_MAILING_DETAILS
8Invalid/unacceptable Mailing InstINVALID_UNACCEPTABLE_MAILING_INST / INVALID_UNACCEPTABLE_MAILING_INSTRUCTIONS
9Invalid/unacceptable Investor IDINVALID_UNACCEPTABLE_INVESTOR_ID
10Invalid/unacceptable Investor ID SourceINVALID_UNACCEPTABLE_INVESTOR_ID_SOURCE / INVALID_UNACEEPTABLE_INVESTOR_ID_SOURCE
11Invalid/unacceptable Date of BirthINVALID_UNACCEPTABLE_DATE_OF_BIRTH
12Invalid/unacceptable Investor Country Of ResidenceINVALID_UNACCEPTABLE_INVESTOR_COUNTRY_OF_RESIDENCE
13Invalid/unacceptable NoDistribInstnsINVALID_UNACCEPTABLE_NODISTRIBINSTNS / INVALID_UNACCEPTABLE_NO_DISTRIB_INSTNS
14Invalid/unacceptable Distrib PercentageINVALID_UNACCEPTABLE_DISTRIB_PERCENTAGE
15Invalid/unacceptable Distrib Payment MethodINVALID_UNACCEPTABLE_DISTRIB_PAYMENT_METHOD
16Invalid/unacceptable Cash Distrib Agent Acct NameINVALID_UNACCEPTABLE_CASH_DISTRIB_AGENT_ACCT_NAME
17Invalid/unacceptable Cash Distrib Agent CodeINVALID_UNACCEPTABLE_CASH_DISTRIB_AGENT_CODE
18Invalid/unacceptable Cash Distrib Agent Acct NumINVALID_UNACCEPTABLE_CASH_DISTRIB_AGENT_ACCT_NUM
99OtherOTHER

Where tag 507 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 5.0 SP2Where in the message
RegistrationInstructionsResponsepOptionalOptionaldirectly 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 507 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 registRejReasonCode = message.fields[507]?.raw;// e.g. "1" — Invalid/unacceptable Account Type// The dictionary also carries the labels:const label = fix.dictionary  .fieldByTag(507)  ?.enumValues?.find((e) => e.value === registRejReasonCode)  ?.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