Is the field CstmApplVerId(1129) part of FIX 4.4?

Is the field CstmApplVerId(1129) part of FIX 4.4? When I check the latest FIX 4.4 spec, Version 4.4 with Errata 20030618, 1129 does not appear as one of the tags in the data dictionary or in other parts of the spec. But when I check fiximate.fixtrading.org, it says that it was “Added FIX.4.4 EP16”.

The web page https://www.fixtrading.org/standards/ under the FIX 4.4 section say “As of 2010, it is considered compliant to use fields, messages, and components as of the latest extension pack of FIX with FIX.4.4.”. Extension packs are something that’s been associated with FIX 5.0. Does this clause mean that, it’s compliant for fields contained in extension packs to appear in FIX 4.4 even if those fields don’t appear in the FIX 4.4 spec?

Does this apply to message header fields as CstmApplVerId(1129) is a header field in FIXT 1.1?

Also, how do I find the documentation for Extension Pack 16? When I check https://www.fixtrading.org/extension-packs/, Extension Pack 16 is not listed. When I try to directly go what might be the URL https://www.fixtrading.org/packages/ep16, the site redirects me to the documentation for Extension Pack 160. Extension Pack 160 doesn’t mention anything about tag 1129.

Additionally, in the use case I’m investigating, tag 1129 is appearing in messages on a plain old FIX 4.4 connection, not a FIXT 1.1 connection.

CstmApplVerID(1129) is not part of FIX.4.4. However as you properly point out the use of fields from the latest extension pack are available for use and would be considered a valid use within FIX.

The confusion enters in as you point out because we had no approach to addressing extension packs to either FIX.4.4 session layer (FIX4) or FIXT1.1 (FIXT).

With FIX Generation 6 - also known as " FIX Latest". Any additions to session layer messages and fields would be available for use within FIXT and FIX4 and would be considered a standards compliant use of FIX.

With that said, there is the larger context of existing implementations. I am not sure the addition of CstmApplVerID(1129) in the FIX.4.4 session layer would be all that well received by counterparties. The other issue faced would be the requirement on counterparties to support multiple values (message specific) of CstmApplVerID(1129) within the same session.

The original intent of CstmApplVerID(1129), ApplVerID(1128), AppExtID(1156) was to permit versioning within a FIX session. The original idea would eliminate the need to “flash cut” implementations as new functionality is introduced. This has not been well received by the broader FIX Community in my experience.

We are now moving away from the concept of versioning. The appropriate future action is to communicate a FIX service definition via a FIX Orchestra file.

I would ask the broader community? The value of using CstmApplVerID(1129) is to allow FIX service providers to communicate their specific version information for a service. What are the implications if a service provider were to start to communicate this as part of the standard header using FIX.4.4?

1 Like

A clarification when we say “The latest extension pack” - each extension pack is cumulative. All of the previous extension pack updates are included in the Latest EP. So the Latest EP is always from a repository and FIXimate perspective “FIX Latest”.

1 Like

Some further clarification on the meaning of “Added FIX.4.4 EP16”. The FIXimate information is to be read as “After finalization of FIX Version 4.4 there was an Extension Pack 16 to add functionality not available in FIX 4.4”. Prior to FIX 4.4 there were no Extension Packs. Extension packs have been published as of finalization of FIX 5.0 SP2, i.e. EP98 is the first extension made to FIX 5.0 SP2. The first 97 Extension Packs only existed as part of FIX versions and were not official until the FIX version was published. However, they were listed as part of the release notes, i.e. EP16 was added after finalization of FIX 4.4 and is an integral part of FIX 5.0. As of EP98, all Extension Packs are published as standalone documents and official upon publication. The changes described in the EP documents prior to EP98 were integrated into Volume 1-7 of the version-specific documentation.

Here is the list of EPs prior to EP98. Not all assigned EP numbers became actual extensions back then. As of EP98 there are no gaps in the sequence.

FIX 4.4 does not contain Extension Packs
FIX 5.0 contains EP1 - EP29
FIX 5.0 SP1 contains EP41 - EP75
FIX 5.0 SP2 contains EP76 - EP96
FIX Latest currently contains EP98 - EP240

Hope that helps to clarify the approach a) prior to FIX 4.4, b) between FIX 4.4 and FIX 5.0 SP2 and c) after FIX 5.0 SP2.

1 Like