EN 16931 Validator — UBL e-invoice
On this page
The EN 16931 validator covers the core of the European
e-invoicing standard (EN 16931-1:2017) — the spec that underpins PEPPOL
BIS Billing 3.0, XRechnung, and Factur-X. It accepts UBL Invoice or
CreditNote, auto-detects the CIUS via CustomizationID, and
runs 30 rules with their official IDs, severities and wording:
28 business rules from CEN release 1.3.16, BR-CO-25 as adopted by Peppol and the
XRechnung rule BR-DE-15.
Validation results
Paste a UBL invoice to validate it against the EN 16931 rules.
How it works
The validator parses the UBL invoice (Invoice or CreditNote), extracts the Business Terms (BT-1 to BT-131), then runs two rule families:
- Presence (BR-01 → BR-16, BR-CO-26) — mandatory elements: identifiers, dates, parties, legal names (BT-27, BT-44), addresses, totals, lines.
- Calculation (BR-CO-10 → BR-CO-19) — total consistency: line sum, allowances and charges, net total, VAT, gross total, amount due.
Amounts are compared the way the official Schematron does: rounded to two decimals, then compared exactly — a one-cent difference is an error.
EN 16931 vs PEPPOL BIS 3.0
EN 16931 is the standard; PEPPOL BIS Billing 3.0 is a CIUS (Core Invoice Usage Specification) layered on top, adding its own rules (EAS code list, PEPPOL-EN16931-R-*, UBL-CR-*). If you target PEPPOL specifically, the dedicated PEPPOL Validator covers the full set. The EN 16931 validator remains useful for XRechnung, Factur-X, and any CIUS that derives directly from the standard without aligning on PEPPOL.
Supported CIUSes
- EN 16931 core — the standard, no overlay
- PEPPOL BIS Billing 3.0 — detected, redirects to the dedicated tool
- XRechnung 3.0 — detected by its official CustomizationID; adds the KoSIT rule BR-DE-15 (buyer reference / Leitweg-ID required)
- Factur-X EN 16931 (UBL syntax) — recognised; EN 16931 core rules applied
Implemented rules (30)
This list is generated from the validator's own rule catalogue: what you see here is exactly what the tool checks.
Mandatory elements(18)
| Rule | Severity | Wording |
|---|---|---|
BR-01 | error | An Invoice shall have a Specification identifier (BT-24). |
BR-02 | error | An Invoice shall have an Invoice number (BT-1). |
BR-03 | error | An Invoice shall have an Invoice issue date (BT-2). |
BR-04 | error | An Invoice shall have an Invoice type code (BT-3). |
BR-05 | error | An Invoice shall have an Invoice currency code (BT-5). |
BR-06 | error | An Invoice shall contain the Seller name (BT-27). |
BR-07 | error | An Invoice shall contain the Buyer name (BT-44). |
BR-08 | error | An Invoice shall contain the Seller postal address. |
BR-09 | error | The Seller postal address (BG-5) shall contain a Seller country code (BT-40). |
BR-10 | error | An Invoice shall contain the Buyer postal address (BG-8). |
BR-11 | error | The Buyer postal address shall contain a Buyer country code (BT-55). |
BR-12 | error | An Invoice shall have the Sum of Invoice line net amount (BT-106). |
BR-13 | error | An Invoice shall have the Invoice total amount without VAT (BT-109). |
BR-14 | error | An Invoice shall have the Invoice total amount with VAT (BT-112). |
BR-15 | error | An Invoice shall have the Amount due for payment (BT-115). |
BR-16 | error | An Invoice shall have at least one Invoice line (BG-25) |
BR-CO-26 | error | In order for the buyer to automatically identify a supplier, the Seller identifier (BT-29), the Seller legal registration identifier (BT-30) and/or the Seller VAT identifier (BT-31) shall be present. |
BR-DE-15 | error | Das Element "Buyer reference" (BT-10) muss übermittelt werden. (The Buyer reference (BT-10) — Leitweg-ID for German public buyers — must be transmitted.) |
Calculations(11)
| Rule | Severity | Wording |
|---|---|---|
BR-CO-10 | error | Sum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131). |
BR-CO-11 | error | Sum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92). |
BR-CO-12 | error | Sum of charges on document level (BT-108) = Σ Document level charge amount (BT-99). |
BR-CO-13 | error | Invoice total amount without VAT (BT-109) = Σ Invoice line net amount (BT-131) - Sum of allowances on document level (BT-107) + Sum of charges on document level (BT-108). |
BR-CO-14 | error | Invoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117). |
BR-CO-15 | error | Invoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110). |
BR-CO-16 | error | Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114). |
BR-CO-18 | error | An Invoice shall at least have one VAT breakdown group (BG-23). |
BR-CO-19 | error | If Invoicing period (BG-14) is used, the Invoicing period start date (BT-73) or the Invoicing period end date (BT-74) shall be filled, or both. |
BR-29 | error | If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73). |
BR-CO-25 | error | In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present. |
VAT categories(1)
| Rule | Severity | Wording |
|---|---|---|
BR-E-10 | error | A VAT breakdown (BG-23) with VAT Category code (BT-118) "Exempt from VAT" shall have a VAT exemption reason code (BT-121) or a VAT exemption reason text (BT-120). |
Privacy
This tool runs in your browser: whatever you paste or load is processed locally and never sent to a server.