InvoiceValidator.eu

Validation result

Valid EN 16931 and Peppol BIS Billing 3.0 — but fails XRechnung 3.0.2

UBL syntax. The last column lists the rules a stricter profile adds on top of the EN 16931 core.

profileresultwarningsrules it adds
EN 16931 (core)passes0 warn—
Peppol BIS Billing 3.0 (+ national rules)passes0 warn—
XRechnung 3.0.2 (Germany)2 fatal1 warnBR-DE-15, BR-DE-2

A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML attached inside it. A printed or scanned PDF has nothing in it to check. If you have the XML as a separate file, upload that.

…or paste the XML instead

No invoice to hand? Try a sample with a VAT rounding error or the same invoice against Peppol rules, or against XRechnung (Germany) — or see an invoice that is valid EU-wide and still rejected in Germany. Or grab a sample invoice to test your own code with.

1,787 rules explained

Every EN 16931 and Peppol BIS rule has its own reference page with the cause and the fix.

Hybrid PDFs, wrapper included

Factur-X and ZUGFeRD PDFs are unpacked and the XML checked — plus the container itself: /AF, /AFRelationship and the XMP profile declaration, which almost nothing else looks at.

Profiles that actually reject you

An invoice can be valid EN 16931 and still bounce off Peppol or XRechnung. The Peppol check adds the national rules for DE, DK, GR, IS, IT, NL, NO and SE automatically, from the seller's country.

Checked against the official corpus

Passes 1,142 of 1,142 assertions in CEN's own EN 16931 test suite — the same corpus the standard is validated with.

Who must comply, and when

Country-by-country mandate deadlines — Belgium, Poland, France, Germany, Slovenia and the rest.