EncodedUnderlyingIssuer (FIX tag 363)

dataFIX 4.4FIX 4.2FIX 5.0 SP2

EncodedUnderlyingIssuer (tag 363) is a data field defined in FIX 4.4, FIX 4.2 and FIX 5.0 SP2. It appears in 59 message types, always optionally. It is length-prefixed — tag 362 carries the byte count, so the value may contain the SOH separator without breaking the message.

At a glance

Tag
363
Name
EncodedUnderlyingIssuer
Datatype
data
Dialects
FIX 4.4, FIX 4.2 and FIX 5.0 SP2
Messages
59
Length field
tag 362

What the specification says

FIX 4.4

Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field.

FIX 4.2

Encoded (non-ASCII characters) representation of the UnderlyingIssuer field in the encoded format specified via the MessageEncoding field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field.

FIX 5.0 SP2

Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field.

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

A real message using tag 363

NewOrderSingle · FIX 4.4
TagFieldWire valueMeaning
8BeginStringFIX.4.4
9BodyLength177
35MsgTypeDOrder – Single
49SenderCompIDBOARTEAM
56TargetCompIDCOUNTERPARTY
34MsgSeqNum2
52SendingTime20240101-12:00:00.000
11ClOrdIDORD-10042
711NoUnderlyings2 entries2repeating group
311UnderlyingSymbolEXAMPLE
362EncodedUnderlyingIssuerLen7
363EncodedUnderlyingIssuerEXAMPLE
311UnderlyingSymbolEXAMPLE
362EncodedUnderlyingIssuerLen7
363EncodedUnderlyingIssuerEXAMPLE
54Side1Buy
60TransactTime20240101-12:00:00.000
40OrdType1Market
10CheckSum175
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 363 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

Raw bytes, length-prefixed by a partner field. The value may legally contain the SOH separator, which is why the length matters. @boarteam/fix reads the partner length field first and takes exactly that many bytes, so an embedded separator does not truncate the value.

Read tag 363 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);​// Length-prefixed: tag 362 carries the byte count, so the// value may contain the SOH separator without breaking the message.const length = message.fields[362]?.value;const encodedUnderlyingIssuer = message.fields[363]?.raw;

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