FIX Trading API

Heartbeat

Heartbeats are sent periodically to signal a connection is still active. They are sent on an interval defined by HeartBtInt in the Logon message. If an expected heartbeat is missed, a TestRequest is sent to verify the connection is still active.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = 0
112 TestReqIDString  YIdentifier in response to TestRequest ALL
Standard Trailer

Logon

Logon messages are sent to start both quote and order sessions.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = A
98EncryptMethodINTY0 = NONEALL
108HeartBtIntINTYHearbeat interval in seconds.
Default is 30.
ALL
141ResetSeqNumFlagBOOLEANN

Note: sequence numbers reset over the weekend.
Should be set to Y for Quote Session
Should generally be set to N for Order Session 
Y = YES
N = NO

ALL
553UsernameSTRINGYSaxo-supplied usernameALL
554PasswordSTRINGYSaxo-supplied passwordALL
Standard Trailer

TestRequest

TestRequests will be sent in response to missed heartbeats, and may be sent periodically by Saxo Bank. They must be responded to immediately with a Heartbeat containing the TestReqID or the session will be considered unresponsive and the connection terminated.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = 1
112 TestReqIDString  YIdentifier to be returned in resulting Heartbeat ALL
Standard Trailer

ResendRequest

ResendRequests can be issued if messages are missed and a message with a higher than expected sequence number is received, i.e. a message has been lost in transit—for example during a disconnect/reconnect.

TagField NameTypeRequiredDescriptionProducts

Standard Header, MsgType = 2

 BeginSeqNo INT YMsgSeqNum of first message in range to be resent ALL
16 EndSeqNo INT YMsgSeqNum of last message in range to be resent ALL
Standard Trailer

Reject

Rejects are sent if a corrupt or otherwise problematic message is received from the client. The tag and nature of the problem are identified in the message.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = 3
45 RefSeqNum INT YReference message sequence number ALL
371 RefTagID INT YTag of the FIX field being referenced. ALL
372 RefMsgTypeINT  YThe MsgType of the FIX message being referenced. ALL
373 SessionRejectReason  INT0 = 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
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
99 = OTHER
ALL 
58TextSTRINGYText describing reject reasonALL
Standard Trailer

SequenceReset

SequenceResets are used to reset the sender's sequence number during a session.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = 4
 43 PossDupFlag Boolean YIndicates possible retransmission of message with this sequence number
Y = YES
N = NO 
 ALL
 123 GapFillFlag  Boolean Y

Indicates that the SequenceReset is replacing administrative or application messages which will not be resent
Y = YES
N = NO 

 ALL
 36 NewSeqNo   INT YNew sequence number ALL
Standard Trailer

Logout

Logouts are sent to terminate a session.

TagField NameTypeRequiredDescriptionProducts
Standard Header, MsgType = 5
58TextSTRINGYText describing logout reasonALL
Standard Trailer