Peppol BIS Billing 3.0 & UBL 2.1 Validator
Validate technical compliance, Schematron business rules, and monetary calculations of electronic UBL XML invoices according to the European and global standard EN 16931.
What is the Peppol Network and BIS Billing 3.0 Specification?
OpenPeppol is an international non-profit association standardizing the electronic exchange of procurement and tax documents across the European Union, Singapore, Australia, Japan, and other countries.
The Peppol BIS Billing 3.0 specification is the canonical implementation of the European standard EN 16931 using OASIS UBL 2.1 (ISO/IEC 19845). It enforces strict semantic structures and precise mathematical formulas for rounding, tax subtotals, and participant endpoint routing via schemes like GLN and SIRET/SIRENE.
Anatomy and Semantic Structure of Peppol UBL 2.1 Invoice
A Peppol electronic invoice consists of mandatory hierarchical XML structures:
| Block | XML Element | Cardinality | Technical Purpose | Canonical Example |
|---|---|---|---|---|
| 1 | cbc:CustomizationID | 1..1 | Specification identifier indicating compliance with European interoperability profile EN 16931. | urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0 |
| 2 | cac:AccountingSupplierParty | 1..1 | Legal entity details, electronic routing ID (EndpointID), and tax registration of seller/supplier. | EndpointID schemeID="0088" > 8712345678901 |
| 3 | cac:AccountingCustomerParty | 1..1 | Buyer details, billing address, and Peppol routing identifier. | EndpointID schemeID="0208" > 0876543210 |
| 4 | cac:TaxTotal | 1..2 | Tax breakdown and subtotals grouped by VAT category and percentage rate. | TaxAmount: 210.00 EUR (21%) |
| 5 | cac:LegalMonetaryTotal | 1..1 | Final monetary sums (LineExtensionAmount, TaxExclusive, TaxInclusive, and PayableAmount). | PayableAmount: 1210.00 EUR |
Two-Tier Validation Engine
Peppol BIS 3.0 inspection operates through two deterministic verification stages:
- 1. Structural and XML Syntax Verification: The parser verifies well-formed XML, validates root namespaces under UBL 2.1 (Invoice-2 or CreditNote-2), and confirms the presence of all required header structures.
- 2. Business Rules & Financial Formulas (Schematron Rules): The engine calculates EN 16931 equations: cross-checking payable amounts (BR-CO-10), totalizing line items against net amounts (BR-CO-13), and validating ISO 4217 currencies and routing schemes.