FIX API Messages

Specifications for the OANDA fxTrade and fxTrade Practice FIX Server version 2.4.x

supporting FIX Protocol versions 4.2, 4.3, and 4.4

Last updated November 2012

Message directions are stated with respect to the client. Messages travelling in the client –> OANDA direction are termed “outbound”; messages in the OANDA –> client direction are “inbound”.

Supported Messages

Session Messages

message direction description
Heartbeat <0> out/in sent automatically by an engine during times of inactivity to indicate that the connection is alive
Test Request <1> out/in sent automatically by an engine if an incoming message has not arrived within the agreed heart beat interval
Reject <3> in indicates a session error

Administrative Messages

message direction description
Logon <A> out/in initiates a FIX connection to the OANDA Server
News <B> in gives information on the server connected to
Logout <5> out/in terminates a FIX connection
Business Message Reject <j> in indicates a client message that does not meet business requirements that cannot be rejected by any other message

Application Messages

Rates Connection Messages

Market data messages are only supported on a rates connection.

message direction description
Market Data Request <V> out requests market data snapshot or subscription, or cancels existing subscription
Market Data Snapshot / Full Refresh <W> in the current market data for the requested symbols
Market Data Incremental Refresh <X> in market data updates for the requested symbols
Market Data Request Reject <Y> in indicates market data request errors

Order Connection Messages

All order-related messaging must be sent on the order connection.

message direction description
New Order Single <D> out submit a new order
Order Cancel Request <F> out cancel an existing order
Order Cancel / Replace Request <G> out modify an existing order
Order Status Request <H> out request information on an existing order
Execution Report <8> in current status of a order or order submission
Order Cancel Reject <9> in indicates Order Cancel Request <F> and Order Cancel / Replace Request <G> errors

Message Descriptions

Tags not listed in message descriptions are ignored if supplied in a request.

Header Fields
Tag Field Name Required Type / Value Description
8 BeginString Y string, “FIX.4.2” or “FIX.4.3” or “FIX.4.4” start of FIX message; must be first tag in message
9 BodyLength Y int message length in bytes, forward to checksum field; must be second field in a message
35 MsgType Y string the specific message type; must be third field in a message
49 SenderCompID Y string identifies the sender of the message; for outbound messages, the login username, inbound messages will have the value “OANDA”
56 TargetCompID Y string identifies the destination of the message; outbound messages use the value “OANDA”, inbound messages will have the login username
34 MsgSeqNum Y int message sequence number
52 SendingTime Y UTC timestamp time of message transmission in UTC; it is highly recommended the customer supply millisecond-resolution timestamps
50 SenderSubID N string for rates connections, the OANDA server will state “RATES”
57 TargetSubID N string for rates connections, all outgoing messages must state “RATES”

Trailer Fields

Tag Field Name Required Type / Value Description
10 CheckSum Y 3-digit string three byte simple checksum and subsequent SOH character serve as the end-of-message marker