Fix Trade API

Access

Summary
Page describes Trade FIX API protocol.
API is based on FIX.4.2 specification.
FIX dictionary: fix42-trade-api.xml

Messages Throttling
Client is not allowed to exceed N incoming messages per second.
Exceeding messages will be rejected with BusinessMessageReject.

If limit is exceeded M times per K seconds:
Session will be logged out.
All client's orders will be canceled.
Comp Id will be deactivated.

Message Structure
All messages have same structure: Header, Body, Trailer.

Header
Header structure is same for all messages.
Tag
Field
Type
Required
Notes
8
BeginString
String
Y
FIX.4.2
9
BodyLength
int
Y

35
MsgType
String
Y

49
SenderCompID
String
Y

56
TargetCompID
String
Y

34
ContractMultiplier
int
Y

52
SendingTime
UTCTimestamp
N

Body
Body structure depends on message type.

Trailer
Trailer structure is same for all messages.
Tag
Field
Type
Required
10
CheckSum
String
Y

Messages

NewOrderSingle
MsgType = D
Tag
Field
Type
Required
Valid Values
11
ClOrdID
String
Y
Unique for specific Comp ID
21
HandlInst
char
Y
2 = Automated public

110
MinQty
Qty
N

55
Symbol
String
Y

54
Side
char
Y
1 = Buy
2 = Sell
60
TransactTime
UTCTimestamp
Y

38
OrderQty
Qty
Y

40
OrdType
char
Y
2 = Limit
44
Price
Price
Y

59
TimeInForce
char
N
1 = Good till Cancel (GTC)
58
Text
String
N

ExecutionReport
MsgType = 8
Tag
Field
Type
Required
Valid Values
37
OrderID
String
Y
Unique
11
ClOrdID
String
Y
41
OrigClOrdID
String
N

17
ExecID
String
Y
Unique
20
ExecTransType
char
Y
0 = New
150
ExecType
UTCTimestamp
Y
0 = New
1 = Partial fill
2 = Fill
3 = Done for day
4 = Canceled
8 = Rejected
C = Expired
39
OrdStatus
Qty
Y
0 = New
1 = Partial fill
2 = Fill
3 = Done for day
4 = Canceled
8 = Rejected
C = Expired
03
OrdRejReason
int
N
1 = Unknown symbol
2 = Exchange closed
6 = Duplicate Order
55
Symbol
String
Y

54
Side
char
Y

38
OrderQty
Qty
Y

32
LastShares
Qty
Y

31
LastPx
Price
Y

151
LeavesQty
Qty
Y

14
CumQty
Qty
Y

6
AvgPx
Price
Y

60
TransactTime
UTCTimestamp
Y

58
Text
String
N

OrderCancelReplaceRequest
MsgType = G
Tag
Field
Type
Required
11
ClOrdID
String
Y
41
OrigClOrdID
String
Y
55
Symbol
String
Y
54
Side
char
Y
60
TransactTime
UTCTimestamp
Y
38
OrderQty
Qty
Y
58
Text
String
N
OrderCancelRequest
MsgType = F
Tag
Field
Type
Required
11
ClOrdID
String
Y
41
OrigClOrdID
String
Y
55
Symbol
String
Y
54
Side
char
Y
60
TransactTime
UTCTimestamp
Y
38
OrderQty
Qty
Y
58
Text
String
N
OrderCancelRequest
MsgType = 9
Tag
Field
Type
Required
Valid Values
37
OrderID
String
Y

11
ClOrdID
String
Y
41
OrigClOrdID
String
N

39
ExecID
char
Y
8 = Rejected
60
ExecTransType
UTCTimestamp
Y

434
ExecType
Qty
Y
1 = OrderCancelRequest
2 - OrderCancelReplaceRequest
102
OrdStatus
int
Y
0 - Too late
1 - Unknown order
2 - Broker option
58
OrdRejReason
String
N

Reject
MsgType = 3
Tag
Field
Type
Required
45
RefSeqNum
int
Y
371
RefTagId
int
N
372
RefMsgType
String
N
373
SessionRejectReason
int
N
58
Text
String
N
R
‍‍‍
MsgType = 2
Tag
Field
Type
Required
7
BeginSeqNo
int
Y
16
EndSeqNo
int
Y
Heartbeat
MsgType = 0
Empty message