ZagTrader

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)

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)

Fields renamed (1)

Same tag number and wire format, new name. Code generated from a dictionary changes.

TagFIX 4.4 nameFIX 5.0 SP2 name
327HaltReasonCharHaltReasonInt

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 rangeNew fields
1 to 99944
1000 to 1999992
2000 to 2999953
40000 to 409991,000
41000 to 419991,000
42000 to 429991,000
43000 to 43999124
50000 to 509993
Show 300 fields

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.