EncodedUnderlyingIssuer (FIX tag 363)

dataFIX 4.4FIX 4.2

EncodedUnderlyingIssuer (tag 363) is a data field defined in FIX 4.4 and FIX 4.2. 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 and FIX 4.2
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.

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.2Where in the message
Advertisement7Conditionalinside UndInstrmtGrp › UnderlyingInstrument
AllocationInstructionJConditionalinside UndInstrmtGrp › UnderlyingInstrument
AllocationReportASConditionalinside UndInstrmtGrp › UnderlyingInstrument
AssignmentReportAWConditionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralAssignmentAYConditionalinside UndInstrmtCollGrp › UnderlyingInstrument
CollateralInquiryBBConditionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralInquiryAckBGConditionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralReportBAConditionalinside UndInstrmtGrp › UnderlyingInstrument
CollateralRequestAXConditionalinside UndInstrmtCollGrp › UnderlyingInstrument
CollateralResponseAZConditionalinside UndInstrmtCollGrp › UnderlyingInstrument
ConfirmationAKConditionalinside UndInstrmtGrp › UnderlyingInstrument
CrossOrderCancelReplaceRequesttConditionalinside UndInstrmtGrp › UnderlyingInstrument
CrossOrderCancelRequestuConditionalinside UndInstrmtGrp › UnderlyingInstrument
DerivativeSecurityListAAConditionalinside the UnderlyingInstrument component
DerivativeSecurityListRequestzConditionalinside the UnderlyingInstrument component
DontKnowTradeQConditionalinside UndInstrmtGrp › UnderlyingInstrument
EmailCConditionalinside UndInstrmtGrp › UnderlyingInstrument
ExecutionReport8Conditionalinside UndInstrmtGrp › UnderlyingInstrument
IOI6Conditionalinside UndInstrmtGrp › UnderlyingInstrument
ListStrikePricemConditionalinside UndInstrmtStrkPxGrp › UnderlyingInstrument
MarketDataIncrementalRefreshXConditionalinside MDIncGrp › UndInstrmtGrp › UnderlyingInstrument
MarketDataRequestVConditionalinside InstrmtMDReqGrp › UndInstrmtGrp › UnderlyingInstrument
MarketDataSnapshotFullRefreshWConditionalinside UndInstrmtGrp › UnderlyingInstrument
MassQuoteiConditionalOptionalinside QuotSetGrp › UnderlyingInstrument
MassQuoteAcknowledgementbConditionalOptionalinside QuotSetAckGrp › UnderlyingInstrument
MultilegOrderCancelReplaceACConditionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderCrosssConditionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderListEConditionalinside ListOrdGrp › UndInstrmtGrp › UnderlyingInstrument
NewOrderMultilegABConditionalinside UndInstrmtGrp › UnderlyingInstrument
NewOrderSingleDConditionalinside UndInstrmtGrp › UnderlyingInstrument
NewsBConditionalinside UndInstrmtGrp › UnderlyingInstrument
OrderCancelReplaceRequestGConditionalinside UndInstrmtGrp › UnderlyingInstrument
OrderCancelRequestFConditionalinside UndInstrmtGrp › UnderlyingInstrument
OrderMassCancelReportrConditionalinside the UnderlyingInstrument component
OrderMassCancelRequestqConditionalinside the UnderlyingInstrument component
OrderMassStatusRequestAFConditionalinside the UnderlyingInstrument component
OrderStatusRequestHConditionalinside UndInstrmtGrp › UnderlyingInstrument
PositionMaintenanceReportAMConditionalinside UndInstrmtGrp › UnderlyingInstrument
PositionMaintenanceRequestALConditionalinside UndInstrmtGrp › UnderlyingInstrument
PositionReportAPConditionalinside PosUndInstrmtGrp › UnderlyingInstrument
QuoteSConditionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteCancelZConditionalinside QuotCxlEntriesGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteRequestRConditionalinside QuotReqGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteRequestRejectAGConditionalinside QuotReqRjctGrp › UndInstrmtGrp › UnderlyingInstrument
QuoteResponseAJConditionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteStatusReportAIConditionalinside UndInstrmtGrp › UnderlyingInstrument
QuoteStatusRequestaConditionalinside UndInstrmtGrp › UnderlyingInstrument
RFQRequestAHConditionalinside RFQReqGrp › UndInstrmtGrp › UnderlyingInstrument
RequestForPositionsANConditionalinside UndInstrmtGrp › UnderlyingInstrument
RequestForPositionsAckAOConditionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityDefinitiondConditionalOptionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityDefinitionRequestcConditionalOptionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityListyConditionalinside SecListGrp › UndInstrmtGrp › UnderlyingInstrument
SecurityListRequestxConditionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityStatusfConditionalinside UndInstrmtGrp › UnderlyingInstrument
SecurityStatusRequesteConditionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportAEConditionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportRequestADConditionalinside UndInstrmtGrp › UnderlyingInstrument
TradeCaptureReportRequestAckAQConditionalinside 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