ARLing

E-invoicing under EN 16931

Peppol validator.Validate Peppol invoice files in your browser.

You received a UBL file, or built one, and you want to know whether it will be accepted before you send it. Drop it here and the validator gives you, for every finding, the rule code, a sentence in plain English, the path to the element and the original English wording of the rule behind a disclosure link. Which rule set applies is decided by the CustomizationID field: EN 16931, Peppol BIS Billing 3.0 or XRechnung 3.x. The file is read in your browser and never uploaded.

  • 332 rule codes from EN 16931, Peppol BIS Billing 3.0 and XRechnung 3.x
  • findings in plain English, with the path to the element and the rule quoted
  • validation and preview free, no account, no limit
2.90 €

for the XML download of one invoice, or 9.90 € for 30 days with no limit on the number of invoices. Check and preview are free.

  • fill in the form and watch the document build itself
  • the XML is made in your browser, nothing goes to a server
  • our own check runs over it before you download
Validate a file now

Seller: ARLing s. r. o., company ID 56583486, Bratislava, Slovakia. Stripe handles the payment.

The tool

Check an e-invoice

Load a UBL 2.1 file (Invoice or CreditNote) and we tell you what is wrong with it. Every finding carries the rule code, a sentence in plain English explaining what to fix, the path to the element, and the original wording of the rule under a disclosure link. We read the CustomizationID field and pick the rule set ourselves: EN 16931, Peppol BIS Billing 3.0 or XRechnung.

Drop the XML file here
or click and pick it from your computer

What we check and what we do not

An honest list, not a promise of completeness.

We check 332 rule codes. That covers the core rules of EN 16931 (BR-01 to BR-65), the total rules BR-CO, the decimal rules BR-DEC, the code list rules BR-CL, the rules per VAT category (S, Z, E, AE, K, G, O, L, M), the rules of Peppol BIS Billing 3.0 including the check digits of national identifiers, the rules of XRechnung 3.x (BR-DE-1 to BR-DE-31), and thirteen checks of our own: IBAN by mod 97, the shape of German, Slovak, Czech and Austrian VAT numbers, the format of the German Leitweg-ID, the order of dates and the currency code.

We do not check the UBL 2.1 XSD schema, so neither element order nor data types. We do not check the 755 rules in the UBL-CR, UBL-SR and UBL-DT groups, which mostly point at elements that should not be there. We apply no rules over the CII syntax: such a file we recognise and say so. Passing our check therefore does not guarantee that the buyer, the buyer invoicing system or the Peppol network will accept the invoice. It is a good first check, not the last word.

The rule wordings come from the official schematron files: EN 16931 from ConnectingEurope, Peppol BIS Billing 3.0 from OpenPEPPOL and XRechnung from KoSIT. Rule codes and rule texts are normative, so we quote them alongside the rule code and write our own explanation of what to fix.

Questions

What people ask.

What does this Peppol validator check?

332 rule codes: the core rules of EN 16931 (BR-01 to BR-65), the total rules BR-CO, the decimal rules BR-DEC, the code list rules BR-CL, the rules per VAT category, the rules of Peppol BIS Billing 3.0 including check digits of national identifiers, the rules of XRechnung 3.x (BR-DE-1 to BR-DE-31) and thirteen checks of our own, such as IBAN mod 97 and the shape of a German Leitweg-ID.

Is my invoice uploaded anywhere?

No. The file is read by your browser and checked there; it does not leave your machine. We create no account and store nothing. Exactly one thing goes to a server, and only if you buy: after you come back from the payment, we ask whether that payment went through.

How does the validator know which rules apply?

From the CustomizationID field, term BT-24. For Peppol BIS Billing 3.0 the value is urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0; for XRechnung 3.0 it ends with xrechnung_3.0. The validator reads that field and picks the rule set itself, there is nothing to configure.

What does it not check?

It does not check the UBL 2.1 XSD schema, so neither element order nor data types. It does not check the 755 rules of the UBL-CR, UBL-SR and UBL-DT groups, which mostly flag surplus elements. It applies no rules to the CII syntax: such a file we recognise and tell you so. Passing here is a good first check, not a guarantee that the receiver or the network will accept the invoice.

Why does it report BR-CO-15?

BR-CO-15 requires the invoice total with VAT (BT-112) to equal the total without VAT (BT-109) plus the total VAT amount (BT-110). It is usually a single cent: your software computes VAT line by line and rounds, while the standard wants one VAT amount per rate, computed from the whole taxable amount. Correct the total in the invoice header, not the individual lines.

Is validating free?

Yes, validation and the document preview are free, with no account and no limit. You pay only if you use the generator to build a new invoice and want to download the finished XML: 2.90 € for one invoice or 9.90 € for 30 days.

What this is and what it is not

A template and a check, not tax advice.

This tool checks the shape of the file and assembles a UBL 2.1 invoice from what you type. It does not judge whether you should charge VAT, which rate applies to a supply, whether the reverse charge applies, or whether the supply is taxable at all. That is tax advice, and that is what an accountant or a tax adviser is for. Whoever issues the invoice is responsible for it being right.

We do not create an account and we do not store your data. The file and the form live in your browser; the address book for sellers and buyers sits in localStorage and a button in the form erases it. Exactly one thing goes to a server: after you come back from the payment, we ask whether that payment went through.

We offer VAT rates only for the countries we verified at an official source. For any other country the generator asks you to type the rate yourself rather than guessing it for you.

When a law, a schematron or a version of the specification changes, we adjust the rules and write it here with a date. The facts on this page we verified at the official sources listed above on 11 September 2026.