Session
Summary
Generic header and trailer fields
List of administrative messages
- Heartbeat (Client ↔ TDX)
- Test Request (Client ↔ TDX)
- Logon (Client → TDX)
- Logout (Client → TDX)
- Resend Request (Client ↔ TDX)
- Reject (Client ↔ TDX)
- Sequence Reset (Client ↔ TDX)
Standard Header
Unless marked otherwise every message sent or received must begin with those fields
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| 8 | BeginString | Y | string | Identity begining of new message and protocol version. Unless discussed otherwise should be FIX.4.4 |
| 9 | BodyLength | Y | length | Message length (in bytes), forward to the CheckSum field |
| 35 | MsgType | Y | string | Define message type |
| 49 | SenderCompID | Y | String | Assigned value used to identify client sending messages. Provided by TDX for Static Sessions, and free for the client to pick for Dynamic Sessions. |
| 56 | TargetCompID | Y | String | Assigned value used to identify receiving party. TDXFIX for trading and market data, OTCFIX for otc trading. |
| 34 | MsgSeqNum | Y | int | Message sequence number |
Standard Trailer
Unless marked otherwise every message sent or received must end with those fields
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| 10 | Checksum | Y | String | Three bytes, simple checksum |
Heartbeat
The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received.
When either end of a FIX connection has not sent any data for [HeartBtInt] seconds, it will transmit a Heartbeat message. When either end of the connection has not received any data for (HeartBtInt + "some reasonable transmission time") seconds, it will transmit a Test Request message. If there is still no Heartbeat message received after (HeartBtInt + "some reasonable transmission time") seconds then the connection should be considered lost and corrective action be initiated. If HeartBtInt is set to zero then no regular Heartbeat messages will be generated. Note that a Test Request message can still be sent independent of the value of the HeartBtInt, which will force a Heartbeat message.
Heartbeats issued as the result of Test Request must contain the TestReqID transmitted in the Test Request message. This is useful to verify that the Heartbeat is the result of the Test Request and not as the result of a regular timeout.
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 0 | ||
| 112 | TestReqID | C | string | Requested when heartbeat is the result of a test request message |
| Standard Trailer | Y |
Test Request
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 1 | ||
| 112 | TestReqID | Y | string | A unique identifier to identify the expected corresponding heartbeat |
| Standard Trailer | Y |
Logon
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = A | ||
| 98 | EncryptMethod | Y | char | Always 0 |
| 108 | HeartbtInt | Y | int | Heart beat interval in seconds |
| 141 | ResetSeqNumFlag | N | boolean | Indicates both sides of a FIX session should reset seq numbers. Valid values: Y = Yes, reset sequence numbers N = No |
| 553 | Username | Y | string |
|
| 554 | Password | Y | string |
|
| Standard Trailer | Y |
Logout
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 5 | ||
| 58 | Text | N | String | Reason for logout |
| Standard Trailer | Y |
Resend request
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 2 | ||
| 7 | BeginSeqNo | Y | SeqNum | Message sequence number of first message in range to be resent |
| 16 | EndSeqNo | Y | SeqNum | Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = 0 (infinity). |
| Standard Trailer | Y |
Reject
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 3 | ||
| 45 | RefSeqNum | Y | SeqNum | MsgSeqNum of rejected message |
| 371 | RefTagID | N | int | The tag number of the FIX field being referenced. |
| 372 | RefMsgType | N | String | The MsgType of the FIX message being referenced. |
| 373 | SessionRejectReason | N | int | Code to identify reason for a session-level |
| Standard Trailer | Y |
Sequence reset
| Tag | Field name | Req'd | Data Type | Comments |
|---|---|---|---|---|
| Standard Header | Y | MsgType = 4 | ||
| 123 | GapFillFlag | N | boolean | Indicates that the Sequence Reset message is replacing administrative or application messages which will not be resent. |
| 36 | NewSeqNo | Y | SeqNum | New sequence number |
| Standard Trailer | Y |
Updated 5 days ago
