FIX Session
FIX sessions provide deterministic ordering, liveness checks, and gap recovery for institutional integrations.
Logon
Clients establish a session with Logon (35=A). The first message on a
connection must be Logon.
Private-beta FIX uses raw TCP/TLS. For the current live endpoint, connect to
fix.sentico-labs.xyz:9878 and use TLS SNI fix.sentico-labs.xyz; do not connect to
Cloudflare-proxied HTTPS for FIX. Logon credentials are HMAC credentials issued
to a business-line institutional_agent.
Read FIX/BSL Connectivity Bundle before
connecting. It returns the direct FIX host/port, TargetCompID, and a stable
recommended SenderCompID for the authenticated institutional_agent.
| Field | FIX tag | Notes |
|---|---|---|
| BeginString | 8 | FIX.4.4 |
| MsgType | 35 | A |
| SenderCompID | 49 | Client-stable identifier. Use the bundle value such as SC-ABCDEF12-123456-OE, or another stable value you intentionally manage. |
| TargetCompID | 56 | SENTICORE unless the connectivity bundle says otherwise. |
| TargetSubID | 57 | Optional scope such as order_entry or drop_copy |
| MsgSeqNum | 34 | Starts at 1 unless reset was agreed |
| SendingTime | 52 | UTC timestamp |
| EncryptMethod | 98 | 0 over TLS |
| HeartBtInt | 108 | Negotiated heartbeat interval |
| Account | 1 | Engine account address |
| Username | 553 | API key id |
| Password | 554 | <api_secret>:<api_passphrase> |
Set ResetSeqNumFlag(141)=Y only when operations has agreed to reset the
session. Otherwise, the gateway enforces persisted inbound and outbound sequence
continuity.
The persisted FIX session is keyed by SenderCompID + TargetCompID + Account.
Changing SenderCompID creates a different session and breaks normal sequence
recovery. Use a separate SenderCompID suffix for drop-copy, for example
-DC, if order entry and drop-copy should maintain independent sequence state.
Heartbeat and liveness
The gateway sends Heartbeat (35=0) according to HeartBtInt. If either side
needs an explicit liveness check, it sends TestRequest (35=1) and expects a
Heartbeat carrying the matching TestReqID(112). The gateway echoes inbound
TestReqID(112) on its Heartbeat reply.
Sequence recovery
Clients must support:
ResendRequest(35=2) for sequence gapsSequenceReset(35=4) for administrative reset- duplicate detection through
PossDupFlag - idempotent handling of repeated
ExecutionReportmessages
The resend window is capped by FIX_RESEND_MAX_MESSAGES on the gateway.
Logout
Sessions terminate with Logout (35=5). Unclean disconnects can trigger
cancel-on-disconnect behavior when enabled for BSL/liquidity-provider accounts.