EN 16931 Validation Rules
Reference for the EN 16931 business rules checked on Peppol BIS, UBL and Factur-X e-invoices.
EN 16931 validation rules
EN 16931 is the European standard for electronic invoicing. Its business rules (BR-*, BR-CO-*, BR-DEC-*, BR-CL-* and VAT category rules) define what a compliant Peppol BIS, UBL, XRechnung or Factur-X invoice must contain. This reference explains all 176 rules and how to fix an invoice that fails each one.
Each rule below is enforced when validating an electronic invoice against EN 16931. Click a rule to see what it checks and how to fix a file that fails it. This is a growing reference - start with our free validators to test your own file.
Mandatory fields
Mandatory totals
Calculations
VAT - Standard rated
VAT - Zero rated
VAT - Exempt
VAT - Reverse charge
Decimals
VAT - Intra-community
VAT - Export outside the EU
VAT - Not subject
Allowances & charges
Payment
Invoice lines
VAT breakdown
References
Code lists
Process & profile
Frequently asked questions
What is an EN 16931 BR-* rule?
A BR-* rule is a business rule of the EN 16931 standard that an electronic invoice must satisfy. BR-* covers content rules, BR-CO-* conditional/calculation rules, BR-DEC-* decimal rules and BR-CL-* code-list rules. A validator flags a rule when the invoice breaks it.
What is the difference between BR, BR-CO, BR-DEC and BR-CL?
BR-* are core content rules (a field must be present). BR-CO-* are conditional and calculation rules (totals must add up). BR-DEC-* constrain decimal places. BR-CL-* check that codes come from the correct code list (currencies, countries, VAT categories, units).
How many EN 16931 rules are there?
ValidateFin documents 176 EN 16931 business rules - the near-complete set enforced on Peppol BIS, UBL, XRechnung and Factur-X invoices, covering content rules (BR-*), calculation rules (BR-CO-*), decimal rules (BR-DEC-*) and code-list rules (BR-CL-*).
What is the difference between an error and a warning?
A fatal rule is an error: the invoice is rejected until it is fixed. A warning flags a likely problem but does not block the invoice. Each rule page shows its severity.
Which formats do these rules apply to?
EN 16931 is syntax-neutral, so the same rules apply to UBL (Peppol BIS Billing 3.0), XRechnung and Factur-X / ZUGFeRD (CII). A rule such as BR-CO-10 must hold whichever syntax you use.
How do I fix an invoice that fails a rule?
Open the rule to read what it checks and the exact correction, then re-validate your file with the matching free validator (UBL/Peppol, XRechnung or Factur-X). Everything runs in your browser - no upload.
Where do these rules come from?
They are the official EN 16931 business rules published by CEN and enforced through the official Schematron. ValidateFin's validators run that official Schematron, and each rule page mirrors its meaning.
Do the rules apply the same way to Factur-X and XRechnung?
Yes - both must satisfy the EN 16931 core rules. XRechnung adds German KoSIT (BR-DE-*) rules on top, and Factur-X applies them in the CII syntax, but the EN 16931 core is identical.