ZagTrader

FIX Message Parser and Decoder

New: the FIX log analyzer charts message rates, order outcomes, fill and reject rates, latency and session health for a whole log. Switch to Analytics below, or try the demo log.

A Free Developer Tool from ZagTrader

Decode FIX messages and log files, check BodyLength, CheckSum and the FIX dictionary, follow each order from New to Filled, and analyze a whole log: message rates, order outcomes, fill and reject rates, latency and session health.

Your data is safe. All processing happens entirely in your browser and no data is ever transmitted to our servers.

Delimiters: SOH, |, ^, ;, <SOH>, [SOH], \x01, ^A or spaces. One or many messages per line, with or without a log timestamp. Press Ctrl+Enter to process. You can also open or drop .log, .txt, .fix, .gz and .zip files; they are read in your browser.

The log is stored in the part of the link after #. Browsers never send that part to a web server, so the log does not reach ZagTrader or anyone else unless you share the link.
Replaces CompIDs, accounts, order and execution IDs, party IDs, usernames, passwords and free text (tags 1, 11, 17, 19, 37, 41, 49, 50, 56, 57, 58, 76, 79, 91, 96, 109, 115, 116, 128, 129, 142, 143, 144, 145, 198, 355, 448, 523, 526, 527, 553, 554, 583, 660, 757, 880, 925, 1175, 1328, 1402, 1404, 1664, 1691, 2392) with placeholders such as COMP1 or CLORD2 in the share link, CSV and JSON. The same value always gets the same placeholder, and BodyLength and CheckSum are recalculated where they were correct.
Log times without an offset are read as UTC before they are converted.

Timeline

Free text or tag=value; several terms must all match. Tag names work too, such as ClOrdID=ORD-1001.

Paste a FIX log, open or drop a log file, or load the sample data.

Details

Select a message in the timeline to see its fields.

How to Use This FIX Message Decoder

  1. Paste your log: copy raw FIX messages or a FIX log, one message or many, into the box above.
  2. Process: press Process and the parser splits the log into messages.
  3. Read the timeline: every message appears in order with its direction, time and type. Select one to open it.
  4. Inspect the details: each tag is shown with its name, its value and what the value means, with checks on length, checksum and sequence numbers.

Understanding the FIX Protocol

The Financial Information eXchange (FIX) protocol is the messaging standard that brokers, banks, exchanges and investment managers use to send orders, executions, market data and post-trade messages to each other electronically.

Message structure

A FIX message is a sequence of tag=value pairs separated by the Start of Header (SOH) character, ASCII 0x01. Logs often print SOH as | or ^ so it can be read. Each tag is a number that stands for one field.

Header, body and trailer

  • Header: starts every message, with 8=BeginString (the FIX version), 9=BodyLength and 35=MsgType, plus the sender, target, sequence number and sending time.
  • Body: the business fields, which depend on the message type.
  • Trailer: ends every message with 10=CheckSum, used to detect a damaged message.

Common message types

  • 35=A Logon: opens a FIX session.
  • 35=0 Heartbeat: keeps the session alive.
  • 35=D New Order Single: sends a new order.
  • 35=8 Execution Report: confirms an order is new, filled, cancelled or rejected.
  • 35=5 Logout: closes the session.

All FIX message types · All FIX tags

Common FIX Tags

Frequently Asked Questions

How do I decode a FIX message?+

Paste one or more FIX messages or a FIX log into the box above and press Process. Each message appears in the timeline; select one to see every tag with its name, its value and what the value means.

Which delimiters and log formats does the parser accept?+

It reads messages separated by the SOH character (ASCII 0x01) and the printable forms used in logs: pipe (|), caret (^), semicolon, <SOH> and spaces. Lines can carry a log timestamp in front of the message or be raw FIX.

Which FIX versions are supported?+

FIX 4.0 to FIX 4.4 and FIX 5.0 SP2 (FIXT.1.1 sessions). Tag and value names come from the standard FIX data dictionaries.

What does tag 35 (MsgType) mean?+

Tag 35 says what kind of message it is: for example 35=D is New Order Single, 35=8 is Execution Report, 35=A is Logon and 35=0 is Heartbeat. See the full list on the FIX message types page.

Does it check BodyLength and CheckSum?+

Yes. The parser recalculates BodyLength (tag 9) and CheckSum (tag 10) for each message and shows whether they match, which helps when a counterparty rejects a message as garbled.

Is my data sent anywhere?+

No. Parsing runs entirely in your browser and nothing you paste is sent to ZagTrader or anyone else. A share link stores the messages in the part of the URL after #, which browsers do not send to servers.

Is the FIX parser free?+

Yes. ZagTrader provides it free for the trading and FIX developer community, with no sign-up and no usage limits.

Can it analyze a whole FIX log?+

Yes. Switch to the Analytics view to see message rates, order outcomes, fill, reject and cancel rates, latency percentiles, ranked reject reasons and session health for the whole log. Click any bar to see those messages in the timeline. It runs in your browser like the parser.

Can my FIX engine send a log to it?+

Yes. An application can open the parser and pass a log to it inside the browser, so nothing is uploaded, or POST a log to the analysis API and get the statistics back as JSON, HTML or text. Both are described on the API page.

Who is ZagTrader?+

ZagTrader is a capital markets software company. Its front-to-back platform gives brokers, banks, exchanges, custodians, asset managers and family offices one system for trading, FIX connectivity, risk, settlement, custody, accounting and client reporting, and 100+ institutions run on ZagTrader technology.

Need FIX connectivity for your firm?

ZagTrader connects brokers, banks and exchanges over FIX from one OMS/EMS, with pre-trade risk checks and post-trade built in, and reaches 1,100+ destinations through its ZagFN network.