Session architecture
FIX sessions follow a sticky routing model:- HAProxy assigns the FIX Gateway instance with the fewest active connections on initial logon (round-robin selection).
- Stickiness at SenderCompID level — once connected, all messages from that session follow the same path: FIX Gateway → OES → Trading Engine.
- Ordering guarantee — NEW and CANCEL messages from the same session arrive at the Trading Engine in order.
Spot and Derivatives have separate trading engines. Each FIX trading session connects to the appropriate engine based on the instrument being traded.
Supported messages
Order types
All order types are handled at the Trading Engine level:
Synthetic order types (TWAP, etc.) are not yet available via FIX. They will be handled by a new Algo Engine in a future release.
Cancel on Disconnect (CoD)
Cancel on Disconnect is enabled by default on every FIX trading session. All open orders placed on the session are automatically cancelled on connection loss. CoD is configured per session by settingCancelOrdersOnDisconnect (Tag 8674) on the Logon message; no onboarding step is required. See the Logon field reference for the accepted values and their behaviour.
For manual intervention, OrderMassCancelRequest (Tag 35=q) cancels all orders immediately.
ClOrdID rules
EachClOrdID (Tag 11) must be unique within a trading session. Reuse results in rejection.
Recommended approaches:
- UUIDs
- Incrementing sequence numbers with a session prefix
ExecID (Tag 17) is derived from ClOrdID at the FIX Gateway level (base32 encoded). If ClOrdID is a UUID, only the last 12 hex characters are recoverable from the ExecID.
Self-Trade Prevention (STP)
On Spot, STP is configured at the order level via FIX Tag 7928, or at the account level usingSenderSubID (useful for brokers managing multiple sub-accounts):
On Derivatives, STP is managed at the account level via REST API.
Risk and validation layers
Orders pass through three validation layers before reaching the book:
Configurable client-side risk controls (fat-finger limits, max notional per order) are not currently offered. Contact your Account Manager for specific requirements.
Hours of operation
FIX sessions operate 24/7 with a logical session rollover every day at 22:00 UTC. The rollover lasts approximately 30 seconds. Both Trading and Market Data sequence numbers reset to0 after rollover.
Connectivity
Connections must use TCP SSL with TLS 1.3.Endpoints
FIX port allocation
WebSocket and REST share TCP 443 (SSL/HTTPS).
IP whitelisting
Before logging on, your incoming IP addresses must be whitelisted. Kraken will provide your designated CompIDs, hostname, and ports during onboarding.Message replay
FIX Gateways support standard sequence number-based replay. If a session reconnects with a lower-than-expected sequence number, the gateway replaysExecutionReports from the requested sequence number, following FIX 4.4 gap-fill and resend request semantics.
Duplicate messages (same sequence number) are handled per FIX protocol standards. If PossDupFlag (Tag 43) is set to Y, the message is treated as a possible duplicate. Messages with duplicate sequence numbers without the flag may trigger a sequence number resync.
Rate limits
FIX rate limits are at the session level for Derivatives — each FIX session has its own token bucket. For Spot, FIX shares a unified account-level bucket with WebSocket and REST. When a rate limit is reached, Kraken returns a business-level reject message on FIX. FIX sessions also include an automatic error rate safeguard: if a client generates too many errors per second, the session is automatically disconnected. The threshold can be raised on request through your Account Manager. See the rate limits guide for full details.Related guides
FIX authentication
Logon message, CompID setup, and session establishment
Colocation and connectivity
Cross-connect specs, latency tiers, and how to apply for VIP access
Choose your protocol
FIX vs WebSocket vs REST — sequencing, cancel scope, and latency
Order lifecycle
OrdStatus and ExecType values in ExecutionReport (MsgType=8)
Order amends
Queue priority rules for reduce-only vs price/size amendments
Client order IDs
ClOrdID uniqueness, ExecID derivation, and best practices