Reference · EN 16931
What gets checked before an invoice is issued
An invoice does not become "issued" here until its XML clears two separately maintained gates (one about shape, one about meaning), plus a handful of checks the standard itself leaves undefined. To check a document against the EN 16931 rules, use the free EN 16931 validator.
Before this product treats an invoice's XML as final, that XML is expected to satisfy two artefacts published by CEN/TC 434, the OASIS UBL 2.1 XML schema and the EN 16931 Schematron ruleset.
The structural gate: the shape of the document
The schema is concerned with shape. It governs which elements a document may contain, in what order, nested how deeply, and which of them must carry an attribute such as a currency code on a monetary amount. Passing this check confirms element placement, declared order, required attributes and non-empty content, but not every numeric range or datatype rule the schema defines. A document can pass this check and still contain an amount that is syntactically fine and arithmetically wrong.
The semantic gate: whether the values agree
The Schematron ruleset picks up where the schema stops. It checks relationships a grammar
alone cannot describe — whether the total payable reconciles with the lines and the VAT
breakdown, whether a VAT category that requires an exemption reason actually has one, and
whether a coded value such as a VAT category or a country is drawn from an allowed list. Its
rules fall into families. BR-* covers the core business rules, BR-CO-*
covers rules that check a calculation across several fields, and BR-CL-* covers
rules that check a code against its permitted list.
What actually blocks issuing
At the moment an invoice is issued, the business rules described above are enforced, together with two checks the standard does not define at all, namely that the invoice number is not already used by an issued invoice from the same organisation, and, for a credit note, a check against the invoice it corrects.
Only a finding at error severity stops the invoice from being issued. A finding at warning severity is still returned to the caller, but it does not block.
The schema and Schematron are not idle, though. Every invoice this product generates is built to satisfy both by construction, which is why neither has to be checked again against a live document at the moment it is issued.
What neither gate catches
Both gates only ever ask whether a document is well-formed and internally consistent. Neither one asks whether a VAT identifier actually belongs to the business named on the invoice, whether the amounts describe a real transaction, or whether a document that clears both gates is also acceptable to a given country's tax authority. Those are different questions, and passing validation answers none of them.
What this does not cover
This article covers what the UBL schema and the EN 16931 Schematron gates check, and what they leave unchecked. It does not cover transmission: EUInvoice does not send documents over the Peppol network, Poland's KSeF or France's Chorus Pro / PPF.
Sources
- EN 16931-1, the European standard's semantic data model for the core elements of an electronic invoice.
-
OASIS Universal Business Language (UBL) 2.1, invoice and credit-note XML schema, edition
2.1 OS (2013-11-04), retrieved 2026-07-26. - CEN/TC 434 EN 16931 validation artefacts (Schematron ruleset), retrieved 2026-07-26.