Session

Session

MESSAGE SPECIFICATION

This section details the session management messages supported by the exchange.


Logon (MsgType = A)

The Logon message (A) authenticates a user establishing a connection to a remote system.
The Logon (A) message must be the first message sent by the application requesting to initiate a FIX session.
Possible Exchange’s response messages: Logon (MsgType=A), Logout (MsgType=5) or Reject – Session Level (MsgType = 3)

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

98

EncryptMethod

Y

0 = None

Int

Method of encryption.

108

HeartBtInt

Y

>= 10

Int

Heartbeat interval in seconds.
HearbtInt must be equal to or greater than “10”.

553

Username

N

 

String

Username. Provided by the exchange.

554

Password

N

 

String

Password. Provided by the exchange.

1137

DefaultApplVerID

Y

9 = FIX50SP2

String

The default version of FIX being carried over this FIXT session.

Standard Trailer

 


Heartbeat (MsgType = 0)

The Heartbeat (0) monitors the status of the communication link and identifies when the last of a string of messages was not received.

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

112

TestReqID

C

 

String

Required if heartbeat message is generated in response to a Test Request message.
In this case, this tag must contain the TestReqID that was sent in the Test Request message.

Standard Trailer

 


Test Request (MsgType = 1)

The test request message forces a heartbeat from the opposing application.
The test request message checks sequence numbers or verifies communication line status.
The opposite application responds to the Test Request with a Heartbeat containing the TestReqID(112).

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

 Standard Header

112

TestReqID

Y

 

String

Identifier included in Test Request message to be returned in resulting Heartbeat.

Standard Trailer

 


Resend Request (MsgType = 2)

The resend request is sent by the receiving application to initiate the retransmission of messages.
This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process.

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

7

BeginSeqNo

Y

Valid sequence number for session

Int

Message sequence number of first message in range to be resent.

16

EndSeqNo

Y

 

Int

Message sequence number of last message in range to be resent.
If request is for a single message BeginSeqNo (7) = EndSeqNo (16).
If request is for all messages subsequent to a particular message, EndSeqNo = "0" (representing infinity).

Standard Trailer

 


Reject – Session Level (MsgType = 3)

The FIX Reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation.
This message will be sent by the Exchange when a session level error has occurred.

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

45

RefSeqNum

Y

 

Int

Reference message sequence number (MsgSeqNum) of rejected message.

58

Text

N

 

String

Where possible, message to explain reason for rejection.

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

0 = Invalid tag number
1 = Required tag missing
2 = Tag not defined for this message type
3 = Undefined tag
4 = Tag specified without a value
5 = Value is incorrect (out of range) for this tag
6 = Incorrect data format for value
7 = Decryption problem
8 = Signature problem
9 = CompID problem
10 = SendingTime accuracy problem
11 = Invalid MsgType
12 = XML Validation error
13 = Tag appears more than once
14 = Tag specified out of required order
15 = Repeating group fields out of order
16 = Incorrect NumInGroup count for repeating group
17 = Non “data” value includes field delimiter (SOH character)
99 = Other

Int

Code to identify reason for a session-level reject message.

The server will report the reason for rejection in all messages.

Standard Trailer

Example Test Request message:

8=FIXT.1.1|9=107|35=3|34=423|49=ROFX|52=20251007-20:21:29.922|56=Client_A|45=349|58=Required tag missing|371=16|372=2|373=1|10=250|

 


Sequence Reset (MsgType = 4)

The Sequence Reset message has two modes: Gap Fill mode and Reset mode.
Gap Fill mode is used in response to a FIX Resend Request when one or more messages must be skipped.
Reset mode involves specifying an arbitrarily higher new sequence number to be expected by the receiver of the FIX Sequence Reset message, and is used to reestablish a FIX session after an unrecoverable application failure.

Possible Exchange’s response messages: None.

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

Standard Header

36

NewSeqNo

Y

 

Int

New sequence number.
This number cannot be lower than the expected incoming sequence number of either the client or the Exchange that originally sent the resend request.

123

GapFillFlag

N

Y = Gap Fill message, MsgSeqNum field is valid
N = Sequence Reset, ignore MsgSeqNum

Boolean

Indicates that the Sequence Reset message is replacing administrative or application messages, which will not be resent.

Standard Trailer

 


Logout (MsgType = 5)

The FIX Logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange Logout messages should be interpreted as an abnormal condition.

Tag

FixName

Req

Valid Values

Data Type

Description

Tag

FixName

Req

Valid Values

Data Type

Description

 Standard Header

58

Text

N

 

String

Free format text string

1128

ApplVerID

N

9 = FIX50SP2

String

The default version of FIX used bu exchange.

1409

SessionStatus

N

0 = SESSION_ACTIVE
1 = SESSION_PASSWORD_CHANGED
2 = SESSION_PASSWORD_DUE_TO_EXPIRE
3 = NEW_SESSION_PASSWORD_DOES_NOT_COMPLY_WITH_POLICY
4 = SESSION_LOGOUT_COMPLETE
5 = INVALID_USERNAME_OR_PASSWORD
6 = ACCOUNT_LOCKED
7 = LOGONS_ARE_NOT_ALLOWED_AT_THIS_TIME
8= PASSWORD_EXPIRED"
9 = MSGSEQNUM_TOO_LOW
10 = NEXTEXPECTEDMSGSEQNUM_TOO_HIGH
50 = NOT_ALLOWED_TO_CURRENT_FIX_TYPE
51 = INVALID_IP
99 = UNKNOWN

Int

 

Standard Trailer

 


Message sequence diagram

Case successful logon

Diagram:

image-20251008-190958.png

Example messages:

#Client requesting to initiate a FIX session 8=FIXT.1.1|9=124|35=A|34=1|49=Client_A|52=20251008-17:39:29.267|56=ROFX|58=Mensajero FIX|98=0|108=30|141=Y|553=Client_A|554=Password|1137=7|10=131| #Exchange response 8=FIXT.1.1|9=80|35=A|34=1|49=ROFX|52=20251008-17:39:29.593|56=Client_A|98=0|108=30|141=Y|1137=9|10=012|

 

Case failed logon

Diagram:

image-20251008-191030.png

 

Example messages:

#Client requesting to initiate a FIX session 8=FIXT.1.1|9=121|35=A|34=1|49=Client_A|52=20251008-18:31:39.664|56=ROFX|98=0|108=30|553=Client_A|554=paword|1137=7|10=200| #Exchange denies access 8=FIXT.1.1|9=70|35=5|34=1|49=ROFX|52=20251008-18:31:39.792|56=Client_A|1128=9|1409=99|10=050| 8=FIXT.1.1|9=55|35=5|34=2|49=Client_A|52=20251008-18:31:39.755|56=ROFX|10=116|