NoUnderlyingSecurityAltID (FIX tag 457)

NumInGroupFIX 4.4group counter

NoUnderlyingSecurityAltID (tag 457) is a NumInGroup field defined in FIX 4.4. It appears in 59 message types, always optionally. Its datatype is NumInGroup, which makes it a repeating-group counter: its value is the number of entries that follow, not a quantity in its own right.

At a glance

Tag
457
Name
NoUnderlyingSecurityAltID
Datatype
NumInGroup (int)
Dialects
FIX 4.4
Messages
59

What the specification says

Number of UnderlyingSecurityAltID (458) entries.

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

A real message using tag 457

NewOrderSingle · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength159
35MsgTypeDOrder – Single
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
11ClOrdIDORD-10042
711NoUnderlyings1 entry1repeating group
311UnderlyingSymbolEXAMPLE
457NoUnderlyingSecurityAltID2 entries2repeating group
458UnderlyingSecurityAltIDEXAMPLE
458UnderlyingSecurityAltIDEXAMPLE
54Side1Buy
60TransactTime20240101-12:00:00.000
40OrdType1Market
10CheckSum201
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.

Where tag 457 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.

MessageMsgTypeRequirednessWhere in the message
Advertisement7Optionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
AllocationInstructionJOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
AllocationReportASOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
AssignmentReportAWOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralAssignmentAYOptionalinside UndInstrmtCollGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralInquiryBBOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralInquiryAckBGOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralReportBAOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralRequestAXOptionalinside UndInstrmtCollGrp › UnderlyingInstrument › UndSecAltIDGrp
CollateralResponseAZOptionalinside UndInstrmtCollGrp › UnderlyingInstrument › UndSecAltIDGrp
ConfirmationAKOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CrossOrderCancelReplaceRequesttOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
CrossOrderCancelRequestuOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
DerivativeSecurityListAAOptionalinside UnderlyingInstrument › UndSecAltIDGrp
DerivativeSecurityListRequestzOptionalinside UnderlyingInstrument › UndSecAltIDGrp
DontKnowTradeQOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
EmailCOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
ExecutionReport8Optionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
IOI6Optionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
ListStrikePricemOptionalinside UndInstrmtStrkPxGrp › UnderlyingInstrument › UndSecAltIDGrp
MarketDataIncrementalRefreshXOptionalinside MDIncGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
MarketDataRequestVOptionalinside InstrmtMDReqGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
MarketDataSnapshotFullRefreshWOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
MassQuoteiOptionalinside QuotSetGrp › UnderlyingInstrument › UndSecAltIDGrp
MassQuoteAcknowledgementbOptionalinside QuotSetAckGrp › UnderlyingInstrument › UndSecAltIDGrp
MultilegOrderCancelReplaceACOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
NewOrderCrosssOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
NewOrderListEOptionalinside ListOrdGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
NewOrderMultilegABOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
NewOrderSingleDOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
NewsBOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
OrderCancelReplaceRequestGOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
OrderCancelRequestFOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
OrderMassCancelReportrOptionalinside UnderlyingInstrument › UndSecAltIDGrp
OrderMassCancelRequestqOptionalinside UnderlyingInstrument › UndSecAltIDGrp
OrderMassStatusRequestAFOptionalinside UnderlyingInstrument › UndSecAltIDGrp
OrderStatusRequestHOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
PositionMaintenanceReportAMOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
PositionMaintenanceRequestALOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
PositionReportAPOptionalinside PosUndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteSOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteCancelZOptionalinside QuotCxlEntriesGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteRequestROptionalinside QuotReqGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteRequestRejectAGOptionalinside QuotReqRjctGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteResponseAJOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteStatusReportAIOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
QuoteStatusRequestaOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
RFQRequestAHOptionalinside RFQReqGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
RequestForPositionsANOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
RequestForPositionsAckAOOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityDefinitiondOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityDefinitionRequestcOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityListyOptionalinside SecListGrp › UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityListRequestxOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityStatusfOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
SecurityStatusRequesteOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
TradeCaptureReportAEOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
TradeCaptureReportRequestADOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp
TradeCaptureReportRequestAckAQOptionalinside UndInstrmtGrp › UnderlyingInstrument › UndSecAltIDGrp

Wire format

The number of entries in the repeating group that follows. The next field on the wire is the group's delimiter tag. @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 457 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);// NoUnderlyingSecurityAltID is a group counter, so the entries live on message.groups —// NOT on message.fields. message.fields[457] is undefined.const entries = message.groups[457] ?? [];for (const entry of entries) {  // entry.fields is keyed by tag; entry.groups holds nested groups}

Other NumInGroup 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