Skip to content

Session Messages

Session messages maintain any live FIX connection with the xPro FIX server, including market data sessions.

All FIX messages must begin with a Standard Header.

TagNameReq’dDatatypeDescription
8BeginStringYStringMarks the start of a message and indicates FIX version (FIX.4.4). Always the first field.
9BodyLengthYintAutomatically computed message length in bytes. Always the second field.
35MsgTypeYStringThe message type. See Supported Message Types. Always the third field.
34MsgSeqNumYintMessage sequence number, incremented by 1 for each consecutive message.
49SenderCompIDYStringXPRO-supplied identifier of the client sending requests to the FIX server.
52SendingTimeYTimestampDate/time the message was sent, UTC with milliseconds: YYYYMMDD-HH:MM:SS.sss.
56TargetCompIDYStringXPRO-supplied identifier of the server receiving client messages.
TagNameReq’dDatatypeDescription
10CheckSumYintThree-digit simple checksum indicating the end of a message. Always the last field.
TypeNameDirectionCategory
ALogonClient → XPROSession
0HeartbeatClient ↔ XPROSession
1Test RequestClient ↔ XPROSession
3RejectClient ← XPROSession
4Sequence ResetClient ↔ XPROSession
5LogoutClient ↔ XPROSession
VMarket Data RequestClient → XPROMarketData
WMarket Data — Snapshot/Full RefreshClient ← XPROMarketData
XMarket Data — Incremental RefreshClient ← XPROMarketData
YMarket Data Request RejectClient ← XPROMarketData
jBusiness RejectClient ← XPROMarketData

Sent by the client to initiate a FIX session. Must be the first message in each connection. Credentials are provided by XBTFX upon account setup.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = A
1AccountYStringXPRO-supplied account identifier, provided by XBTFX.
98EncryptMethodYintMessage encryption method. Must always be 0 (no encryption).
108HeartBtIntYintHeartbeat interval in seconds.
141ResetSeqNumFlagNBooleanIndicates whether both parties should reset sequence numbers.
553UsernameYStringClient username, as provided by XBTFX.
554PasswordYStringClient password, as provided by XBTFX.
Standard TrailerY

Request (Client → XPRO):

8=FIX.4.4^9=117^35=A^1=68a4446ac84827ff5cd35c74^34=1^52=20231218-07:59:06.000^49=sender_xpro_trading^56=target_xpro_trading^554=password^553=username^98=0^108=30^10=117^

Response (XPRO → Client):

8=FIX.4.4^9=93^35=A^1=68a4446ac84827ff5cd35c74^34=225^49=target_xpro_trading^52=20231218-07:59:06.655^56=sender_xpro_trading^98=0^108=30^10=054^

Sent back and forth between the FIX server and client to check connection status and in response to Test Request messages.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = 0
112TestReqIDYStringIdentifier of the Test Request this Heartbeat is responding to.
Standard TrailerY
8=FIX.4.4^9=79^35=0^34=2^52=20231218-07:59:36.000^49=sender_xpro_trading^56=target_xpro_trading^10=156^

Sent back and forth between the FIX server and client in response to Heartbeat messages as a connectivity check.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = 1
112TestReqIDNStringIdentifier of a Heartbeat this Test Request is responding to.
Standard TrailerY
8=FIX.4.4^9=87^35=1^34=137^52=20231218-10:12:38.000^49=sender_xpro_trading^56=target_xpro_trading^112=2^10=250^

Sent by the FIX server upon receiving a malformed message. The reason is specified in the <373> SessionRejectReason field.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = 3
45RefSeqNumYintSequence number of the rejected message (<34> MsgSeqNum).
371RefTagIDNintTag number of the field that caused rejection.
372RefMsgTypeNintType of the rejected message (<35> MsgType).
373SessionRejectReasonNintReason the message was rejected. See Reject reasons.
58TextNStringDetailed information about the rejection reason.
Standard TrailerY
8=FIX.4.4^9=88^35=3^34=193^52=20231219-22:41:16.000^49=Q005^56=XCD197^45=18^371=12^372=12^373=1^58=135^10=126^
CodeMeaning
0Invalid tag number
1Required tag missing
2Tag not defined for this message type
3Tag undefined
4Tag has no value
5Value out of range
6Incorrect value data format
7Decryption issue
8Signature problem
9CompID issue
10SendingTime accuracy issue
11Invalid MsgType
12XML validation error
13Duplicate tag
14Tag not in required order
15Wrong repeating group order
16Incorrect NumInGroup count
17SOH character in non-Data field
99Other (unspecified)

Sent by the client or FIX server to indicate the sequence number of the next message. Used to recover from a disconnect where messages were lost or resending is undesirable.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = 4
123GapFillFlagNBooleanY — Gap fill: MsgSeqNum marks start of gap fill range. N — Sequence reset: MsgSeqNum ignored. Disaster recovery only.
36NewSeqNoYintThe new sequence number.
Standard TrailerY
8=FIX.4.4^9=90^35=4^34=6^49=target_xpro_trading^52=20231219-21:11:38.578^56=sender_xpro_trading^123=Y^36=8^10=176^

Sent by the client or FIX server to terminate a session. The reason may be specified in the <58> Text field.

TagNameReq’dDatatypeDescription
Standard HeaderYMsgType = 5
58TextNStringDetailed information about the reason for logging out.
Standard TrailerY

Request (Client → XPRO):

8=FIX.4.4^9=89^35=5^34=5^52=20231218-13:40:48.000^49=sender_xpro_trading^56=target_xpro_trading^58=ST1234^10=183^

Response (XPRO → Client):

8=FIX.4.4^9=81^35=5^34=748^49=target_xpro_trading^52=20231218-13:40:49.016^56=sender_xpro_trading^10=009^