UBL Peppol BIS 3.0 EN 16931

Free UBL & Peppol Invoice Validator

Instantly check your invoice against EN 16931 and the Peppol BIS Billing 3.0 rules.

Drag and drop your invoices here, or click to browse.

Why Validate with Peppolio?

Catch problems before your invoice reaches a customer or a Peppol Access Point.

Every EN 16931 Rule Applied

Your invoice is checked against the complete European e-invoicing standard: over 200 business rules in a single pass.

Schema and Business Rule Checks

The UBL 2.1 XML structure is verified first, then the EN 16931 business rules run on top of it.

Accepted Across the Peppol Network

We apply the same Peppol BIS Billing 3.0 rules that Access Points enforce, so a pass here means the network takes your invoice.

Send It Over Peppol

Once an invoice passes, premium users can deliver it straight over the Peppol network from the same page.

How It Works

Three steps from upload to a clear pass or fail.

Step 1

Drop In Your UBL File

Drag your UBL 2.1 invoice or credit note XML into the validator, up to 10 files at once.

Step 2

Automatic Checks

We run the UBL 2.1 schema check, the full EN 16931 rule set, and the Peppol BIS Billing 3.0 constraints in a single pass.

Step 3

Read the Report

A plain-language report names each failed rule, the field it concerns, and what to change to fix it.

Frequently Asked Questions

Answers to common questions about UBL and Peppol invoice validation.

Your file is validated against the UBL 2.1 schema, every EN 16931 business rule, and the Peppol BIS Billing 3.0 specification used across the Peppol network.
Yes. UBL 2.1 invoice and credit note XML is exactly what the validator expects, no conversion or wrapping needed.
You get a report that lists every failed rule together with the affected field and a plain-language explanation of the fix, no XML expertise required.
Yes, you can check up to 10 invoices at a time for free. A premium account adds batch processing and API access.
That is exactly what this tool tells you. We apply the Peppol BIS Billing 3.0 rules that Access Points enforce, so a green result means the network will accept your file.
Yes. When a file passes every check, premium users can deliver it over the Peppol network in one click, without leaving the page.

Across Europe, sending an invoice increasingly means sending it over the Peppol network. Belgium's B2B mandate, the rollouts in France and elsewhere, and long-standing requirements in the Netherlands and the Nordics all point to the same document: a structured UBL 2.1 invoice that follows the European standard EN 16931 and the Peppol BIS Billing 3.0 rulebook. Checking the file here first means your Access Point accepts it on the first try, instead of rejecting it after you thought it was sent.


What the Peppol invoice validator checks

Three separate layers of rules apply to every UBL invoice, and a file has to clear all of them before the Peppol network, or your customer's accounting software, will take it. Peppolio runs the full stack automatically on every upload.

The UBL 2.1 structure - the document is checked against the official OASIS schemas for invoices and credit notes. This layer catches structural mistakes: required elements that are missing, elements in the wrong order, badly formatted dates, and namespace problems. Nothing else can pass until the structure is right.

The EN 16931 business rules - the layer where most invoices actually fail. More than 200 rules cross-check the content: the VAT amounts have to add up (rule BR-CO-14 insists the invoice VAT total equals the sum of the VAT category amounts), each VAT category has to be used correctly (BR-S-08 rejects a standard-rate line with a 0% rate), and core details like the seller name (BR-06), the specification identifier (BR-01), and at least one invoice line (BR-16) must be present.

The Peppol BIS Billing 3.0 rules - Peppol adds its own PEPPOL-EN16931-R checks on top of the European standard. The ones that trip people up most involve electronic addresses: seller and buyer each need an Endpoint ID with a scheme from the official Peppol code list (0088 for a GLN, 9930 for a German VAT number, and so on), and the invoice needs either a buyer reference or an order reference.


The UBL errors we see most often, in plain language

When a file fails here, it is usually one of a handful of repeat offenders. Here is what each one actually means.

BR-06 - the seller has no name
The supplier section of the invoice never states who is sending it. The fix is to fill in the registered company name (in UBL terms, cac:PartyLegalEntity/cbc:RegistrationName under AccountingSupplierParty).

BR-CO-14 - the VAT figures disagree
The invoice-level VAT total is not the sum of the per-category VAT amounts, often by a single cent of rounding. Always derive the header total from the VAT breakdown instead of calculating it separately.

PEPPOL-EN16931-R020 - the electronic address has no scheme
An EndpointID exists but its schemeID is missing or not on the Peppol Electronic Address Scheme list. Pick a registered scheme, for example 0088 (GLN), 0192 (Norwegian organisation number), or 9930 (German VAT number).

BR-S-08 - a standard-rate line at 0%
A line is marked with VAT category S (standard rate) yet carries a zero percentage. If no VAT is genuinely due, the line belongs in category Z (zero-rated) or E (exempt) instead.


Failed the check? You do not need to touch the XML

Hand-editing angle brackets is nobody's job description. Build a Peppol-ready UBL invoice with the guided form, which handles the electronic addresses and VAT breakdown for you, or turn an existing PDF invoice into UBL and run it back through this validator.

Not sure why an Access Point sits between you and your customer in the first place? Our guide to how Peppol works walks through the network, the four-corner model, and where validation fits.

Ready for the Peppol mandates?

Get your invoicing Peppol-ready today

Sign up to unlock unlimited tool use, Peppol network delivery and every premium feature.

EN 16931 & Peppol BIS 3.0 compliant Results in seconds No installation Data never stored
20 free uses per day · No card required