Skip to main content

FIX Gateway Overview

Senticore exposes a FIX gateway for institutional clients, algorithmic traders, and OMS integrations. In the 0.1.3 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
Private betaProvisioned TCP/TLS endpoint from onboarding. Current live ops exposes direct TCP/TLS at fix.sentico-labs.xyz:9878 with TLS SNI fix.sentico-labs.xyz when FIX is enabled.
MainnetNot public yet

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.

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)
  • 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.

0.1.3 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
Industry standardQuant desks and broker systems already support FIX

Next