Overview
Introduction to the FIX 4.4 protocol, connection details, and supported message types.
What is FIX 4.4?
The Financial Information eXchange (FIX) Protocol version 4.4 is an industry-standard electronic messaging protocol used for real-time exchange of securities transaction information. Brokeret provides a FIX 4.4 gateway that enables institutional clients, liquidity providers, and trading systems to connect directly for market data and order execution.
Connection Details
| Setting | Value |
|---|---|
| FIX Version | FIX.4.4 |
| Transport | TCP/IP with optional TLS encryption |
| Default Port | 5001 (price) / 5002 (trade) |
| Heartbeat Interval | 30 seconds (configurable) |
| Message Encoding | ASCII, SOH (0x01) delimiter |
| Sequence Numbers | Persistent across sessions |
Session Architecture
Brokeret uses a dual-session architecture:
| Session | Purpose | Port |
|---|---|---|
| Price Session | Market data subscription and streaming quotes | 5001 |
| Trade Session | Order submission, execution, and management | 5002 |
Both sessions authenticate independently and maintain separate sequence numbers.
Message Structure
Every FIX message consists of three parts:
Header (Required Fields)
| Tag | Field | Description |
|---|---|---|
| 8 | BeginString | Always FIX.4.4 |
| 9 | BodyLength | Length of message body |
| 35 | MsgType | Message type identifier |
| 49 | SenderCompID | Sender's identifier |
| 56 | TargetCompID | Target's identifier |
| 34 | MsgSeqNum | Message sequence number |
| 52 | SendingTime | UTC timestamp (YYYYMMDD-HH:MM:SS.sss) |
Body
Contains message-specific fields. See individual message type documentation.
Trailer
| Tag | Field | Description |
|---|---|---|
| 10 | CheckSum | Three-character checksum |
Supported Message Types
Session-Level Messages
| MsgType | Name | Direction | Description |
|---|---|---|---|
A | Logon | Both | Initiate session, authenticate |
5 | Logout | Both | Graceful session termination |
0 | Heartbeat | Both | Connection keep-alive |
1 | TestRequest | Both | Force heartbeat response |
2 | ResendRequest | Both | Request retransmission |
4 | SequenceReset | Both | Reset sequence numbers |
3 | Reject | Acceptor | Session-level rejection |
Application Messages — Market Data
| MsgType | Name | Direction | Description |
|---|---|---|---|
V | MarketDataRequest | Client → Server | Subscribe/unsubscribe to quotes |
W | MarketDataSnapshotFullRefresh | Server → Client | Full quote snapshot |
X | MarketDataIncrementalRefresh | Server → Client | Incremental quote update |
Y | MarketDataRequestReject | Server → Client | Subscription rejected |
Application Messages — Trading
| MsgType | Name | Direction | Description |
|---|---|---|---|
D | NewOrderSingle | Client → Server | Submit a new order |
F | OrderCancelRequest | Client → Server | Cancel an existing order |
G | OrderCancelReplaceRequest | Client → Server | Modify an existing order |
8 | ExecutionReport | Server → Client | Order status and fill updates |
9 | OrderCancelReject | Server → Client | Cancel/replace rejected |
j | BusinessMessageReject | Server → Client | Application-level rejection |
Authentication
Authentication occurs during the Logon (A) message exchange:
- Client sends Logon with
SenderCompID(Tag 49),Password(Tag 554), and optionallyUsername(Tag 553) - Server validates credentials against the configured accounts
- Server responds with Logon acknowledgment or Logout with rejection reason
SenderCompID, TargetCompID, and credentials.Timestamp Format
All timestamps use UTC in the format:
YYYYMMDD-HH:MM:SS.sss
Example: 20260312-14:30:15.123
Next Steps
- Session Management — Logon, logout, heartbeats, and sequence number handling
- Market Data — Subscribe to streaming quotes
- Order Execution — Submit and manage orders