Skip to main content

Derivatives FIX Session Messages

The Session protocol assures client identification, sequential request processing, session state control, and the ability to restore the session after downtime.

Session Message Types

Client and server use the following administrative/session messages:

Logon (35=A)

The Logon message initiates the connection from the client side and approves the connection if sent by the exchange.

TagNameFIX TypeReqDescription
98EncryptMethodIntYEncryption method where 0= None. Security must be guaranteed at the transport level
108HeartBtIntIntYHeartbeat interval in seconds. Valid values are between 5s and 60s—30s is recommended. The same value is used by both parties. Value is set by the initiator and echoed back by the acceptor.
141ResetSeqNumFlagBooleanNFlag used to reset the session sequence numbers and start a new session.

Use with caution, especially during a trading session as this might lead to business data loss.

  • N = Use previous sequences
  • Y = Reset sequences (start new session)
If client cannot recover previous session, start new session with 1 and set this field to Y.
553UsernameYUsername
554PasswordYPassword

Logout (35=5)

The Logout message initiates or confirms the termination of a FIX session.

TagNameFIX TypeReqDescription
58TextString (200)NLogout reason

Resend Request (35=2)

The Resend Request message can be used to recover an inbound session sequence if a message was missed.

TagNameFIX TypeReqDescription
7BeginSeqNoSeqNumYSequence number of first message in range to be resent
16EndSeqNoSeqNumYSequence number of last message in range to be resent

Sequence Reset (35=4)

The Sequence Reset message can be used in two modes:

Reset Mode

  • Reset Mode forces the counterparty to adjust inbound message sequence, GapFillFlag = "N" or omitted.

Fill Gap Mode

  • Fill Gap Mode is used during retransmission of messages missed by a client. Administrative messages and rejected business messages are not to be retransmitted. Instead a Sequence Reset message with GapFillFlag = "Y" must be used.
TagNameFIX TypeReqDescription
123GapFillFlagString (20)YFlag signalling wether to restore missed business/admin messages.

  • 123=N: (Reset Mode) Sequence was reset, counterparty must adjust inbound sequence number
  • 123=Y: (Fill Gap Mode) Missed messages (business messages) were gap-filled.
Default is 123=N. Derivatives exchange sends 35=4 without gap-filling missed business messages.
36NewSeqNoString (20)YNew adjusted sequence number

Test Request (35=1)

Test Request lets you check sequence numbers, or verify the communication line status in conjunction with a Heartbeat message.

Test Request ❮❯ Heartbeat

A connection participant receiving a Test Request message must reply with a Heartbeat message and refer to the TestReqID value of the initial message.

TagNameFIX TypeReqDescription
58TestReqIDString (20)YId sent to verify communication status. Recipient returns TestReqID in Heartbeat message

Heartbeat (35=0)

Heartbeat confirms the status of a communication line by replying to a Test Request message.

TagNameFIX TypeReqDescription
112TestReqIDString (20)YId sent in response to Test Request message, verifying communication status

Reject (35=3)

A Reject message is issued by a party if an incoming FIX message is unsupported or not property formed. Rejected messages must not be resent if a Resend Request is received; instead a SequenceReset with GapFillFlag = "Y" is expected.

TagNameFIX TypeReqDescription
45RefSeqNumSeqNumYSequence number of the rejected message
58TextString (200)YError message
373SessionRejectReasonInt (2)YSession Reject Reason Code

Was this helpful?