Bite Apps/SafeFIX

Bite Apps › SafeFIX › Checksum calculator

FIX checksum and BodyLength calculator

Paste one message or a whole log: every line gets the correct 9= and 10=, wrong values are flagged, a corrected copy is ready to copy or download, and each field is decoded with its FIX 4.4 name and value.

Need more than one message? SafeFIX reads entire FIX logs, explains rejects and order lifecycles, and anonymizes logs with recalculated 9 and 10 — locally.

Open SafeFIX — free, in your browser

Everything is calculated in this page — nothing is uploaded or stored.

How BodyLength (9) is calculated

BodyLength is the number of bytes after the delimiter that ends the 9= field, up to and including the delimiter just before 10=. 8=, 9= and the CheckSum field itself are not counted. Every SOH counts as one byte — so when a log shows the delimiter as | the count is the same, but ^A is two characters on screen for one byte on the wire.

8=FIX.4.4|9=58|35=0|34=216|49=CLIENT1|52=20261114-09:30:30.000|56=BROKER|10=230|
               └─────────────────── 58 bytes counted ───────────────────┘

How CheckSum (10) is calculated

Add the byte values of every character from 8= up to and including the delimiter before 10=, take the total modulo 256 and write it as exactly three digits with leading zeros (10=007, not 10=7) — the example above adds up to 10=230. Because the BodyLength digits are part of that sum, a wrong 9= usually means a wrong 10= as well — fix the length first, then the checksum.

Why a message gets “wrong checksum” or “wrong body length”

A counterparty that receives a garbled message normally ignores it or answers with a Reject (35=3); see FIX reject codes and, for sequence problems after a resend, FIX session troubleshooting.

FAQ

How do I calculate the FIX checksum?

Sum the byte values of the whole message from 8= up to and including the SOH before 10=, take the remainder modulo 256 and write it as three digits, for example 10=230.

What does BodyLength include in FIX?

All bytes after the SOH that ends the 9= field up to and including the SOH that precedes 10=. The BeginString (8), BodyLength (9) and CheckSum (10) fields are not counted.

Does the | delimiter change the checksum?

No, as long as each | stands for one SOH byte: the tool converts it back to SOH before counting. A ^A shown in a log is also treated as one SOH byte.

Is my FIX message sent anywhere?

No. The page has no network access; parsing, the calculation and the corrected output all happen in your browser.

Last updated 2026-11-14. Something wrong or missing? Email support@biteapps.cc.