UBL Invoice Validator
Validate UBL 2.1 invoices and credit notes against Peppol BIS Billing 3.0 and EN16931 schematron rules. Free, instant results.
Drag and drop XML invoices
or click to browse · UBL and CII / Factur-X supported
The UBL validation stack
A Peppol invoice passes through three validation layers. Understanding them helps you fix errors faster.
UBL 2.1 Schema
XML structure: correct element names, namespaces, and data types. Defined by OASIS.
EN16931 Business Rules
European semantic rules covering mandatory fields, calculation checks, and tax category logic. Rules prefixed BR- and BR-CO-.
Peppol BIS 3.0 Rules
Network-specific rules covering electronic address schemes, process identifiers, and code list restrictions. Rules prefixed PEPPOL-EN16931-.
Supported UBL document types
| Code | Type | UBL Document |
|---|---|---|
| 380 | Commercial invoice | Invoice |
| 381 | Credit note | CreditNote |
| 384 | Corrected invoice | Invoice |
| 386 | Prepayment invoice | Invoice |
| 389 | Self-billed invoice | Invoice |
Questions
What is UBL 2.1?
Universal Business Language (UBL) 2.1 is an OASIS open standard that defines XML document formats for business documents like invoices, credit notes, and orders. It is the syntax used by Peppol BIS Billing 3.0 and the EN16931 European e-invoicing standard.
What is the difference between UBL and Peppol?
UBL 2.1 defines the XML structure: the tags, elements, and data types. Peppol BIS Billing 3.0 is a business profile on top of UBL that adds constraints, including which fields are mandatory, which code lists to use, and what business rules must be satisfied. EN16931 sits between them as the European semantic model. When you validate here, we check all three layers.
Which UBL document types can I validate?
This validator supports UBL 2.1 Invoice (InvoiceTypeCode 380 and variants like 384, 386, 389) and UBL 2.1 CreditNote (InvoiceTypeCode 381). These are the document types defined in Peppol BIS Billing 3.0.
What does a UBL validation check?
Validation runs two sets of schematron rules: EN16931 (CEN) business rules that check European standard compliance (BR-series rules), and Peppol BIS rules that check network-specific requirements like electronic address scheme IDs, process identifiers, and code list values.
What is an SEF file?
SEF (Stylesheet Export File) is a compiled form of XSLT stylesheets used by SaxonJS. The Peppol schematron rules (.sch files) are compiled into SEF format so they can run efficiently in the browser or on Cloudflare Workers without a full XSLT processor.
Is UBL 2.1 the same as UBL 2.0?
No. UBL 2.1 added significant elements compared to 2.0, including better support for credit notes, self-billing, and additional code lists. Peppol BIS Billing 3.0 specifically requires UBL 2.1. Documents using UBL 2.0 namespaces will fail validation.
Looking for the main Peppol validator? Go to peppolvalidator.com
Validating CII / Factur-X invoices? Use the Factur-X validator
Learn more about Peppol
What is Peppol e-invoicing?
The standards stack, the four-corner model, who is in scope.
The Peppol network
How AS4, SML and SMP discovery actually work end to end.
Mandates by country
Where Peppol or EN 16931 is mandatory in 2026 and beyond.
Peppol Access Points
What certified service providers do and how to choose one.
Validation rules reference
All 311 BR, PEPPOL-EN16931 and country-specific rules.
EN 16931 business terms
Every BG / BT business term with its UBL XML path.