Skip to main content

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:

Basic workflow

  1. Connect — Open a TCP connection to the test or live environment.
  2. Logon — Authenticate and open a FIX session.
  3. Heartbeat — Keep the connection alive with periodic heartbeat messages.
  4. Order flow — Send order requests such as NewOrderSingle and receive execution reports.
  5. 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

Order entry live environment
tcp://fix-oe.bitvavo.com:8001

Test environment

Order entry 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.
warning

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.

See also