ValidateFin

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

BR-01Specification identifier is requiredBR-02Invoice number is requiredBR-03Invoice issue date is requiredBR-04Invoice type code is requiredBR-05Invoice currency code is requiredBR-06Seller name is requiredBR-07Buyer name is requiredBR-08Seller postal address is requiredBR-09Seller country code is requiredBR-10Buyer postal address is requiredBR-11Buyer country code is requiredBR-16At least one invoice line is requiredBR-CO-19Invoicing period needs a dateBR-CO-04Each invoice line needs a VAT category codeBR-CO-09VAT identifiers need a country prefixBR-CO-20Invoice line period needs a dateBR-CO-26The seller must be identifiableBR-56Tax representative needs a VAT identifierBR-57Deliver-to address needs a country codeBR-62Seller electronic address needs a schemeBR-63Buyer electronic address needs a schemeBR-17Payee name required if Payee differs from SellerBR-18Seller tax representative VAT identifier is requiredBR-19Seller tax representative postal address is requiredBR-20Seller tax representative country code is requiredBR-CO-03VAT point date and its code are mutually exclusivePEPPOL-EN16931-R002Only one document level note is allowedPeppol BIS 3.0PEPPOL-EN16931-R008The document must not contain empty elementsPeppol BIS 3.0PEPPOL-EN16931-R010The buyer electronic address is mandatoryPeppol BIS 3.0PEPPOL-EN16931-R020The seller electronic address is mandatoryPeppol BIS 3.0BR-DE-2Mandatory: seller contact (BG-6)XRechnungBR-DE-3Mandatory: seller city (BT-37)XRechnungBR-DE-4Mandatory: seller post code (BT-38)XRechnungBR-DE-5Mandatory: seller contact point (BT-41)XRechnungBR-DE-6Mandatory: seller phone (BT-42)XRechnungBR-DE-7Mandatory: seller e-mail (BT-43)XRechnungBR-DE-8Mandatory: buyer city (BT-52)XRechnungBR-DE-9Mandatory: buyer post code (BT-53)XRechnungBR-DE-10Mandatory: deliver to city (BT-77)XRechnungBR-DE-11Mandatory: deliver to post code (BT-78)XRechnungBR-DE-15Mandatory: buyer reference (BT-10)XRechnungBR-DE-27Seller phone number should contain at least 3 digitsXRechnungBR-DE-28Seller e-mail address should be well formedXRechnungBR-DE-TMP-32The delivery date or period should be statedXRechnung

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

BR-CO-05Allowance reason code and text must agreeBR-CO-06Charge reason code and text must agreeBR-CO-21Each allowance needs a reasonBR-CO-22Each charge needs a reasonBR-31Each document-level allowance needs an amountBR-32Each document-level allowance needs a VAT category codeBR-36Each document-level charge needs an amountBR-37Each document-level charge needs a VAT category codeBR-41Each invoice line allowance needs an amountBR-43Each invoice line charge needs an amountBR-CO-23Each invoice line allowance needs a reasonBR-CO-24Each invoice line charge needs a reasonBR-33Document-level allowance must state a reasonBR-38Document-level charge must state a reasonBR-42Line-level allowance must state a reasonBR-44Line-level charge must state a reasonBR-CO-07Line allowance reason code and text must agreeBR-CO-08Line charge reason code and text must agreeBR-AF-01Document charge must have a VAT category codeBR-AF-04Document charge VAT category code must be validBR-AF-07Exempt document charge rate must be zeroBR-AF-08Reverse charge document charge rate must be zeroBR-AG-01Document allowance must have a VAT category codeBR-AG-03Document allowance must state a reasonBR-AG-06Zero-rated document allowance rate must be zeroBR-AG-08Reverse charge document allowance rate must be zeroPEPPOL-EN16931-R040Allowance or charge must equal base times percentagePeppol BIS 3.0PEPPOL-EN16931-R041A percentage requires a base amountPeppol BIS 3.0PEPPOL-EN16931-R042A base amount requires a percentagePeppol BIS 3.0PEPPOL-EN16931-R043The charge indicator must be true or falsePeppol BIS 3.0PEPPOL-EN16931-R044No charge is allowed at item price levelPeppol BIS 3.0PEPPOL-EN16931-R046Net price must equal gross price minus the price discountPeppol BIS 3.0

Payment

Invoice lines

VAT breakdown

References

Code lists

BR-CL-01Invoice type code: UNTDID 1001BR-CL-03Amount currency (@currencyID): ISO 4217BR-CL-04Invoice currency code: ISO 4217BR-CL-05VAT accounting currency code: ISO 4217BR-CL-06VAT point date code: UNTDID 2005BR-CL-07Object identifier scheme: UNTDID 1153BR-CL-08Invoice note subject code: UNCL 4451BR-CL-10Seller identifier scheme: ISO 6523 ICDBR-CL-11Legal registration scheme: ISO 6523 ICDBR-CL-13Item classification scheme: UNTDID 7143BR-CL-14Country code: ISO 3166-1BR-CL-15Item country of origin: ISO 3166-1BR-CL-16Payment means code: UNCL 4461BR-CL-17Allowance/charge VAT category code: UNCL 5305BR-CL-18Invoiced item VAT category code: UNCL 5305BR-CL-19Allowance reason code: UNCL 5189BR-CL-20Charge reason code: UNCL 7161BR-CL-21Item standard identifier scheme: ISO 6523 ICDBR-CL-22VAT exemption reason code: CEF VATEXBR-CL-23Unit of measure code: UN/ECE Rec 20BR-CL-24Attached document MIME code: MIME media typeBR-CL-25Electronic address scheme: CEF EASBR-CL-26Deliver-to location scheme: ISO 6523 ICDPEPPOL-EN16931-CL001Attachment MIME type must come from the allowed listPeppol BIS 3.0PEPPOL-EN16931-CL002Document allowance reason code must come from UNCL 5189Peppol BIS 3.0PEPPOL-EN16931-CL003Charge reason code must come from UNCL 7161Peppol BIS 3.0PEPPOL-EN16931-CL006VAT point date code must come from UNCL 2005Peppol BIS 3.0PEPPOL-EN16931-CL007Currency codes must be valid ISO 4217 codesPeppol BIS 3.0PEPPOL-EN16931-CL008Electronic address scheme must be a registered EAS codePeppol BIS 3.0BR-DE-17Invoice type code should use the allowed UNTDID codesXRechnungBR-DEX-01Attachment MIME code must be allowedXRechnungBR-DEX-04Scheme identifier must come from the ISO 6523 ICD listXRechnungBR-DEX-05Scheme identifier must come from the ISO 6523 ICD listXRechnungBR-DEX-06Scheme identifier must come from the ISO 6523 ICD listXRechnungBR-DEX-07Endpoint scheme identifier must be a CEF EAS codeXRechnungBR-DEX-08Delivery location scheme must be an ISO 6523 ICD codeXRechnungBR-DE-CVD-04BT-158 with scheme CVD must hold a vehicle categoryXRechnungBR-DE-CVD-05The cva attribute value must come from the allowed listXRechnung

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.