Almost every electronic order sent by an institutional trading desk – and almost every fill that comes back – travels as a FIX message. The Financial Information eXchange protocol is the common language that lets buy-side firms, brokers, exchanges, and venues talk to each other without building a bespoke interface for every counterparty. Understanding FIX is the starting point for understanding how market connectivity actually works underneath the trading screen.
What Is the FIX Protocol?
The FIX protocol is an open, vendor-neutral electronic messaging standard designed specifically for the real-time exchange of securities transaction information. It was created in 1992 out of a working relationship between Fidelity Investments and Salomon Brothers, who wanted to replace phone calls and proprietary terminals with a structured electronic format for communicating orders. What began as an equities order-routing convention between two firms has become the de facto global standard across asset classes, maintained today by the non-profit FIX Trading Community.
FIX (Financial Information eXchange) is a standardised electronic communications protocol for the real-time international exchange of trade-related messages – orders, executions, cancellations, market data, and post-trade confirmations – between financial institutions, brokers, exchanges, and trading venues.
The value of FIX is not technical sophistication; it is universality. Because a buy-side desk, its brokers, and the venues they route to all speak the same protocol, a single FIX integration can reach dozens of counterparties. Without it, every new broker or venue relationship would require a custom-coded interface, and the connectivity burden would grow with every counterparty added. FIX turns what would be a many-to-many integration problem into a shared standard that any participant can implement once.
How FIX Works: Sessions, Messages, and Tags
A FIX implementation has two conceptual layers that are useful to separate: the session layer, which keeps the connection reliable and ordered, and the application layer, which carries the actual trading intent. Both run over a standard TCP/IP connection.
The Message Format: Tag=Value Pairs
A classic FIX message is a string of tag=value pairs separated by a non-printable delimiter (the SOH, or Start of Heading, character). Each tag is a number that identifies a field, and the value is its content. For example, tag 35 identifies the message type, tag 55 the symbol, tag 54 the side (1 for buy, 2 for sell), and tag 38 the order quantity. A simplified buy order might read as 35=D | 55=VOD.L | 54=1 | 38=10000 | 40=2 | 44=72.50, meaning a new single order to buy 10,000 shares of Vodafone as a limit order at 72.50. Every message carries a standard header (including sender and target identifiers and a sequence number) and a trailer with a checksum.
The Session Layer
Before any order can flow, the two parties establish a FIX session. The session layer is governed by a small set of administrative messages:
- Logon (A) – opens the session and agrees parameters such as heartbeat interval
- Heartbeat (0) – sent at agreed intervals to confirm the connection is alive when no business messages are flowing
- Test Request (1) – prompts the counterparty for a heartbeat when one is overdue
- Resend Request (2) – asks the counterparty to retransmit messages after a gap is detected
- Sequence Reset (4) – realigns sequence numbers during recovery
- Logout (5) – closes the session cleanly
The mechanism that makes FIX trustworthy for trading is the sequence number. Every message in a session is numbered in order. If a receiver sees a gap – message 104 arrives after 102 – it issues a Resend Request so nothing is silently lost, and duplicate numbers are detected and discarded. This guarantees that an order or a fill is never quietly dropped or processed twice, which is exactly the property a trading system needs.
The Application Layer
On top of a healthy session, the application layer carries the business messages a trading desk cares about: new orders, amendments, cancellations, execution reports, and so on. The component that implements all of this – establishing sessions, managing sequence numbers and recovery, and encoding and decoding messages – is called a FIX engine. In an institutional environment the FIX engine sits inside or alongside the order management system and the execution management system, translating internal order objects into FIX for each connected broker or venue and translating their responses back.
Key FIX Message Types
While the FIX specification defines a large catalogue of message types, a handful account for the overwhelming majority of order-routing traffic. The table below summarizes the ones an institutional desk encounters most often.
| Message | Tag 35 | Purpose | Direction |
|---|---|---|---|
| NewOrderSingle | D | Submit a new order for a single instrument | Client to broker/venue |
| ExecutionReport | 8 | Report order status: acknowledged, partial fill, full fill, rejected, or done | Broker/venue to client |
| OrderCancelRequest | F | Request cancellation of a live order | Client to broker/venue |
| OrderCancel/ReplaceRequest | G | Amend a live order (price, quantity, parameters) | Client to broker/venue |
| OrderCancelReject | 9 | Reject a cancel or amend that could not be applied | Broker/venue to client |
| MarketDataRequest | V | Subscribe to quotes or order-book data | Client to venue |
| Allocation | J | Communicate post-trade allocation instructions | Client to broker |
The single most important message to understand is the ExecutionReport (8). It is the workhorse of the protocol: a broker or venue uses it to acknowledge an order, to report each partial fill as it happens, to confirm a full fill, to reject an order, and to confirm a cancellation. A single parent order can generate a long stream of execution reports, and reconstructing that stream accurately is the basis of accurate post-trade analysis.
FIX Versions and Encodings
FIX has evolved across several versions, and a working desk usually has to support more than one at the same time because counterparties standardize differently.
- FIX 4.2 – released in 2000 and still extremely common for order routing; many broker connections run on it to this day
- FIX 4.4 – released in 2003, the most widely deployed version overall, with broader support for order types and post-trade workflows
- FIX 5.0 SP2 – the current major application version, which split the transport function into a separate standard (FIXT.1.1) so the session and application layers could evolve independently
Beyond the classic human-readable tag=value encoding, the FIX Trading Community maintains higher-performance encodings for latency-sensitive use cases: FAST (FIX Adapted for STreaming) compresses high-volume market data, while FIXP (the FIX Performance session layer) and Simple Binary Encoding (SBE) support low-latency binary messaging. These coexist with classic FIX rather than replacing it.
Latency note: Classic tag=value FIX is flexible and universal, but its verbosity adds parsing and bandwidth overhead. For the most latency-sensitive order entry, venues typically offer a native binary protocol that is faster but proprietary. Many institutional desks therefore run FIX for the breadth of broker and venue coverage it gives them, and reserve native binary interfaces for the specific flows where every microsecond is worth the extra integration cost.
Where FIX Sits in the Trading Stack
FIX is the connective tissue of electronic trading, and it appears at almost every hop an order takes. A typical institutional order flow looks like this:
- A portfolio decision becomes an order in the OMS, which manages compliance, positions, and the parent order lifecycle
- The order is staged to the EMS, where the trader chooses an execution strategy or algorithm
- A smart order router slices the order and sends child orders, as FIX messages, to the venues and brokers offering the best liquidity
- Each venue streams ExecutionReports back over FIX as fills occur, and those fills flow back up through the EMS and OMS for booking and post-trade processing
Every one of those arrows is, in most institutional setups, a FIX session. The same protocol that submits the order carries the acknowledgement, the partial fills, the amendments, and the final confirmation back. If you want to understand how routing decisions are made on top of this messaging layer, our companion guide on how smart order routing works inside an EMS covers the logic that sits above FIX, and the broader guide to execution management systems sets out where these components fit together.
The Hidden Complexity of FIX Connectivity
Because FIX is a standard, it is tempting to assume that connecting two FIX-speaking systems is plug-and-play. In practice, managing FIX connectivity at institutional scale is a substantial and ongoing engineering effort, for several reasons.
Dialects and Customization
FIX is often described, only half-jokingly, as a standard with thousands of dialects. The specification permits custom and user-defined fields, and counterparties make different choices about which optional tags they require, how they populate them, and how they interpret order types. Two brokers that both claim FIX 4.4 support can still expect meaningfully different messages. Each connection therefore needs its own configuration and rules.
Certification and Onboarding
Before a new FIX connection goes live, the two parties must certify it: a structured testing process that walks through order submission, amendments, cancellations, rejections, and recovery scenarios to confirm both sides behave as expected. Multiply this by every broker and venue a desk wants to reach, and onboarding becomes a significant part of the connectivity workload.
Session Management and Monitoring
Live FIX sessions need constant supervision. Sequence number mismatches, unexpected disconnects, and recovery after an outage all have to be handled correctly, because a mistake at the session layer can mean a lost fill or a duplicated order. The operational reality is that a desk with many counterparties is running many sessions, each of which must be monitored and recovered reliably.
This complexity is one of the reasons firms running on ageing legacy systems struggle to add new venues quickly: the connectivity layer was never designed to scale gracefully, and every new counterparty becomes a project rather than a configuration.
FIX Connectivity at Quod Financial
Quod Financial treats connectivity as a core part of the platform rather than an afterthought. The FIX engine, session management, and a maintained library of broker and venue connections are native to the same multi-asset trading architecture that runs the OMS, EMS, and smart order router. That integration matters in practice for a few reasons:
- One maintained connectivity library – access to a large, pre-certified network of brokers and venues, so adding a counterparty is a configuration step rather than a build
- Normalization at the edge – incoming FIX dialects are mapped into a single internal data model, so the OMS, EMS, and analytics downstream all see consistent, clean order and fill data
- Resilient session management – sequence handling, recovery, and monitoring are handled by the platform rather than reimplemented per connection
- Mixed protocols where they matter – classic FIX for breadth of coverage, with native binary order entry available for the venues and flows where latency is critical
The result is that the messaging layer, which is easy to underestimate, becomes a managed capability instead of a recurring source of operational risk.
Connectivity That Scales With Your Counterparties
See how Quod Financial’s native FIX engine and maintained broker and venue network turn connectivity from a per-counterparty engineering project into a configuration step – across equities, FX, derivatives, and more.
Pre-Certified Network
Multi-Asset
Data Normalization
Low-Latency Options
Frequently Asked Questions
What is the FIX protocol used for?
The FIX (Financial Information eXchange) protocol is the standard electronic messaging language used to communicate trade-related information between market participants. It is used to send orders, receive execution reports, request cancellations and amendments, distribute market data, and confirm post-trade allocations. Buy-side firms, sell-side brokers, exchanges, and trading venues all speak FIX, which lets a single integration connect a trading desk to many counterparties without building a custom interface for each one.
What is the difference between a FIX session and a FIX message?
A FIX session is the persistent, ordered connection between two parties, managed by the session layer through Logon, Heartbeat, Test Request, Resend Request, and Logout messages, plus sequence numbers that guarantee no message is lost or duplicated. A FIX message is a single unit of business or administrative information sent within that session, such as a NewOrderSingle or an ExecutionReport. The session layer keeps the pipe reliable; the application layer carries the trading intent across it.
What is a FIX engine?
A FIX engine is the software component that implements the FIX protocol: it establishes and maintains sessions, manages sequence numbers and message recovery, encodes and decodes tag=value messages, and validates them against a FIX dictionary. In an institutional setup the FIX engine sits inside or alongside the OMS, EMS, or smart order router, translating internal order objects into FIX messages for each connected venue or broker and back again.
Which FIX version should an institutional desk use?
FIX 4.2 and FIX 4.4 remain the most widely deployed versions for order routing because almost every broker and venue supports them. FIX 5.0 Service Pack 2, used with the FIXT.1.1 transport layer, separates the session and application layers and adds support for newer asset classes and fields. Most desks support multiple versions simultaneously because counterparties differ; the practical answer is to use the version each counterparty certifies on, which is why connectivity management matters more than picking a single version.
Is FIX fast enough for low-latency trading?
Standard tag=value FIX is human-readable and flexible but more verbose than binary protocols, which adds parsing and bandwidth overhead. For ultra-low-latency use cases, venues offer native binary order-entry protocols, and the FIX community provides FAST for market data compression and FIXP and Simple Binary Encoding for high-performance messaging. Many institutional desks run FIX for the breadth of broker and venue coverage it provides, and use native binary interfaces selectively where every microsecond counts.
Conclusion
The FIX protocol is one of those pieces of market infrastructure that is invisible when it works and painfully visible when it does not. It solved a real problem – the explosion of point-to-point integrations between trading counterparties – by giving the whole industry a shared language for orders, executions, and market data. Three decades on, it remains the backbone of electronic trade communication across asset classes.
For an institutional desk, the practical lesson is that FIX itself is the easy part; managing FIX connectivity at scale is the hard part. Dialects, certification, session recovery, and data normalization are where the real engineering cost lives, and they are exactly what separates a connectivity layer that scales gracefully from one that turns every new venue into a project. That is why connectivity belongs at the center of the trading architecture, not bolted on at the edge.
If you are mapping out how the messaging layer connects to order management, execution, and routing, the next step is to look at how those components fit together – starting with the relationship between system types in our guide to EMS vs O/EMS vs OMS architecture.
