FIX 4.4 vs FIX 5.0 SP2: What Changed
FIX 5.0 SP2 keeps every FIX 4.4 message and field in the standard dictionaries and adds a great deal: new messages for market structure, risk limits, entitlements and post-trade, and thousands of fields, mostly for derivatives and fixed income. The biggest change for an existing order flow is the session layer, which moves to FIXT.1.1.
- Message types
- 93 to 164
- Messages added
- 71
- Fields
- 912 to 6,028
- Fields added / removed
- 5,116 / 0
BeginString: FIX.4.4 and FIXT.1.1. Counts come from the standard data dictionaries; FIX 5.0 counts include the FIXT 1.1 session messages and fields.
Migrating from FIX 4.4 to FIX 5.0 SP2
- BeginString (8) becomes FIXT.1.1. The Logon must carry DefaultApplVerID (1137) (9 for FIX 5.0 SP2), and a message can state another version with ApplVerID (1128). Engines need a transport dictionary and an application dictionary.
- Nothing is removed from the standard dictionaries between FIX 4.4 and 5.0 SP2, so most FIX 4.4 order flows map across field for field.
- Some required fields become optional: OrigClOrdID (41) on Order Cancel Request and Cancel/Replace (the order can be named by OrderID (37)), and AvgPx (6) on Execution Report.
- New enum values include ExecType (150) J to N, TimeInForce (59) codes 8 to C, OrdType (40) Q, R and S, many risk and price-band codes in OrdRejReason (103), SessionRejectReason 373=18 and throttle codes 8 to 10 in BusinessRejectReason (380).
- The FIX 5.0 SP2 dictionary lists OrdStatus 5 (Replaced) and OrdType 5, A and B again. Unless the counterparty asks otherwise, keep reporting replaces as in FIX 4.4: 150=5 with the current OrdStatus.
- Two names change: HaltReasonChar (327) becomes HaltReasonInt, and MassQuoteAcknowledgement (35=b) becomes MassQuoteAck.
Value changes in key fields
Enumerated values added or removed between the two versions.
MsgType (35)
Added in FIX 5.0 SP2: BO Contrary Intention Report; BP Security Definition Update Report; BK Security List Update Report; BL Adjusted Position Report; BM Allocation Instruction Alert; BN Execution Ack; BJ Trading Session List; BI Trading Session List Request; BQ Settlement Obligation Report; BR Derivative Security List Update Report; BS Trading Session List Update Report; BT Market Definition Request; BU Market Definition; BV Market Definition Update Report; BW Application Message Request; BX Application Message Request Ack; BY Application Message Report; BZ Order Mass Action Report; CA Order Mass Action Request; CB User Notification; CC Stream Assignment Request; CD Stream Assignment Report; CE Stream Assignment Report ACK; CF Party Details List Request; CG Party Details List Report; CH Margin Requirement Inquiry; CI Margin Requirement Inquiry Ack; CJ Margin Requirement Report; CK Party Details List Update Report; CL Party Risk Limits Request; CM Party Risk Limits Report; CN Security Mass Status Request; CO Security Mass Status; CQ Account Summary Report; CR Party Risk Limits Update Report; CS Party Risk Limits Definition Request; CT Party Risk Limits Definition Request Ack; CU Party Entitlements Request; CV Party Entitlements Report; CW Quote Ack; CX Party Details Definition Request; CY Party Details Definition Request Ack; CZ Party Entitlements Update Report; DA Party Entitlements Definition Request; DB Party Entitlements Definition Request Ack; DC Trade Match Report; DD Trade Match Report Ack; DE Party Risk Limits Report Ack; DF Party Risk Limit Check Request; DG Party Risk Limit Check Request Ack; DH Party Action Request; DI Party Action Report; DJ Mass Order; DK Mass Order Ack; DL Position Transfer Instruction; DM Position Transfer Instruction Ack; DN Position Transfer Report; DO Market Data Statistics Request; DP Market Data Statistics Report; DQ Collateral Report Ack; DR Market Data Report; DS Cross Request; DT Cross Request Ack; DU Allocation Instruction Alert Request; DV Allocation Instruction Alert Request Ack; DW Trade Aggregation Request; DX Trade Aggregation Report; EA Pay Management Report; EB Pay Management Report Ack; DY Pay Management Request; DZ Pay Management Request Ack
OrdStatus (39)
Added in FIX 5.0 SP2: 5 Replaced
OrdType (40)
Added in FIX 5.0 SP2: 5 Market on close; A On close; B Limit on close; C Forex market; F Forex limit; H Forex previously quoted; Q Counter order selection; R Stop on bid or offer; S Stop limit on bid or offer
TimeInForce (59)
Added in FIX 5.0 SP2: 8 Good through crossing; 9 At crossing; A Good for time; B Good for auction; C Good for month
ExecType (150)
Added in FIX 5.0 SP2: J Trade in a clearing hold; K Trade has been released to clearing; L Triggered or activated by system; M Locked; N Released
SessionRejectReason (373)
Added in FIX 5.0 SP2: 18 Invalid or unsupported application version
OrdRejReason (103)
Added in FIX 5.0 SP2: 12 Surveillance option; 16 Price exceeds current price band; 18 Invalid price increment; 19 Reference price not available; 20 Notional value exceeds threshold; 21 Algorithm risk threshold breached; 22 Short sell not permitted; 23 Short sell security pre borrow restriction; 24 Short sell account pre borrow restriction; 25 Insufficient credit limit; 26 Exceeded clip size limit; 27 Exceeded max notional order amt; 28 Exceeded DV01 PV01 limit; 29 Exceeded CS01 limit
CxlRejReason (102)
Added in FIX 5.0 SP2: 7 Price exceeds current price; 8 Price exceeds current price band; 18 Invalid price increment
BusinessRejectReason (380)
Added in FIX 5.0 SP2: 8 Throttle limit exceeded; 9 Throttle limit exceeded session disconnected; 10 Throttled messages rejected on request; 18 Invalid price increment
Messages added in FIX 5.0 SP2 (71)
- Trading Session List Request 35=BI
- Trading Session List 35=BJ
- Security List Update Report 35=BK
- Adjusted Position Report 35=BL
- Allocation Instruction Alert 35=BM
- Execution Ack 35=BN
- Contrary Intention Report 35=BO
- Security Definition Update Report 35=BP
- Settlement Obligation Report 35=BQ
- Derivative Security List Update Report 35=BR
- Trading Session List Update Report 35=BS
- Market Definition Request 35=BT
- Market Definition 35=BU
- Market Definition Update Report 35=BV
- Application Message Request 35=BW
- Application Message Request Ack 35=BX
- Application Message Report 35=BY
- Order Mass Action Report 35=BZ
- Order Mass Action Request 35=CA
- User Notification 35=CB
- Stream Assignment Request 35=CC
- Stream Assignment Report 35=CD
- Stream Assignment Report ACK 35=CE
- Party Details List Request 35=CF
- Party Details List Report 35=CG
- Margin Requirement Inquiry 35=CH
- Margin Requirement Inquiry Ack 35=CI
- Margin Requirement Report 35=CJ
- Party Details List Update Report 35=CK
- Party Risk Limits Request 35=CL
- Party Risk Limits Report 35=CM
- Security Mass Status Request 35=CN
- Security Mass Status 35=CO
- Account Summary Report 35=CQ
- Party Risk Limits Update Report 35=CR
- Party Risk Limits Definition Request 35=CS
- Party Risk Limits Definition Request Ack 35=CT
- Party Entitlements Request 35=CU
- Party Entitlements Report 35=CV
- Quote Ack 35=CW
- Party Details Definition Request 35=CX
- Party Details Definition Request Ack 35=CY
- Party Entitlements Update Report 35=CZ
- Party Entitlements Definition Request 35=DA
- Party Entitlements Definition Request Ack 35=DB
- Trade Match Report 35=DC
- Trade Match Report Ack 35=DD
- Party Risk Limits Report Ack 35=DE
- Party Risk Limit Check Request 35=DF
- Party Risk Limit Check Request Ack 35=DG
- Party Action Request 35=DH
- Party Action Report 35=DI
- Mass Order 35=DJ
- Mass Order Ack 35=DK
- Position Transfer Instruction 35=DL
- Position Transfer Instruction Ack 35=DM
- Position Transfer Report 35=DN
- Market Data Statistics Request 35=DO
- Market Data Statistics Report 35=DP
- Collateral Report Ack 35=DQ
- Market Data Report 35=DR
- Cross Request 35=DS
- Cross Request Ack 35=DT
- Allocation Instruction Alert Request 35=DU
- Allocation Instruction Alert Request Ack 35=DV
- Trade Aggregation Request 35=DW
- Trade Aggregation Report 35=DX
- Pay Management Request 35=DY
- Pay Management Request Ack 35=DZ
- Pay Management Report 35=EA
- Pay Management Report Ack 35=EB
Messages renamed
- 35=b: MassQuoteAcknowledgement becomes MassQuoteAck
Field changes in the core order messages
6 messages most sessions carry, compared field by field.
New Order Single 35=D
2,628 fields added, counting fields inside components and repeating groups.
Order Cancel/Replace Request 35=G
2,621 fields added, counting fields inside components and repeating groups.
Required in FIX 4.4, optional in FIX 5.0 SP2: OrigClOrdID (41)
Order Cancel Request 35=F
2,474 fields added, counting fields inside components and repeating groups.
Required in FIX 4.4, optional in FIX 5.0 SP2: OrigClOrdID (41)
Execution Report 35=8
4,061 fields added, counting fields inside components and repeating groups.
Required in FIX 4.4, optional in FIX 5.0 SP2: AvgPx (6)
Order Cancel Reject 35=9
14 fields added, counting fields inside components and repeating groups.
Required in FIX 4.4, optional in FIX 5.0 SP2: OrigClOrdID (41)
Added: ExDestination (100), PartyIDSource (447), PartyID (448), PartyRole (452), NoPartyIDs (453), PartySubID (523), NoPartySubIDs (802), PartySubIDType (803), ExDestinationIDSource (1133), RejectText (1328), EncodedRejectTextLen (1664), EncodedRejectText (1665), PartyRoleQualifier (2376), OrderRequestID (2422)
Logon 35=A
17 fields added, counting fields inside components and repeating groups.
Added: Text (58), EncodedTextLen (354), EncodedText (355), NewPassword (925), RefApplVerID (1130), RefCstmApplVerID (1131), DefaultApplVerID (1137), EncryptedPasswordMethod (1400), EncryptedPasswordLen (1401), EncryptedPassword (1402), EncryptedNewPasswordLen (1403), EncryptedNewPassword (1404), RefApplExtID (1406), DefaultApplExtID (1407), DefaultCstmApplVerID (1408), SessionStatus (1409), DefaultVerIndicator (1410)
Fields renamed (1)
Same tag number and wire format, new name. Code generated from a dictionary changes.
| Tag | FIX 4.4 name | FIX 5.0 SP2 name |
|---|---|---|
| 327 | HaltReasonChar | HaltReasonInt |
Fields removed (0)
No field of FIX 4.4 is missing from FIX 5.0 SP2.
Fields added (5,116)
The full list is in the FIX 5.0 SP2 dictionary. Listed here: the 300 lowest-numbered new fields.
| Tag range | New fields |
|---|---|
| 1 to 999 | 44 |
| 1000 to 1999 | 992 |
| 2000 to 2999 | 953 |
| 40000 to 40999 | 1,000 |
| 41000 to 41999 | 1,000 |
| 42000 to 42999 | 1,000 |
| 43000 to 43999 | 124 |
| 50000 to 50999 | 3 |
Show 300 fields
- 685 LegOrderQty
- 809 NoUsernames
- 957 NoStrategyParameters
- 958 StrategyParameterName
- 959 StrategyParameterType
- 960 StrategyParameterValue
- 961 HostCrossID
- 962 SideTimeInForce
- 963 MDReportID
- 964 SecurityReportID
- 965 SecurityStatus
- 966 SettleOnOpenFlag
- 967 StrikeMultiplier
- 968 StrikeValue
- 969 MinPriceIncrement
- 970 PositionLimit
- 971 NTPositionLimit
- 972 UnderlyingAllocationPercent
- 973 UnderlyingCashAmount
- 974 UnderlyingCashType
- 975 UnderlyingSettlementType
- 976 QuantityDate
- 977 ContIntRptID
- 978 LateIndicator
- 979 InputSource
- 980 SecurityUpdateAction
- 981 NoExpiration
- 982 ExpirationQtyType
- 983 ExpQty
- 984 NoUnderlyingAmounts
- 985 UnderlyingPayAmount
- 986 UnderlyingCollectAmount
- 987 UnderlyingSettlementDate
- 988 UnderlyingSettlementStatus
- 989 SecondaryIndividualAllocID
- 990 LegReportID
- 991 RndPx
- 992 IndividualAllocType
- 993 AllocCustomerCapacity
- 994 TierCode
- 996 UnitOfMeasure
- 997 TimeUnit
- 998 UnderlyingUnitOfMeasure
- 999 LegUnitOfMeasure
- 1000 UnderlyingTimeUnit
- 1001 LegTimeUnit
- 1002 AllocMethod
- 1003 TradeID
- 1005 SideTradeReportID
- 1006 SideFillStationCd
- 1007 SideReasonCd
- 1008 SideTrdSubType
- 1009 SideLastQty
- 1011 MessageEventSource
- 1012 SideTrdRegTimestamp
- 1013 SideTrdRegTimestampType
- 1014 SideTrdRegTimestampSrc
- 1015 AsOfIndicator
- 1016 NoSideTrdRegTS
- 1017 LegOptionRatio
- 1018 NoInstrumentParties
- 1019 InstrumentPartyID
- 1020 TradeVolume
- 1021 MDBookType
- 1022 MDFeedType
- 1023 MDPriceLevel
- 1024 MDOriginType
- 1025 FirstPx
- 1026 MDEntrySpotRate
- 1027 MDEntryForwardPoints
- 1028 ManualOrderIndicator
- 1029 CustDirectedOrder
- 1030 ReceivedDeptID
- 1031 CustOrderHandlingInst
- 1032 OrderHandlingInstSource
- 1033 DeskType
- 1034 DeskTypeSource
- 1035 DeskOrderHandlingInst
- 1036 ExecAckStatus
- 1037 UnderlyingDeliveryAmount
- 1038 UnderlyingCapValue
- 1039 UnderlyingSettlMethod
- 1040 SecondaryTradeID
- 1041 FirmTradeID
- 1042 SecondaryFirmTradeID
- 1043 CollApplType
- 1044 UnderlyingAdjustedQuantity
- 1045 UnderlyingFXRate
- 1046 UnderlyingFXRateCalc
- 1047 AllocPositionEffect
- 1048 DealingCapacity
- 1049 InstrmtAssignmentMethod
- 1050 InstrumentPartyIDSource
- 1051 InstrumentPartyRole
- 1052 NoInstrumentPartySubIDs
- 1053 InstrumentPartySubID
- 1054 InstrumentPartySubIDType
- 1055 PositionCurrency
- 1056 CalculatedCcyLastQty
- 1057 AggressorIndicator
- 1058 NoUndlyInstrumentParties
- 1059 UnderlyingInstrumentPartyID
- 1060 UnderlyingInstrumentPartyIDSource
- 1061 UnderlyingInstrumentPartyRole
- 1062 NoUndlyInstrumentPartySubIDs
- 1063 UnderlyingInstrumentPartySubID
- 1064 UnderlyingInstrumentPartySubIDType
- 1065 BidSwapPoints
- 1066 OfferSwapPoints
- 1067 LegBidForwardPoints
- 1068 LegOfferForwardPoints
- 1069 SwapPoints
- 1070 MDQuoteType
- 1071 LastSwapPoints
- 1072 SideGrossTradeAmt
- 1073 LegLastForwardPoints
- 1074 LegCalculatedCcyLastQty
- 1075 LegGrossTradeAmt
- 1079 MaturityTime
- 1080 RefOrderID
- 1081 RefOrderIDSource
- 1082 SecondaryDisplayQty
- 1083 DisplayWhen
- 1084 DisplayMethod
- 1085 DisplayLowQty
- 1086 DisplayHighQty
- 1087 DisplayMinIncr
- 1088 RefreshQty
- 1089 MatchIncrement
- 1090 MaxPriceLevels
- 1091 PreTradeAnonymity
- 1092 PriceProtectionScope
- 1093 LotType
- 1094 PegPriceType
- 1095 PeggedRefPrice
- 1096 PegSecurityIDSource
- 1097 PegSecurityID
- 1098 PegSymbol
- 1099 PegSecurityDesc
- 1100 TriggerType
- 1101 TriggerAction
- 1102 TriggerPrice
- 1103 TriggerSymbol
- 1104 TriggerSecurityID
- 1105 TriggerSecurityIDSource
- 1106 TriggerSecurityDesc
- 1107 TriggerPriceType
- 1108 TriggerPriceTypeScope
- 1109 TriggerPriceDirection
- 1110 TriggerNewPrice
- 1111 TriggerOrderType
- 1112 TriggerNewQty
- 1113 TriggerTradingSessionID
- 1114 TriggerTradingSessionSubID
- 1115 OrderCategory
- 1116 NoRootPartyIDs
- 1117 RootPartyID
- 1118 RootPartyIDSource
- 1119 RootPartyRole
- 1120 NoRootPartySubIDs
- 1121 RootPartySubID
- 1122 RootPartySubIDType
- 1123 TradeHandlingInstr
- 1124 OrigTradeHandlingInstr
- 1125 OrigTradeDate
- 1126 OrigTradeID
- 1127 OrigSecondaryTradeID
- 1128 ApplVerID
- 1129 CstmApplVerID
- 1130 RefApplVerID
- 1131 RefCstmApplVerID
- 1132 TZTransactTime
- 1133 ExDestinationIDSource
- 1134 ReportedPxDiff
- 1135 RptSys
- 1136 AllocClearingFeeIndicator
- 1137 DefaultApplVerID
- 1138 DisplayQty
- 1139 ExchangeSpecialInstructions
- 1140 MaxTradeVol
- 1141 NoMDFeedTypes
- 1142 MatchAlgorithm
- 1143 MaxPriceVariation
- 1144 ImpliedMarketIndicator
- 1145 EventTime
- 1146 MinPriceIncrementAmount
- 1147 UnitOfMeasureQty
- 1148 LowLimitPrice
- 1149 HighLimitPrice
- 1150 TradingReferencePrice
- 1151 SecurityGroup
- 1152 LegNumber
- 1153 SettlementCycleNo
- 1154 SideCurrency
- 1155 SideSettlCurrency
- 1156 ApplExtID
- 1157 CcyAmt
- 1158 NoSettlDetails
- 1159 SettlObligMode
- 1160 SettlObligMsgID
- 1161 SettlObligID
- 1162 SettlObligTransType
- 1163 SettlObligRefID
- 1164 SettlObligSource
- 1165 NoSettlOblig
- 1166 QuoteMsgID
- 1167 QuoteEntryStatus
- 1168 TotNoCxldQuotes
- 1169 TotNoAccQuotes
- 1170 TotNoRejQuotes
- 1171 PrivateQuote
- 1172 RespondentType
- 1173 MDSubBookType
- 1174 SecurityTradingEvent
- 1175 NoStatsIndicators
- 1176 StatsType
- 1177 NoOfSecSizes
- 1178 MDSecSizeType
- 1179 MDSecSize
- 1180 ApplID
- 1181 ApplSeqNum
- 1182 ApplBegSeqNum
- 1183 ApplEndSeqNum
- 1184 SecurityXMLLen
- 1185 SecurityXML
- 1186 SecurityXMLSchema
- 1187 RefreshIndicator
- 1188 Volatility
- 1189 TimeToExpiration
- 1190 RiskFreeRate
- 1191 PriceUnitOfMeasure
- 1192 PriceUnitOfMeasureQty
- 1193 SettlMethod
- 1194 ExerciseStyle
- 1195 OptPayoutAmount
- 1196 PriceQuoteMethod
- 1197 ValuationMethod
- 1198 ListMethod
- 1199 CapPrice
- 1200 FloorPrice
- 1201 NoStrikeRules
- 1202 StartStrikePxRange
- 1203 EndStrikePxRange
- 1204 StrikeIncrement
- 1205 NoTickRules
- 1206 StartTickPriceRange
- 1207 EndTickPriceRange
- 1208 TickIncrement
- 1209 TickRuleType
- 1210 NestedInstrAttribType
- 1211 NestedInstrAttribValue
- 1212 LegMaturityTime
- 1213 UnderlyingMaturityTime
- 1214 DerivativeSymbol
- 1215 DerivativeSymbolSfx
- 1216 DerivativeSecurityID
- 1217 DerivativeSecurityIDSource
- 1218 NoDerivativeSecurityAltID
- 1219 DerivativeSecurityAltID
- 1220 DerivativeSecurityAltIDSource
- 1221 SecondaryLowLimitPrice
- 1222 MaturityRuleID
- 1223 StrikeRuleID
- 1224 LegUnitOfMeasureQty
- 1225 DerivativeOptPayAmount
- 1226 EndMaturityMonthYear
- 1227 ProductComplex
- 1228 DerivativeProductComplex
- 1229 MaturityMonthYearIncrement
- 1230 SecondaryHighLimitPrice
- 1231 MinLotSize
- 1232 NoExecInstRules
- 1233 CommRate
- 1234 NoLotTypeRules
- 1235 NoMatchRules
- 1236 NoMaturityRules
- 1237 NoOrdTypeRules
- 1238 CommUnitOfMeasure
- 1239 NoTimeInForceRules
- 1240 SecondaryTradingReferencePrice
- 1241 StartMaturityMonthYear
- 1242 FlexProductEligibilityIndicator
- 1243 DerivFlexProductEligibilityIndicator
- 1244 FlexibleIndicator
- 1245 TradingCurrency
- 1246 DerivativeProduct
- 1247 DerivativeSecurityGroup
- 1248 DerivativeCFICode
- 1249 DerivativeSecurityType
- 1250 DerivativeSecuritySubType
- 1251 DerivativeMaturityMonthYear
- 1252 DerivativeMaturityDate
- 1253 DerivativeMaturityTime
- 1254 DerivativeSettleOnOpenFlag
- 1255 DerivativeInstrmtAssignmentMethod
- 1256 DerivativeSecurityStatus
- 1257 DerivativeInstrRegistry
- 1258 DerivativeCountryOfIssue
- 1259 DerivativeStateOrProvinceOfIssue
- 1260 DerivativeLocaleOfIssue
Version dictionaries
Other comparisons
Field and message data comes from the QuickFIX data dictionaries for FIX 4.0 to 5.0 SP2 and FIXT 1.1, used under the QuickFIX Software License. This product includes software developed by quickfixengine.org (http://www.quickfixengine.org/). Enumerated value names are converted to plain text for reading.