E-invoicing validation rules
All 1787 rules from the official EN 16931 Schematron and Peppol BIS Billing 3.0, each with what it means and how to fix it.
EN 16931 core business rules BR 58
The heart of the standard: what an invoice must contain to be an invoice at all — a number, a date, a seller and buyer, totals, at least one line. If one of these fails, the document is not a valid European e-invoice in any country.
Split payment (Italy) BR-B 2
Where the buyer pays the VAT directly to the tax authority rather than to the seller.
VAT exempt BR-E 10
Exempt supplies carry no VAT and must state on what grounds — an exemption reason is mandatory.
Export outside the EU BR-G 10
Zero rated on export, with an exemption reason.
Not subject to VAT BR-O 14
Out-of-scope transactions cannot be mixed with taxed ones on the same invoice, and carry no VAT rate at all — not even zero.
Standard rated VAT BR-S 10
Rules for lines, allowances and charges taxed at a positive standard or reduced rate, and for the VAT breakdown that must accompany them.
Zero rated VAT BR-Z 10
Zero rated is not the same as exempt: the supply is taxable, at 0%. These rules keep the two apart.
XRechnung via Peppol DE-R 30
The same German rules as BR-DE, as enforced on the Peppol network.
Denmark DK-R 14
CVR numbers, and the kortartkode prefixes that Danish Giro and FIK payments require.
Greece GR-R 17
Greece requires the invoice number itself to be structured — six segments carrying the TIN, issue date, branch, document type, series and sequence — plus a MARK number issued by myDATA, and the EL prefix on VAT identifiers, which differs from the GR country code used in addresses.
Greece (warnings) GR-S 2
Greek rules reported as warnings rather than errors.
Iceland IS-R 10
Kennitala identifiers and twelve-digit account numbers.
Codice fiscale, partita IVA and the full registered address.
Netherlands NL-R 9
KVK and OIN identifiers, and complete addresses.
Norway NO-R 2
The MVA suffix on VAT numbers, and Foretaksregisteret.
Sweden SE-R 13
Swedish VAT and organisation numbers, Bankgiro and Plusgiro, and the F-tax statement.
Reverse charge BR-AE 10
The buyer accounts for the VAT, so the seller charges none and must say so with an exemption reason.
IGIC (Canary Islands) BR-AF 10
The Canary Islands general indirect tax, which behaves like VAT but is not VAT.
IPSI (Ceuta and Melilla) BR-AG 10
The Spanish north-African cities' indirect tax.
Code list rules BR-CL 23
Fields that may only contain a value from a published list — currencies, country codes, VAT categories, units of measure, payment means. A plausible-looking value that is not in the list fails, and 'PCS' instead of the unit code C62 is the classic example.
Calculation rules BR-CO 23
Every total on an invoice is derived from something else, and these rules check the arithmetic. They are the most commonly hit family in practice, and almost always for the same reason: rounding each line for display while summing the unrounded values underneath.
XRechnung (Germany) BR-DE 31
Germany's national rules on top of EN 16931. Stricter than the core in ways that surprise people: the seller contact block, city and post code, and the Leitweg-ID in the buyer reference are all mandatory.
Intra-community supply BR-IC 12
Goods moving to another Member State are zero rated, but only with evidence: a delivery date and a destination country.
Factur-X attachment FX-AF 2
Whether the PDF declares the invoice as an associated file at all. Get this wrong and a compliant reader never looks for the XML, however perfect the XML is.
Decimal places BR-DEC 21
Amounts are limited to two decimals. These fire when a float is serialised straight into the XML — the value is usually right, the formatting is not.
XRechnung extension BR-DEX 15
Third-party payments and sub invoice lines, which the core XRechnung profile does not support.
Provisional rules BR-TMP 2
Rules marked temporary by their publisher.
CII data types CII-DT 101
Date formats, codes and elements that CII allows but EN 16931 does not use.
CII restrictions CII-SR 482
The same idea as UBL-CR, for the UN/CEFACT syntax that sits inside a Factur-X or ZUGFeRD PDF.
Factur-X metadata FX-XMP 4
The XMP block that tells a receiver this PDF is a Factur-X invoice, which file holds the data, and which profile it claims. A mismatch between the metadata and the invoice decides which set of fields is mandatory — in France, that matters.
UBL restrictions UBL-CR 678
UBL is a large general-purpose schema and EN 16931 uses a small part of it. These rules say which elements have no meaning in an invoice — nearly always left over from a generic template or a library that emits every field it knows.
UBL data types UBL-DT 24
Formatting of amounts, quantities and binary attachments.
UBL cardinality UBL-SR 54
Elements the semantic model treats as singular, and where repeating them means the sender has more data than the standard can carry.
German construction extension BR-DE-CVD 7
Contract and tender references required for public-sector construction invoices.
XRechnung, provisional BR-DE-TMP 1
German rules the publisher has flagged as temporary — they check things the core standard leaves open, such as stating a delivery or performance date.
Construction extension, provisional BR-TMP-CVD 1
Provisional rules for the German public-sector construction profile.
Peppol identifier formats PEPPOL-COMMON 12
Check digits and formats for national company identifiers — GLN, Danish CVR, Norwegian and Swedish organisation numbers, Italian codice fiscale.
What Belgium has required of every VAT-registered business since 1 January 2026, and what Peppol delivery enforces everywhere else. An invoice can be perfectly valid EN 16931 and still fail these.