Skip to main content

FIX Gateway Overview

Senticore exposes a FIX gateway for institutional clients, algorithmic traders, and OMS integrations. In the private beta, FIX is a separate TCP listener, not an HTTPS route under api.sentico-labs.xyz.

Supported dialects​

DialectStatus
FIX 4.4Implemented in the current gateway
Senticore extensionsImplemented where documented below

Session structure​

SessionDirectionPurpose
Order EntryClient to serverNew orders, cancels, cancel-replace
Order StatusClient to serverSingle-order and mass-status queries
Drop CopyServer to clientExecution report stream for downstream systems

Connection​

EnvironmentEndpoint
Production (private-beta access)Direct TCP/TLS at fix.sentico-labs.xyz:9878 with TLS SNI fix.sentico-labs.xyz, a DNS-only record. Confirm host, port and SNI from the connectivity bundle before connecting.
Sandbox (launching)Direct TCP/TLS at fix.sentico-sandbox.xyz:9878, TLS SNI fix.sentico-sandbox.xyz. Same port, same FIX 4.4 dictionary, same Logon construction as production; separate credentials. See Sandbox.

Cloudflare HTTPS routing does not proxy raw FIX/TCP unless a separate TCP proxy such as Cloudflare Spectrum, a TCP load balancer, or a DNS-only direct listener is configured. Do not assume https://api.sentico-labs.xyz or a Cloudflare-proxied api.sentico-labs.xyz:9878 connection can be reused as a FIX endpoint.

Read GET /api/v1/bsl/connectivity or GET /api/v1/fix/connectivity before connecting. The unauthenticated response gives the public contract; an authenticated institutional_agent HMAC request also returns the account, agent, scopes, and recommended SenderCompID values. Production connectivity uses the DNS-only direct host from the bundle; use that host, port, and TLS SNI exactly as returned.

Authentication​

FIX Logon uses the same HMAC credential family as durable API and BSL agents, but the credential should be issued to the business-line institutional_agent in private beta:

FIX tagMeaning
1Account address
49Client SenderCompID
56Senticore TargetCompID
57Session scope, for example order_entry or drop_copy
553API key id
554<api_secret>:<api_passphrase>

Ed25519 machine credentials are HTTP-only and are not accepted for FIX Logon. Create institutional_agent HMAC credentials through the wallet-authorized API Agents flow.

FIX does not use the optional BSL signed-submit lane key. A client can derive its FIX bundle self-service after creating an institutional_agent: use TargetCompID(56)=SENTICORE, the bundle's stable SenderCompID(49), the desired scope in TargetSubID(57), account in Account(1), API key id in Username(553), and <api_secret>:<api_passphrase> in Password(554).

See FIX Session.

TargetSubID(57) is a session label, not a permission boundary

Order entry is authorized by the credential's agent scopes (trade, cancel, drop_copy), not by the order_entry / drop_copy value in TargetSubID(57). A session logged on with 57=drop_copy whose credential carries trade scope can still send NewOrderSingle. To run a genuinely read-only drop-copy session, issue it a separate institutional_agent credential with only read and drop_copy scopes.

Measured by an external market maker, 2026-09-13

From a client in Vienna with a 29.5 ms network round trip, NewOrderSingle → ExecutionReport took 29.9 ms and OrderCancelRequest → ExecutionReport 29.7 ms. This is one client's measurement, not a guarantee. Two things a FIX client must handle: ClOrdIDs are remembered across sessions (a counter that restarts at 1 is rejected as duplicate), and a session-level Reject (35=3) references RefSeqNum(45), not the ClOrdID, so keep an outbound sequence-to-ClOrdID map.

Supported messages​

Inbound​

MsgTypeDescription
ALogon
0Heartbeat
1TestRequest
2ResendRequest
4SequenceReset
5Logout
DNewOrderSingle
HOrderStatusRequest
FOrderCancelRequest
GOrderCancelReplaceRequest
qOrderMassCancelRequest
AFOrderMassStatusRequest

Outbound​

MsgTypeDescription
8ExecutionReport
9OrderCancelReject
rOrderMassCancelReport
jBusinessMessageReject

Order types​

The current FIX gateway supports:

  • Market and limit orders
  • Time-in-force mapping for GTC/default, IOC, and FOK
  • Prediction-market book selection through Senticore tag 9100 (YES or NO)
  • Stable outbound admission-reject codes through Senticore tag 9101 (103 trading halted, 104 ledger degraded); standard OrdRejReason(103) remains 99 (Other) for these Senticore-specific reasons
  • Self-trade-prevention override through Senticore tag 7928
  • Cancel, cancel-replace, single order status, mass status, and mass cancel

NewOrderSingle and cancel-replace return a synchronous PendingNew ExecutionReport (35=8, 150=A, 39=A); cancels return 150=4/39=4. Real fills and terminal states arrive asynchronously on the drop-copy stream. FIX uses session/agent (HMAC) authentication, and submitted actions carry a placeholder signature rather than a per-message client crypto signature.

OrderMassStatusRequest(AF) emits ExecutionReports for matching open orders. If the request is valid but no open orders match, the gateway returns a terminal BusinessMessageReject(35=j) with RefMsgType(372)=AF and a no open orders text. Clients should treat that as a completed empty mass status response, not as a socket timeout.

Current conformance status​

The current private-beta gateway has liveness, strict BodyLength/Checksum framing, malformed-frame Rejects, sequence persistence, resend replay, single-session fencing, rate limits, duplicate ClOrdID rejection, atomic cancel-replace, mass cancel, and TLS fail-closed guards in protected environments.

Execution stream reports include CumQty(14), LeavesQty(151), LastQty(32), Price(44), and AvgPx(6) when supplied by the hotpath result. Heartbeats sent in response to TestRequest(35=1) echo TestReqID(112).

Known private-beta limits:

  • Repeating groups such as NewOrderList and Party groups are not implemented.
  • Outbound sequence persistence is synchronous for stronger replay semantics; async batching is a later throughput optimization.
  • Order status snapshots enrich AvgPx(6) from persisted execution-stream history when available; they report 0 when no fill-average history remains for that order.
  • Server TLS is enforced in guarded environments; mutual TLS is available only when a client CA bundle is provisioned.
  • External QuickFIX certification is still pending.

Why FIX​

BenefitWhy it matters
OMS integrationInstitutions can connect existing trading infrastructure
Deterministic session stateSequence numbers and gap recovery are built in
Lower overhead than JSONTag-value messages avoid JSON parsing cost
Existing toolingQuant desks, OMS vendors and broker systems already ship FIX 4.4 engines

Next​