Introduction
Financial Information eXchange (FIX) is a standard protocol for entering orders, managing positions, and receiving trade confirmations. Institutional traders and market makers use it for high-volume, low-latency order execution. FIX defines deterministic message formats, strict sequencing, replay, and session control.
Bitvavo uses FIX protocol version 4.4 with custom tags to support additional features.
For the Bitvavo FIX v4.4 contract, download the FIX API XML specification.
Before you start
Before you start integrating, make sure you have:
- Signed up for a Bitvavo account
- Enabled two-factor authentication
- Created an API key and secret
- Contacted Bitvavo to enable FIX API access on your account
Basic workflow
- Connect — Open a TCP connection to the test or live environment.
- Logon — Authenticate and open a FIX session.
- Heartbeat — Keep the connection alive with periodic heartbeat messages.
- Order flow — Send order requests such as NewOrderSingle and receive execution reports.
- Logout — Close the FIX session and disconnect.
Authentication
Open a TCP connection to the host and port for your environment using one of the endpoints below.
Live environment
tcp://fix-oe.bitvavo.com:8001
Test environment
tcp://connection.bitvavo-uat.com:8001
Start the FIX session
After you open the TCP connection, send a Logon message (35=A) as your first message.
Set at least these fields in your Logon. Use the same procedure for test and live. For every field, see Logon (35=A).
553(Username): Set to your FIX API key. For test, use the UAT API key from Bitvavo for test. For live, use the API key you created in your dashboard for production.554(Password): Set to the Hex-encoded HMAC-SHA256 signature from your API secret.
Set 49 (SenderCompID) and 56 (TargetCompID) correctly in every FIX message. For details, see Standard header.
Features
The Bitvavo FIX API also supports the following custom features:
Cancel on disconnect
You can use Cancel on disconnect to automatically cancel your open orders if there is no heartbeat received within the specified interval.
This prevents orders remaining open and being filled at unfavorable prices while you are disconnected. To enable this, set the EnableCOD (5001) tag to Y in your Logon message.
Limitations
In every FIX session, we use the MsSeqNo (34) tag to track the sequence number of messages. This helps detect gaps in updates or duplicate messages.
In the UAT environment, the maximum value for the MsSeqNo is 200000000. Before you reach it, you need to send a new Logon message with ResetSeqNumFlag (141) set to Yes.