Session

Summary

Generic header and trailer fields

List of administrative messages

Standard Header

Unless marked otherwise every message sent or received must begin with those fields

TagField nameReq'dData TypeComments
8BeginStringYstringIdentity begining of new message and protocol version. Unless discussed otherwise should be FIX.4.4
9BodyLengthYlengthMessage length (in bytes), forward to the CheckSum field
35MsgTypeYstringDefine message type
49SenderCompIDYStringAssigned value used to identify client sending messages. Provided by TDX.
56TargetCompIDYStringAssigned value used to identify receiving party. Provided by TDX.
34MsgSeqNumYintMessage sequence number

Standard Trailer

Unless marked otherwise every message sent or received must end with those fields

TagField nameReq'dData TypeComments
10ChecksumYStringThree 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.

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 0
112TestReqIDCstringRequested when heartbeat is the result of a test request message
Standard TrailerY

Test Request

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 1
112TestReqIDYstringA unique identifier to identify the expected corresponding heartbeat
Standard TrailerY

Logon

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = A
98EncryptMethodYcharAlways 0
108HeartbtIntYintHeart beat interval in seconds
141ResetSeqNumFlagNbooleanIndicates both sides of a FIX session should reset seq numbers.
Valid values:
Y = Yes, reset sequence numbers
N = No
553UsernameYstringusername (provided by TDX)
554PasswordYstringpassword (provided by TDX)
Standard TrailerY

Logout

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 5
58TextNStringReason for logout
Standard TrailerY

Resend request

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 2
7BeginSeqNoYSeqNumMessage sequence number of first message in range to be resent
16EndSeqNoYSeqNumMessage 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 TrailerY

Reject

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 3
45RefSeqNumYSeqNumMsgSeqNum of rejected message
371RefTagIDNintThe tag number of the FIX field being referenced.
372RefMsgTypeNStringThe MsgType of the FIX message being referenced.
373SessionRejectReasonNintCode to identify reason for a session-level
Standard TrailerY

Sequence reset

TagField nameReq'dData TypeComments
Standard HeaderYMsgType = 4
123GapFillFlagNbooleanIndicates that the Sequence Reset message is replacing administrative or application messages which will not be resent.
36NewSeqNoYSeqNumNew sequence number
Standard TrailerY