EncodedUnderlyingIssuerLen (FIX tag 362)

LengthFIX 4.4FIX 4.2FIX 5.0 SP2

EncodedUnderlyingIssuerLen (tag 362) is a Length field defined in FIX 4.4, FIX 4.2 and FIX 5.0 SP2. It appears in 59 message types, always optionally.

At a glance

Tag
362
Name
EncodedUnderlyingIssuerLen
Datatype
Length (int)
Dialects
FIX 4.4, FIX 4.2 and FIX 5.0 SP2
Messages
59

What the specification says

FIX 4.4

Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer (363) field.

FIX 4.2

Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer field.

FIX 5.0 SP2

Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer (363) field.

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

A real message using tag 362

NewOrderSingle · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength153
35MsgTypeDOrder – Single
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
11ClOrdIDORD-10042
711NoUnderlyings2 entries2repeating group
311UnderlyingSymbolEXAMPLE
362EncodedUnderlyingIssuerLen7
311UnderlyingSymbolEXAMPLE
362EncodedUnderlyingIssuerLen7
54Side1Buy
60TransactTime20240101-12:00:00.000
40OrdType1Market
10CheckSum221
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 362 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.2FIX 5.0 SP2Where in the message
Advertisement7Conditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
AllocationInstructionJConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
AllocationInstructionAlertBM——Optionalinside UndInstrmtGrp › UnderlyingInstrument
AllocationReportASConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
AssignmentReportAWConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralAssignmentAYConditional—Optionalinside UndInstrmtCollGrp › UnderlyingInstrument
CollateralInquiryBBConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralInquiryAckBGConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralReportBAConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralRequestAXConditional—Optionalinside UndInstrmtCollGrp › UnderlyingInstrument
CollateralResponseAZConditional—Optionalinside UndInstrmtCollGrp › UnderlyingInstrument
ConfirmationAKConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
ContraryIntentionReportBO——Optionalinside UndInstrmtGrp › UnderlyingInstrument
CrossOrderCancelReplaceRequesttConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
CrossOrderCancelRequestuConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
DerivativeSecurityListAAConditional—Optionalinside the UnderlyingInstrument component
DerivativeSecurityListRequestzConditional—Optionalinside the UnderlyingInstrument component
DerivativeSecurityListUpdateReportBR——Optionalinside the UnderlyingInstrument component
DontKnowTradeQConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
EmailCConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
ExecutionAcknowledgementBN——Optionalinside UndInstrmtGrp › UnderlyingInstrument
ExecutionReport8Conditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
IOI6Conditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
ListStrikePricemConditional—Optionalinside UndInstrmtStrkPxGrp › UnderlyingInstrument
MarketDataIncrementalRefreshXConditional—Optionalinside MDIncGrp › UndInstrmtGrp › UnderlyingInstrument
MarketDataRequestVConditional—Optionalinside InstrmtMDReqGrp › UndInstrmtGrp › UnderlyingInstrument
MarketDataSnapshotFullRefreshWConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
MassQuoteiConditionalOptionalOptionalinside QuotSetGrp › UnderlyingInstrument
MassQuoteAcknowledgementbConditionalOptionalOptionalinside QuotSetAckGrp › UnderlyingInstrument
MultilegOrderCancelReplaceACConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderCrosssConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderListEConditional—Optionalinside ListOrdGrp › UndInstrmtGrp › UnderlyingInstrument
NewOrderMultilegABConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderSingleDConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
NewsBConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
OrderCancelReplaceRequestGConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
OrderCancelRequestFConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
OrderMassActionReportBZ——Optionalinside the UnderlyingInstrument component
OrderMassActionRequestCA——Optionalinside the UnderlyingInstrument component
OrderMassCancelReportrConditional—Optionalinside the UnderlyingInstrument component
OrderMassCancelRequestqConditional—Optionalinside the UnderlyingInstrument component
OrderMassStatusRequestAFConditional—Optionalinside the UnderlyingInstrument component
OrderStatusRequestHConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
PositionMaintenanceReportAMConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
PositionMaintenanceRequestALConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
PositionReportAPConditional—Optionalinside PosUndInstrmtGrp › UnderlyingInstrument
QuoteSConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteCancelZConditional—Optionalinside QuotCxlEntriesGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteRequestRConditional—Optionalinside QuotReqGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteRequestRejectAGConditional—Optionalinside QuotReqRjctGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteResponseAJConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteStatusReportAIConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteStatusRequestaConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
RFQRequestAHConditional—Optionalinside RFQReqGrp › UndInstrmtGrp › UnderlyingInstrument
RequestForPositionsANConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
RequestForPositionsAckAOConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityDefinitiondConditionalOptionalOptionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityDefinitionRequestcConditionalOptionalOptionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityDefinitionUpdateReportBP——Optionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityListyConditional—Optionalinside SecListGrp › UndInstrmtGrp › UnderlyingInstrument
SecurityListRequestxConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityListUpdateReportBK——Optionalinside SecLstUpdRelSymGrp › UndInstrmtGrp › UnderlyingInstrument
SecurityStatusfConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityStatusRequesteConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportAEConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportAckAR——Optionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportRequestADConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportRequestAckAQConditional—Optionalinside UndInstrmtGrp › UnderlyingInstrument

Wire format

A byte count for the length-prefixed field that follows it. Count bytes, not characters — a multi-byte UTF-8 value makes the two differ. @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 362 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 field = message.fields[362];field?.name;   // "EncodedUnderlyingIssuerLen"field?.raw;    // the verbatim wire stringfield?.value;  // coerced to a number

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