Session Management
FIXT 1.1 logon with application version negotiation, heartbeats, and recovery.
FIXT 1.1 Session Layer
FIX 5.0 uses FIXT 1.1 as its transport/session layer. Session-level messages (Logon, Logout, Heartbeat, TestRequest, ResendRequest, SequenceReset, Reject) use BeginString=FIXT.1.1 and are functionally identical to FIX 4.4 with one key addition: application version negotiation during Logon.
Logon (MsgType = A)
Client → Server
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | A |
| 49 | SenderCompID | Yes | Your assigned sender ID |
| 56 | TargetCompID | Yes | Brokeret's target ID |
| 34 | MsgSeqNum | Yes | Expected: 1 for new session |
| 52 | SendingTime | Yes | UTC timestamp |
| 98 | EncryptMethod | Yes | 0 (None) |
| 108 | HeartBtInt | Yes | Heartbeat interval in seconds (recommended: 30) |
| 553 | Username | No | Login username (if required) |
| 554 | Password | Yes | Authentication password |
| 141 | ResetSeqNumFlag | No | Y to reset sequence numbers |
| 1137 | DefaultApplVerID | Yes | Default application version: 9 (FIX 5.0 SP2) |
Example
8=FIXT.1.1|9=138|35=A|49=CLIENT1|56=BROKERET|34=1|52=20260312-14:30:00.000|98=0|108=30|553=client1|554=MyP@ssw0rd|141=Y|1137=9|10=201|
Server → Client (Acknowledgment)
| Tag | Field | Description |
|---|---|---|
| 8 | BeginString | FIXT.1.1 |
| 35 | MsgType | A |
| 49 | SenderCompID | BROKERET |
| 56 | TargetCompID | Your SenderCompID |
| 108 | HeartBtInt | Confirmed heartbeat interval |
| 1137 | DefaultApplVerID | Confirmed application version |
Version Negotiation
If the server does not support the requested DefaultApplVerID, it may:
- Accept the Logon with a different
DefaultApplVerIDin its response - Reject the Logon with a Logout message explaining the unsupported version
The client must check the returned DefaultApplVerID and adapt accordingly.
Logon Failure
Same as FIX 4.4 — server sends Logout (5) with rejection reason:
8=FIXT.1.1|9=84|35=5|49=BROKERET|56=CLIENT1|34=1|52=20260312-14:30:00.500|58=Invalid credentials|10=215|
Logout (MsgType = 5)
Identical to FIX 4.4. See the FIX 4.4 Session Management for details.
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | 5 |
| 58 | Text | No | Reason for logout |
Heartbeat (MsgType = 0)
Identical to FIX 4.4. Both sides send heartbeats at the agreed interval.
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | 0 |
| 112 | TestReqID | Conditional | Required if responding to a TestRequest |
TestRequest (MsgType = 1)
Identical to FIX 4.4.
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | 1 |
| 112 | TestReqID | Yes | Unique identifier (echoed back in Heartbeat) |
ResendRequest (MsgType = 2)
Identical to FIX 4.4.
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | 2 |
| 7 | BeginSeqNo | Yes | First sequence number to resend |
| 16 | EndSeqNo | Yes | Last sequence number (0 = all subsequent) |
SequenceReset (MsgType = 4)
Identical to FIX 4.4. Both GapFill and Reset modes supported.
| Tag | Field | Required | Description |
|---|---|---|---|
| 8 | BeginString | Yes | FIXT.1.1 |
| 35 | MsgType | Yes | 4 |
| 123 | GapFillFlag | No | Y for GapFill mode |
| 36 | NewSeqNo | Yes | New expected sequence number |
Reject (MsgType = 3)
Session-level rejection. Identical to FIX 4.4 with the same reason codes.
| Tag | Field | Description |
|---|---|---|
| 8 | BeginString | FIXT.1.1 |
| 35 | MsgType | 3 |
| 45 | RefSeqNum | Sequence number of the rejected message |
| 371 | RefTagID | Tag causing the rejection |
| 372 | RefMsgType | MsgType of the rejected message |
| 373 | SessionRejectReason | Reason code (same codes as FIX 4.4) |
| 58 | Text | Human-readable description |
Per-Message Application Version Override
In FIXT 1.1, individual application messages can override the default application version using Tag 1128 (ApplVerID):
8=FIXT.1.1|9=160|35=D|49=CLIENT1|56=BROKERET|34=5|1128=6|...
This sends a NewOrderSingle using FIX 4.4 application semantics while maintaining the FIXT 1.1 session. This is rarely needed but useful for mixed-version environments.
Sequence Number Management
Same rules as FIX 4.4:
- Persist sequence numbers to disk
- Use
ResetSeqNumFlag=Yon Logon only when agreed with Brokeret - Daily sequence reset at 00:00 UTC
Connection Recovery
Same procedure as FIX 4.4:
- Reconnect with the same
SenderCompIDandTargetCompID - Send Logon with next expected outgoing sequence number and
DefaultApplVerID - Handle ResendRequests for any gaps
- For a clean start, use
ResetSeqNumFlag=Y
Next Steps
- Market Data — Subscribe to streaming quotes
- Order Execution — Submit and manage orders