ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

Message Diff

Visualise, segment by segment, the differences between two EDIFACT or X12 messages. Ideal to explain an integration regression or to qualify the delta between two versions of the same flow.

Compare two messages

How it works

Both messages are tokenised by the appropriate structural parser — EDIFACT (ISO 9735) or X12 (X12.5). The separators actually declared in UNA or ISA are honoured. Once segments are extracted, the engine computes the longest common subsequence (LCS) over segment tags, then derives the alignment:

  • Tag matches on both sides → segment marked equal or changed depending on element-level equality.
  • Tag present on the left only → removed.
  • Tag present on the right only → added.

For each changed segment, the affected elements are listed inline with the left value and the right value side by side. EDIFACT composites are rejoined on the actually declared component separator (: by default) before comparison: a change from 5410…123::9 to 5410…123:91:9 appears as a single element change, with both strings readable side by side.

Privacy

Known limits

  • Alignment is based on tag identity, not on business identifiers nested inside segments. Two consecutive LIN segments are matched in source order — if the second message reshuffles them, the resulting diff can look noisy. Reference-based alignment (LIN[1], LIN[2]…) is on the roadmap.
  • The LCS engine is capped at 2,000 segments per side; beyond that threshold inputs are truncated and a note is surfaced on the result.
  • cXML comparison (by XPath) and three-way mode remain on the roadmap.
  • EDIFACT — to understand the segment grammar the diff aligns against.
  • ORDERS D.96A — the reference message used in the loadable example.
  • EDIFACT Validator — shares the parser and the overall ergonomics.

Last updated: May 14, 2026