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.

Test Message

The synthetic canary — a test INVOIC every 5 min to check the chain is breathing.

Problem

How to know if an EDI pipeline works when there is no real traffic — at night, weekends, after maintenance?

Forces

  • Waiting for a real message to detect an outage = unacceptable delay.
  • Component health checks do not cover end-to-end.
  • A test message must be distinguishable from real ones (to avoid business pollution).
  • The test must validate more than transit — signature, mapping, delivery too.

Solution

Inject periodically (5-15 min) an identifiable Test Message (X-Test: true header, reserved "test-canary" partnerId) that traverses the whole pipeline. The end component (CanaryReceiver) checks SLA reception, intact payload, OK signature, and publishes a metric. Alert if Test Message missing or late.

EDI implementation

In EDI, Test Message is typically a fake INVOIC or ORDERS with partnerId "CANARY-DUNS-000000000". It traverses parser → validator → translator → AS2 client → AS2 server (internal mock) → MDN parser. Metric "canary.latency.p99" < 30s. PagerDuty alert if not received within 5 min. Adopted by Stripe, GitHub, AWS internally.

Anti-patterns

  • Test Message sent to a real partner — pollutes their flows.
  • Test Message not distinguishable — risk of being counted as a real INVOIC.
  • Test Message at excessive frequency — useless overhead.

Sources