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 <0> 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 <108>] seconds, it will transmit a Heartbeat <0> message. When either end of the connection has not received any data for (HeartBtInt <108> + "some reasonable transmission time") seconds, it will transmit a Test Request <1> message. If there is still no Heartbeat <0> message received after (HeartBtInt <108> + "some reasonable transmission time") seconds then the connection should be considered lost and corrective action be initiated. If HeartBtInt <108> is set to zero then no regular Heartbeat <0> messages will be generated. Note that a Test Request <1> message can still be sent independent of the value of the HeartBtInt <108>, which will force a Heartbeat <0> message.
Heartbeats issued as the result of Test Request <1> must contain the TestReqID <112> transmitted in the Test Request <1> message. This is useful to verify that the Heartbeat <0> is the result of the Test Request <1> 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 | - Static Sessions : an id provided by TDX - Dynamic Sessions : the API Key generated via the TDX Client Account profile UI |
| 554 | Password | Y | string | - Static Sessions : a secret provided by TDX - Dynamic Sessions : the API Key secret obtained along with the API Key |
| 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 7 months ago
