Skip to content

FIX 4.4: Heartbeat and Test Request

The current FIX server uses standard FIX session-level keepalive messages handled by QuickFIX:

  • Heartbeat (MsgType = 0)
  • Test Request (MsgType = 1)

Heartbeat (MsgType = 0)

Heartbeat confirms that the FIX session is alive.

Example

8=FIX.4.4|9=49|35=0|34=10|49=SERVER|52=20260408-20:40:00.000|56=CLIENT_1|10=123|

Notes

  • heartbeat interval is negotiated during Logon
  • current server config uses 108=30 by default
  • heartbeats are handled by QuickFIX automatically

Test Request (MsgType = 1)

Test Request is used when one side wants an immediate liveness check.

Example

8=FIX.4.4|9=66|35=1|34=11|49=SERVER|52=20260408-20:40:10.000|56=CLIENT_1|112=PING1|10=101|

Response

The peer replies with Heartbeat (35=0) and echoes 112=TestReqID.


Current Server Behaviour

  • QuickFIX handles incoming and outgoing heartbeats
  • the Node.js smoke client also auto-replies to Test Request
  • these messages do not go through trading business routing

Practical Recommendation

Client implementations should treat session-level messages as mandatory transport mechanics and let the FIX engine handle them automatically whenever possible.