# FIX Protocol

> FIX is the standard messaging protocol for institutional trading. Learn how FIX sessions, messages and tags work, a sample order message and when traders use FIX.

Source: https://learn.tradelabsai.com/programming/fix-protocol/  
Track: Programming and Data · Level: Intermediate · Updated: 2026-10-03  
Publisher: TradeLabs AI (https://tradelabsai.com). Education, not financial advice.  
Cite as: TradeLabs Learn, "FIX Protocol", https://learn.tradelabsai.com/programming/fix-protocol/

The Financial Information eXchange protocol, known as FIX, is the standard language that banks, brokers, funds and exchanges use to send orders and execution reports to each other. It began in 1992 as a project between Fidelity Investments and Salomon Brothers to replace phone calls for equity trading, and it is now maintained by the nonprofit FIX Trading Community. FIX is used across equities, futures, foreign exchange and fixed income worldwide. Most retail traders never touch it directly, but it sits behind much of the order flow they interact with.

## Why FIX exists

Before FIX, each broker and client connection needed its own custom format. FIX gave the industry a common vocabulary: a "new order" or "execution report" means the same thing whichever firms are talking. That makes it far easier for a fund to connect to many brokers, or a broker to many venues.

## How a FIX message looks

A FIX message is a series of tag and value pairs. Each tag is a number with a defined meaning, and pairs are separated by a special SOH character, shown here as a vertical bar.

```
8=FIX.4.4|9=148|35=D|49=CLIENT1|56=BROKER1|34=215|52=20261003-14:30:01.123|
11=ORD-20261003-0007|55=AAPL|54=1|38=100|40=2|44=185.50|59=0|60=20261003-14:30:01.120|10=072|
```

| Tag | Name | Value here |
|---|---|---|
| 8 | BeginString | FIX version 4.4 |
| 35 | MsgType | D = New Order Single |
| 49 / 56 | Sender / Target | Who is talking to whom |
| 34 | MsgSeqNum | Message sequence number 215 |
| 11 | ClOrdID | Client's own order ID |
| 55 | Symbol | AAPL |
| 54 | Side | 1 = Buy |
| 38 | OrderQty | 100 |
| 40 | OrdType | 2 = Limit |
| 44 | Price | 185.50 |
| 59 | TimeInForce | 0 = Day |
| 10 | CheckSum | Integrity check |

The body length and checksum values above are illustrative. FIX engines calculate them automatically.

## Key message types

| MsgType | Message | Direction |
|---|---|---|
| A | Logon | Both |
| 0 | Heartbeat | Both |
| D | New Order Single | Client to broker |
| F | Order Cancel Request | Client to broker |
| G | Order Cancel/Replace Request | Client to broker |
| 8 | Execution Report | Broker to client: acknowledgements, fills, rejects |
| 3 | Reject | Either side, for malformed messages |

## Sessions and sequence numbers

A FIX session starts with a logon and keeps running with heartbeats. Every message carries a sequence number. If a side sees a gap, it sends a resend request and the missing messages are replayed. This makes FIX reliable: an order or fill cannot silently disappear. See [Sequence Numbers, Dropped Packets and Out-of-Order Messages](https://learn.tradelabsai.com/programming/sequence-numbers/).

**Example: Recovering a missed fill**
A fund's FIX engine receives execution reports with sequence numbers 501, 502 and then 505. It immediately sends a resend request for 503 and 504. The broker replays them: 503 was a partial fill of 2,000 shares and 504 a fill of the remaining 3,000. Without the sequence check, the fund's system would have believed the order was still open for 5,000 shares and might have sent a duplicate order. See [Trade Accounting and Reconciliation](https://learn.tradelabsai.com/industry/trade-reconciliation/).

## Who uses FIX

- **Asset managers and hedge funds** sending orders to brokers.
- **Brokers** routing to exchanges and other venues. See [Order Routing and Smart Order Routing](https://learn.tradelabsai.com/orders/order-routing/).
- **Exchanges,** many of which offer FIX order entry alongside faster native binary protocols. See [Binary Protocols](https://learn.tradelabsai.com/infrastructure/binary-protocols/).
- **Active traders with direct market access,** through brokers that offer FIX connections. See [Direct Market Access and Sponsored Access](https://learn.tradelabsai.com/orders/direct-market-access/).

## FIX versus other options

| | FIX | REST and WebSocket APIs | Native binary protocols |
|---|---|---|---|
| Users | Institutions | Retail and crypto | Latency sensitive firms |
| Format | Text tag and value | JSON | Compact binary |
| Speed | Fast | Moderate | Fastest |
| Standardisation | Very high | Venue specific | Venue specific |

## Getting started with FIX

Open source engines such as QuickFIX (with versions for C++, Java and Python) handle sessions, sequence numbers and parsing. Brokers that offer FIX usually provide a test environment and a specification document listing the tags they support. See [Working With Exchange and Broker APIs](https://learn.tradelabsai.com/programming/trading-apis/).

## Frequently asked questions

### What is the FIX protocol?

A standard messaging protocol that financial firms use to send orders, cancellations and execution reports electronically.

### Who created FIX?

It started in 1992 as a project between Fidelity Investments and Salomon Brothers and is now maintained by the FIX Trading Community.

### Do retail traders use FIX?

Rarely. Most use broker REST or WebSocket APIs, though some brokers offer FIX to active traders.

Next, learn what level 2 data shows in [Market Data Levels: Level 1, 2 and 3](https://learn.tradelabsai.com/programming/level-2-data/).

## Continue learning

- Next lesson: [Market Data Levels: Level 1, 2 and 3](https://learn.tradelabsai.com/programming/level-2-data/)
- Previous lesson: [Alerts and Webhooks](https://learn.tradelabsai.com/programming/alerts-and-webhooks/)
- Related: [Alerts and Webhooks](https://learn.tradelabsai.com/programming/alerts-and-webhooks/): How price alerts and webhooks work, how to send TradingView alerts to your own server or a chat channel, and how to secure webhook endpoints against fake signals.
- Related: [Working With Exchange and Broker APIs](https://learn.tradelabsai.com/programming/trading-apis/): How trading APIs let programs get prices, place orders and read positions. Learn REST, WebSocket and FIX, authentication, rate limits and safe API key handling.
- Related: [Direct Market Access and Sponsored Access](https://learn.tradelabsai.com/orders/direct-market-access/): Direct market access lets traders send orders straight to an exchange's order book through a broker's systems. Learn how DMA works, its benefits, costs and rules.
- Related: [Binary Protocols](https://learn.tradelabsai.com/infrastructure/binary-protocols/): Why exchanges use compact binary protocols for market data and orders. Learn how ITCH, OUCH and SBE work, how they compare with JSON and FIX, and decoding basics.
- Related: [Sequence Numbers, Dropped Packets and Out-of-Order Messages](https://learn.tradelabsai.com/programming/sequence-numbers/): Sequence numbers let trading systems detect lost, duplicated or out of order messages. Learn how gap detection, recovery and duplicate handling work in practice.
- Related: [Order Routing and Smart Order Routing](https://learn.tradelabsai.com/orders/order-routing/): Order routing decides which venue your order is sent to. Learn how brokers route orders, smart order routers, payment for order flow and how routing affects fills.
