Implementation guide · FIX and API Reliability
Duplicate Execution Reports: Prevent Double Booking
Prevent repeated FIX reports from double booking trades by checking agreed execution identities, event types, cumulative quantities and correction chains.
Published Updated
Published by FxTrusts, a supplier of brokerage and prop firm technology. Prepared with AI-assisted research and drafting; reviewed against the cited public sources. Examples are illustrative. Product links describe our services.
Quick answer
A repeated execution report must not create a second economic event merely because it arrived again. Determine identity under the counterparty's rules, inspect the report's event type, and reconcile cumulative quantities. A replayed fill, a new fill, a status summary and a trade correction need different processing.

Define identity at the application boundary
FIX sequence numbers identify session messages; they are not a universal trade-booking key. A business event can reappear through replay or another reporting channel. Define the scope of execution identifiers, including counterparty, account, business date or other documented dimensions, and retain the original report.
The FIX trade specification describes execution reports, correction references and fill groups. Do not assume every report is a new fill or that every dialect supplies identical fields. Some status messages carry summary information rather than a new execution. Multi-fill or fragmented reports require the documented grouping and completion rules.
Sources for this section
- FIX Latest EP284: Trade business-area specificationwww.fixtrading.org
Use quantities as an independent check
For a straightforward active order, compare the accepted order quantity with cumulative executed and remaining quantities. Also compare the latest increment with the specific reported fill, while respecting the event type. A mismatch is a review signal, not permission to manufacture a missing trade.
Terminal states and corrections can break a simplistic quantity formula or reduce a previously reported result. Keep a correction chain referencing the affected event and preserve both old and new values. The order-state specification includes these transitions. Recalculating positions from a controlled event history should reproduce the approved current state.
Sources for this section
- FIX Latest as of EP284 — Order State Changeswww.fixtrading.org
Commit once and retain the outcome
Persist the decision that an event was accepted together with the resulting business update under an appropriate transactional design. If the process records only a log message and crashes before posting, a retry may be needed; if it posts before recording identity, a retry can double book. Document this failure boundary explicitly.
The duplicate flag helps session recovery, but it is not a command to discard a message without inspection. A retransmitted event may be the first copy your application successfully processes. Conversely, a repeated economic event can require detection even outside session retransmission. Keep duplicate receipts for diagnostics while preventing repeated financial effects.
Sources for this section
- FIX Session Layer — Technical Standardwww.fixtrading.org
Worked example: 35 units, not 55
A fictional order receives fill E1 for 20 units, with cumulative quantity 20. E1 arrives again after recovery and causes no second booking. A new fill E2 adds 15, bringing cumulative quantity to 35. A later status report repeats cumulative quantity 35 and remaining quantity 65; it adds no fill. The ledger therefore contains 35 executed units. If a correction later changes E2, process that referenced correction under the agreed semantics rather than treating it as another 15-unit trade.
Implementation checklist
- Document execution-key scope and identifier reuse rules.
- Classify trade, status, correction and cancellation reports before posting.
- Make event acceptance and business updates recoverable together.
- Reconcile cumulative quantities and correction chains.
- Test a crash before posting, after posting and during replay.
Sources
These documents support the reference. Check the original publication for current requirements and the limits of its scope.
- FIX Latest EP284: Trade business-area specificationwww.fixtrading.org
- FIX Latest as of EP284 — Order State Changeswww.fixtrading.org
- FIX Session Layer — Technical Standardwww.fixtrading.org
Continue with the broader guides
Connect this reference to platform selection and the wider operating workflow.
