Docs / Takers

FIX API for your clients

Give a client or system your prices over FIX 4.4: create a FIX taker, share the connection details and what the session supports.

A FIX taker gives a client, a platform or one of your own systems your prices over FIX 4.4, with its own spreads, symbols and access rules. It is a market data session: orders are not accepted.

1. Create the taker

In Takers, add a taker. Under What connects? choose API, then FIX 4.4.

Field What to enter
Name Any unique name, such as FIX Client A
Port The first free port is filled in for you
Client SenderCompID What the client sends in tag 49, such as MD_CLIENT
Our CompID What the client sends in tag 56, such as BRIDGE_MD
Username, Password Sent by the client in tags 553 and 554. Passwords need at least 8 characters.
Allowed IPs The client's fixed IP addresses or ranges

CompIDs use visible characters without spaces, up to 64 each. The two must differ, and each pair can be used by one taker only.

Then map symbols to the taker on the Symbols page and assign it a markup profile on Markups. A FIX client can only request symbols mapped to its taker.

2. Send the client the connection guide

Open the taker's connection guide. It contains the host, port, CompIDs, credentials and symbol list for this taker, as Markdown you can copy or download. It includes the password, so share it only with the client.

Session

Setting Value
Version FIX 4.4
Transport TCP to your bridge's address and the taker's port
Sequence numbers Reset on every logon, logout and disconnect. Start at 1 and send 141=Y.
Heartbeat The client sets it in tag 108. 30 seconds works well.
Sessions One session per taker at a time

The client must send its Logon within 10 seconds of connecting.

fix
8=FIX.4.4|9=...|35=A|34=1|49=MD_CLIENT|56=BRIDGE_MD|52=20261103-09:30:00.000|98=0|108=30|141=Y|553=client_a|554=********|10=...

Subscribe to prices

Send a MarketDataRequest (35=V):

Tag Meaning Values
262 MDReqID Your id for the request Any text
263 SubscriptionRequestType What you want 1 subscribe, 0 one snapshot, 2 unsubscribe
264 MarketDepth How many levels 1 top of book, 0 full book, or a number of levels
267, 269 Entry types Send Bid and Offer. Both are always returned.
146, 55 Symbols One or more symbols
fix
35=V|262=req-1|263=1|264=1|267=2|269=0|269=1|146=2|55=EURUSD|55=XAUUSD|

Symbols match regardless of case and slashes, so eur/usd finds EURUSD, and replies use the spelling you sent. More than one level of depth is only available where depth is enabled for that security.

Prices you receive

Every price arrives as a MarketDataSnapshotFullRefresh (35=W): one straight after you subscribe, if a price exists, then one on every tick.

Tag Contents
262 Your MDReqID
55 The symbol, as you spelled it
269 0 bid, 1 offer
270 Price, at the symbol's digits, with your markup applied
271 Size. 1000000 when the source gives no volume.
273 Time of the price, UTC, HH:MM:SS.mmm
290 Level position, when you asked for depth
fix
35=W|262=req-1|55=EURUSD|268=2|269=0|270=1.08542|271=1000000|273=09:30:01.125|269=1|270=1.08545|271=1000000|273=09:30:01.125|

Errors

You see Meaning
The connection closes with no reply The IP is not allowed or is blocked, the first message was not a Logon, it came too late, or tags 49 and 56 do not match the taker
Logout with Invalid credentials Wrong username or password in 553 and 554
35=Y with Unknown or disabled symbol(s): ... A symbol is not mapped to this taker, or is disabled. The whole request is rejected.
35=j with This XiroLink feed is prices only: orders are not accepted The client sent an order message

Repeated failed sign-ins from one address block it for an hour. Unblock it under Security.

Something unclear or out of date? Email [email protected].