ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

— 01

Foundations

— 02

Standards

— 03

Flagship messages

— 04

Tools

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)

RuleSeverityWording
BR-01errorAn Invoice shall have a Specification identifier (BT-24).
BR-02errorAn Invoice shall have an Invoice number (BT-1).
BR-03errorAn Invoice shall have an Invoice issue date (BT-2).
BR-04errorAn Invoice shall have an Invoice type code (BT-3).
BR-05errorAn Invoice shall have an Invoice currency code (BT-5).
BR-06errorAn Invoice shall contain the Seller name (BT-27).
BR-07errorAn Invoice shall contain the Buyer name (BT-44).
BR-08errorAn Invoice shall contain the Seller postal address.
BR-09errorThe Seller postal address (BG-5) shall contain a Seller country code (BT-40).
BR-10errorAn Invoice shall contain the Buyer postal address (BG-8).
BR-11errorThe Buyer postal address shall contain a Buyer country code (BT-55).
BR-12errorAn Invoice shall have the Sum of Invoice line net amount (BT-106).
BR-13errorAn Invoice shall have the Invoice total amount without VAT (BT-109).
BR-14errorAn Invoice shall have the Invoice total amount with VAT (BT-112).
BR-15errorAn Invoice shall have the Amount due for payment (BT-115).
BR-16errorAn Invoice shall have at least one Invoice line (BG-25)
BR-CO-26errorIn 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-15errorDas Element "Buyer reference" (BT-10) muss übermittelt werden. (The Buyer reference (BT-10) — Leitweg-ID for German public buyers — must be transmitted.)

Calculations(11)

RuleSeverityWording
BR-CO-10errorSum of Invoice line net amount (BT-106) = Σ Invoice line net amount (BT-131).
BR-CO-11errorSum of allowances on document level (BT-107) = Σ Document level allowance amount (BT-92).
BR-CO-12errorSum of charges on document level (BT-108) = Σ Document level charge amount (BT-99).
BR-CO-13errorInvoice 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-14errorInvoice total VAT amount (BT-110) = Σ VAT category tax amount (BT-117).
BR-CO-15errorInvoice total amount with VAT (BT-112) = Invoice total amount without VAT (BT-109) + Invoice total VAT amount (BT-110).
BR-CO-16errorAmount due for payment (BT-115) = Invoice total amount with VAT (BT-112) -Paid amount (BT-113) +Rounding amount (BT-114).
BR-CO-18errorAn Invoice shall at least have one VAT breakdown group (BG-23).
BR-CO-19errorIf 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-29errorIf 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-25errorIn 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)

RuleSeverityWording
BR-E-10errorA 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.