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

PEPPOL BIS Billing 3.0 Validator V2

On this page

Validate a UBL invoice (Invoice or CreditNote) against EN 16931 and the OpenPEPPOL business rules, without the invoice ever leaving your browser.

Paste a UBL invoice conforming to PEPPOL BIS Billing 3.0 to validate it.

Embedded rule set: 73 business rules (BR-*, BR-CO-* calculation, PEPPOL-*, UBL-CR-*), 57 EN 16931 Business Terms, 83 PEPPOL EAS codes, 1 profile. Sources: docs.peppol.eu, PEPPOL Schematron rules and EN 16931-1:2017.

How it works

The validator runs three passes:

  1. XML well-formedness: your document is parsed by the browser's native DOMParser. Any mismatched tag or invalid XML character is reported first (E_XML_NOT_WELL_FORMED).
  2. UBL root element: the root must be <Invoice> or <CreditNote> in the UBL 2.1 namespace. Otherwise: E_NOT_UBL_ROOT.
  3. PEPPOL BIS Billing 3.0 business rules: the BR-NN and PEPPOL-EN16931-RNNN codes listed below are checked against the document structure. Each diagnostic surfaces the EN 16931 Business Term (BT-1, BT-24, etc.) and the XPath of the offending element.

Implemented rules (73)

The validator covers 73 rules among the most blocking in integration work: EN 16931 rules as carried by OpenPeppol, Peppol-specific rules and UBL syntax restrictions. IDs and severities follow the official Peppol BIS Billing 3.0 release; EN 16931 rules keep the CEN wording, Peppol-specific rules are worded by ediverse; amounts are compared the way the Schematron does (rounded to two decimals, then compared exactly). The list is generated from the validator's own catalogue: it matches exactly what the tool checks.

EN 16931 rules — presence and values(25)

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-17errorThe Payee name (BT-59) shall be provided in the Invoice, if the Payee (BG-10) is different from the Seller (BG-4)
BR-18errorThe Seller tax representative name (BT-62) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11)
BR-19errorThe Seller tax representative postal address (BG-12) shall be provided in the Invoice, if the Seller (BG-4) has a Seller tax representative party (BG-11).
BR-20errorThe Seller tax representative postal address (BG-12) shall contain a Tax representative country code (BT-69), if the Seller (BG-4) has a Seller tax representative party (BG-11).
BR-62errorThe Seller electronic address (BT-34) shall have a Scheme identifier.
BR-63errorThe Buyer electronic address (BT-49) shall have a Scheme identifier.
BR-CL-01errorThe document type code MUST be coded by the invoice and credit note related code lists of UNTDID 1001.
BR-CL-04errorInvoice currency code MUST be coded using ISO code list 4217 alpha-3
BR-CL-14errorCountry codes in an invoice MUST be coded using ISO code list 3166-1

EN 16931 rules — calculations and decimals(34)

RuleSeverityWording
BR-CO-03errorValue added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.
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-17errorVAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
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.
BR-DEC-01errorThe allowed maximum number of decimals for the Document level allowance amount (BT-92) is 2.
BR-DEC-02errorThe allowed maximum number of decimals for the Document level allowance base amount (BT-93) is 2.
BR-DEC-05errorThe allowed maximum number of decimals for the Document level charge amount (BT-99) is 2.
BR-DEC-06errorThe allowed maximum number of decimals for the Document level charge base amount (BT-100) is 2.
BR-DEC-09errorThe allowed maximum number of decimals for the Sum of Invoice line net amount (BT-106) is 2.
BR-DEC-10errorThe allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.
BR-DEC-11errorThe allowed maximum number of decimals for the Sum of charges on document level (BT-108) is 2.
BR-DEC-12errorThe allowed maximum number of decimals for the Invoice total amount without VAT (BT-109) is 2.
BR-DEC-13errorThe allowed maximum number of decimals for the Invoice total VAT amount (BT-110) is 2.
BR-DEC-14errorThe allowed maximum number of decimals for the Invoice total amount with VAT (BT-112) is 2.
BR-DEC-15errorThe allowed maximum number of decimals for the Invoice total VAT amount in accounting currency (BT-111) is 2.
BR-DEC-16errorThe allowed maximum number of decimals for the Paid amount (BT-113) is 2.
BR-DEC-17errorThe allowed maximum number of decimals for the Rounding amount (BT-114) is 2.
BR-DEC-18errorThe allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.
BR-DEC-19errorThe allowed maximum number of decimals for the VAT category taxable amount (BT-116) is 2.
BR-DEC-20errorThe allowed maximum number of decimals for the VAT category tax amount (BT-117) is 2.
BR-DEC-23errorThe allowed maximum number of decimals for the Invoice line net amount (BT-131) is 2.
BR-DEC-24errorThe allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.
BR-DEC-25errorThe allowed maximum number of decimals for the Invoice line allowance base amount (BT-137) is 2.
BR-DEC-27errorThe allowed maximum number of decimals for the Invoice line charge amount (BT-141) is 2.
BR-DEC-28errorThe allowed maximum number of decimals for the Invoice line charge base amount (BT-142) is 2.

OpenPeppol rules (PEPPOL-EN16931-R*)(8)

RuleSeverityWording
PEPPOL-EN16931-R001errorThe business process identifier (BT-23, ProfileID) is missing.
PEPPOL-EN16931-R002errorOnly one document-level note (BT-22) is accepted, except when seller and buyer are both German.
PEPPOL-EN16931-R003errorNeither a buyer reference (BT-10) nor a purchase order reference (BT-13) is given; one of them is required.
PEPPOL-EN16931-R004errorThe specification identifier (BT-24) does not begin with the Peppol BIS Billing 3.0 value 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0', or does not follow the identifier format rules (it contains '::').
PEPPOL-EN16931-R008errorThe document contains an empty element; Peppol rejects empty elements.
PEPPOL-EN16931-R010errorThe buyer electronic address (BT-49, EndpointID) is missing.
PEPPOL-EN16931-R020errorThe seller electronic address (BT-34, EndpointID) is missing.
PEPPOL-EN16931-CL008errorThe electronic address scheme (schemeID) is not in the Electronic Address Scheme (EAS) code list.

UBL syntax restrictions (UBL-CR / UBL-DT)(6)

RuleSeverityWording
UBL-CR-002warningA UBL invoice should not include the UBLVersionID or it should be 2.1
UBL-CR-003warningA UBL invoice should not include the ProfileExecutionID
UBL-CR-004warningA UBL invoice should not include the CopyIndicator
UBL-CR-005warningA UBL invoice should not include the UUID
UBL-CR-006warningA UBL invoice should not include the IssueTime
UBL-DT-01errorAmounts shall be decimal up to two fraction digits

Privacy

Limitations

The validator is not — yet — a 1:1 replacement for the official Schematron. Out of scope for this MVP:

  • Full VAT rules (BR-AE-*, BR-E-*, BR-IC-*, BR-O-*, BR-S-*, BR-Z-*) that cross-check VAT category, exemption, rate, and country.
  • Strict UBL 2.1 XSD validation (child cardinalities, XSD types) — we focus on Business Terms.
  • Reference resolution across lines, AllowanceCharge, and TaxTotal.
  • Second-tier code-list rules: UnitOfMeasure, UNTDID 4461 PaymentMeansCode, UNTDID 5305 VAT category.
  • DocumentReference linking and MIME types (BG-24).

For a production pipeline, running the official PEPPOL-EN16931-UBL.sch Schematron remains the recommended approach.

  • PEPPOL — the network overview, four-corner model, and 2026 mandate calendar.
  • EN 16931 — the European semantic model for the core elements of an electronic invoice.
  • cXML Validator — same approach for Ariba / SAP Business Network documents.