Valinvo

Free Peppol BIS Billing 3.0 validator

Valinvo's free validator checks a Peppol BIS Billing 3.0 invoice or credit note (UBL XML) against the official rules and lists every problem with its rule ID, its location in the file and a message. You need no account and no API key, and your file is processed in memory and not stored.

Open the validator · Use it from code (API quickstart)

What it checks

The rules come from OpenPeppol and CEN and are applied as published. The validator also recognises XRechnung files, so you can use the same page for both. See the XRechnung validator.

How to use it

  1. Open the validator, paste the XML or upload the file.
  2. Click Validate. You can first try the built-in valid Peppol sample or the broken XRechnung sample.
  3. Read the list: each error shows the rule ID, the location and what is wrong. Fix the invoice in your system and validate again.

From code: the same check as an API

curl -X POST https://valinvo.bmk-hub.com/v1/validate \
  -H 'X-Accept-Terms: 1.0' \
  -H 'Content-Type: application/xml' \
  --data-binary @invoice.xml

A valid invoice returns:

{"ruleSet": "peppol-bis-3.0.21-ubl-invoice", "valid": true, "errors": [], "warnings": []}

An invoice with problems is a normal 200 answer with valid: false and the list of errors. Warnings do not make an invoice invalid. More in the quickstart.

Common Peppol errors

For Belgian companies the endpoint ID normally uses the scheme 0208 with the ten-digit enterprise number (no dots). Other countries use other schemes: see the country notes in the quickstart.

Questions

Is the validator really free? Yes. The online validator needs no account or API key. The API can also be tried without a key, with a small daily limit for creating invoices.

Is my invoice stored? No. The file is processed in memory and not stored. Please use sample data or invoices you are allowed to share.

Does "valid" mean it reaches the buyer? No. The check applies the official rules as published. Delivery needs a Peppol access point, and a valid file cannot guarantee that a recipient accepts it. It is not tax or legal advice.

Can Valinvo create the invoice too? Yes. You send one JSON invoice and receive Peppol BIS or XRechnung XML that has been checked against the same rules. See the quickstart.

By using the validator you accept the Terms of Use.

Quickstart · XRechnung validator · Peppol validator · ZUGFeRD / Factur-X validator · ZUGFeRD-csharp: your options · Error codes