Tools

FIX message lab

Compose a Logon, order, cancel, status or market-data request with the platform's CompIDs and custom tags, copy it with real SOH separators, or paste a message from your log and check its BodyLength and CheckSum.

Runs in your browser - no session is opened, nothing is sent

Session header

K + the id of your Trading API key
As shown in your broker's API access panel

Logon (A)

Heartbeat interval, 5 - 120 s
Your API key with the fix scope
Logon (A) ready13 tags · 9=91 · 10=158
BodyLength (9)
91 bytes - everything after 9=… up to and including the SOH before 10=
CheckSum (10)
158 - sum of every byte before 10=, modulo 256, three digits
Message (| shown for SOH)
8=FIX.4.4|9=91|35=A|49=K12|56=OCTOLIT|57=TRADE|34=1|52=20261111-09:30:00.000|98=0|108=30|141=Y|554=qk_...|10=158|
TagNameValue
8BeginStringFIX.4.4
9BodyLength91
35MsgTypeA Logon
49SenderCompIDK12
56TargetCompIDOCTOLIT
57TargetSubIDTRADE
34MsgSeqNum1
52SendingTime20261111-09:30:00.000
98EncryptMethod0 None
108HeartBtInt30
141ResetSeqNumFlagY Reset both sides
554Passwordqk_...
10CheckSum158

#How it works

  • Fields are written as tag=value followed by SOH (byte 0x01); the page shows | instead so you can read it. “Copy with SOH” gives the bytes a FIX engine expects.
  • BodyLength (9) counts every byte after the SOH that ends 9=… up to and including the SOH before 10=.
  • CheckSum (10) is the sum of every byte before 10= modulo 256, printed with three digits.
  • Header order is 8 9 35 49 56 57 34 52; SenderCompID is K<key id>, TargetCompID is the CompID shown in your broker's API access panel (OCTOLIT here is a placeholder),TargetSubID picks the QUOTE or TRADE session.
  • Custom tags: 9101 stop loss, 9102 take profit, 9103 leverage, 721 position id.
Reading logs
Many engines log with | or ^A in place of SOH - paste them as they are. Both are counted as one byte, so a correct message verifies either way.

Session rules, message tables, reject reasons and limits: FIX 4.4 reference.