Type Description
Pattern

Used to build on and provide some restrictions on what is allowed as valid values in fields that uses a base FIX data type and a pattern data type. The universe of allowable valid values for the field would then be the union of the base set of valid values and what is defined by the pattern data type. The pattern data type used by the field will retain its base FIX data type (e.g. String, int, char).

Tenor

Used to allow the expression of FX standard tenors in addition to the base valid enumerations defined for the field that uses this pattern data type. This pattern data type is defined as follows:

Dx = tenor expression for days, e.g. D5, where x is any integer > 0

Mx = tenor expression for months, e.g. M3, where x is any integer > 0

Wx = tenor expression for weeks, e.g. W13, where x is any integer > 0

Yx = tenor expression for years, e.g. Y1, where x is any integer > 0

Reserved100Plus

Values "100" and above are reserved for bilaterally agreed upon user defined enumerations.

Reserved1000Plus

Values "1000" and above are reserved for bilaterally agreed upon user defined enumerations.

Reserved4000Plus

Values "4000" and above are reserved for bilaterally agreed upon user defined enumerations.

String

Alphanumeric free format strings, can include any character or punctuation except the delimiter. All String fields are case sensitive (i.e. morstatt != Morstatt).

MultipleCharValue

String field containing one or more space delimited single character values (e.g. |18=2 A F|).

MultipleStringValue

String field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).

Country

String field representing a country using ISO 3166 Country code (2 character) values (see Appendix 6-B).

Currency

String field representing a currency type using ISO 4217 Currency code (3 character) values (see Appendix 6-A).

StrkCcy="USD"
Exchange

String field representing a market or exchange using ISO 10383 Market Identifier Code (MIC) values (see Appendix 6-C).

MonthYear

String field representing month of a year. An optional day of the month can be appended or an optional week code.

Valid formats:

  • YYYYMM
  • YYYYMMDD
  • YYYYMMWW

Valid values:

  • YYYY = 0000-9999, MM = 01-12, DD = 01-31, WW = w1, w2, w3, w4, w5
MonthYear="200303", MonthYear="20030320", MonthYear="200303w2"
UTCTimestamp

String field representing time/date combination represented in UTC (Universal Time Coordinated, also known as GMT) in either YYYYMMDD-HH:MM:SS (whole seconds) or YYYYMMDD-HH:MM:SS.sss (milliseconds) format, colons, dash, and period required.

Valid values:

  • YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second) (without milliseconds).
  • YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss = 000-999 (indicating milliseconds).

Leap Seconds: Note that UTC includes corrections for leap seconds, which are inserted to account for slowing of the rotation of the earth. Leap second insertion is declared by the International Earth Rotation Service (IERS) and has, since 1972, only occurred on the night of Dec. 31 or Jun 30. The IERS considers March 31 and September 30 as secondary dates for leap second insertion, but has never utilized these dates. During a leap second insertion, a UTCTimestamp field may read 19981231-23:59:59, 19981231-23:59:60, 19990101-00:00:00. (see https://maia.usno.navy.mil/information/what-is-a-leap-second)

TransactTime(60)="20011217-09:30:47.123" millisecond
TransactTime(60)="20011217-09:30:47.123456" microseconds
TransactTime(60)="20011217-09:30:47.123456789" nanoseconds
TransactTime(60)="20011217-09:30:47.123456789123" picoseconds
UTCTimeOnly

String field representing Time-only represented in UTC in either HH:MM:SS (whole seconds) or HH:MM:SS.sss (milliseconds) format, colons, and period required. This special-purpose field is paired with UTCDateOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.

Valid values:

  • HH = 00-23, MM = 00-60 (60 only if UTC leap second), SS = 00-59 (without milliseconds).
  • HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss = 000-999 (indicating milliseconds).
MDEntryTime(273)="13:20:00.123" milliseconds
MDEntryTime(273)="13:20:00.123456" microseconds
MDEntryTime(273)="13:20:00.123456789" nanoseconds
MDEntryTime(273)="13:20:00.123456789123" picoseconds
UTCDateOnly

String field representing Date represented in UTC in YYYYMMDD format. This special-purpose field is paired with UTCTimeOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.

Valid values:

  • YYYY = 0000-9999, MM = 01-12, DD = 01-31.
MDEntryDate="20030910"
LocalMktDate

String field represening a Date of Local Market (as oppose to UTC) in YYYYMMDD format. This is the "normal" date field used by the FIX Protocol.

Valid values:

  • YYYY = 0000-9999, MM = 01-12, DD = 01-31.
MaturityDate(541)="20150724"
TZTimeOnly

String field representing the time represented based on ISO 8601. This is the time with a UTC offset to allow identification of local time and timezone of that time.

Format is HH:MM[:SS][Z | [ + | - hh[:mm]]] where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.

"07:39Z" is 07:39 UTC
"02:39-05" is five hours behind UTC, thus Eastern Time
"15:39+08" is eight hours ahead of UTC, Hong Kong/Singapore time
"13:09+05:30" is 5.5 hours ahead of UTC, India time
TZTimestamp

String field representing a time/date combination representing local time with an offset to UTC to allow identification of local time and timezone offset of that time. The representation is based on ISO 8601.

Format is YYYYMMDD-HH:MM:SS[Z | [ + | - hh[:mm]]] where YYYY = 0000 to 9999, MM = 01-12, DD = 01-31 HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes

"20060901-07:39Z" is 07:39 UTC on 1st of September 2006
"20060901-02:39-05" is five hours behind UTC, thus Eastern Time on 1st of September 2006
"20060901-15:39+08" is eight hours ahead of UTC, Hong Kong/Singapore time on 1st of September 2006
"20060901-13:09+05:30" is 5.5 hours ahead of UTC, India time on 1st of September 2006
Using decimal seconds:
"20060901-13:09.123+05:30" milliseconds
"20060901-13:09.123456+05:30" microseconds
"20060901-13:09.123456789+05:30" nanoseconds
"20060901-13:09.123456789123+05:30" picoseconds
"20060901-13:09.123456789Z" nanoseconds UTC timezone
data

String field containing raw data with no format or content restrictions. Data fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH).

Caution: the value of one of these fields may contain the delimiter (SOH) character. Note that the value specified for this field should be followed by the delimiter (SOH) character as all fields are terminated with an " SOH ".

XMLData

Contains an XML document raw data with no format or content restrictions. XMLData fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH ).

Language

Identifier for a national language - uses ISO 639-1 standard

en (English), es (spanish), etc.
LocalMktTime

String field representing the time local to a particular market center. Used where offset to UTC varies throughout the year and the defining market center is identified in a corresponding field.

Format is HH:MM:SS where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds. In general only the hour token is non-zero.

07:00:00
XID

The purpose of the XID datatype is to define a unique identifier that is global to a FIX message. An identifier defined using this datatype uniquely identifies its containing element, whatever its type and name is. The constraint added by this datatype is that the values of all the fields that have an ID datatype in a FIX message must be unique.

XIDREF

The XIDREF datatype defines a reference to an identifier defined by the XID datatype.

char

Single character value, can include any alphanumeric character or punctuation except the delimiter. All char fields are case sensitive (i.e. m != M).

Boolean

char field containing one of two values:

  • Y = True/Yes
  • N = False/No
float

Sequence of digits with optional decimal point and sign character (ASCII characters -, 0 - 9 and . ); the absence of the decimal point within the string will be interpreted as the float representation of an integer value. All float fields must accommodate up to fifteen significant digits. The number of decimal places used should be a factor of business/market needs and mutual agreement between counterparties. Note that float values may contain leading zeros (e.g. 00023.23 = 23.23) and may contain or omit trailing zeros after the decimal point (e.g. 23.0 = 23.0000 = 23 = 23.). Note that fields which are derived from float may contain negative values unless explicitly specified otherwise.

Qty

float field capable of storing either a whole number (no decimal places) of "shares" (securities denominated in whole units) or a decimal value containing decimal places for non-share quantity asset classes (securities denominated in fractional units).

Price

float field representing a price. Note the number of decimal places may vary. For certain asset classes prices may be negative values. For example, prices for options strategies can be negative under certain market conditions. Refer to Volume 7: FIX Usage by Product for asset classes that support negative price values.

Strk="47.50"
PriceOffset

float field representing a price offset, which can be mathematically added to a "Price". Note the number of decimal places may vary and some fields such as LastForwardPoints <195> may be negative.

Amt

float field typically representing a Price times a Qty

Amt="6847.00"
Percentage

float field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary.

int

Sequence of digits without commas or decimals and optional sign character (ASCII characters - and 0 - 9). The sign character utilizes one byte (i.e. positive int is 99999 while negative int is -99999). Note that int values may contain leading zeros (e.g. 00023 = 23).

Length

int field representing the length in bytes. Value must be positive.

TagNum

int field representing a field's tag number when using FIX Tag=Value syntax. Value must be positive and may not contain leading zeros.

SeqNum

int field representing a message sequence number. Value must be positive.

NumInGroup

int field representing the number of entries in a repeating group. Value must be positive.

DayOfMonth

int field representing a day during a particular monthy (values 1 to 31).