Peppol BIS Billing 3.0 validator
Upload a Peppol BIS Billing 3.0 invoice or credit note (UBL 2.1) and this page checks it the way an access point does before it sends: the UBL 2.1 schema, the CEN EN 16931 rules 1.3.16 and the OpenPeppol rules of release 3.0.21 (PEPPOL-EN16931-*, PEPPOL-COMMON-*, the national rules), each finding with its rule id and the XPath of the element. No account, 4 checks a day; the file is not stored.
Check an e-invoice
- The rule files as OpenPeppol and CEN publish them, evaluated in-process: on our sample set this validator and the KoSIT validator running the same Peppol rules name the same rule ids.
- Belgium has no national rule set in Peppol BIS: the one Belgian rule is PEPPOL-COMMON-R043, the enterprise number under scheme 0208 (mod 97). Belgian practice (rates 21/12/6 %, the structured communication) comes as Veriport warnings, labelled.
- An access point refuses a file that fails these rules: checking first saves a rejected transmission. This page does not send anything; an access point does.
- Belgium: structured e-invoicing between businesses through Peppol since 1 January 2026. Not tax advice.
What is checked
The UBL 2.1 schema of an Invoice or a CreditNote, then the CEN EN 16931 rules (BR-*, BR-CO-*, the VAT category rules, the code lists BR-CL-*) and the Peppol rules (PEPPOL-EN16931-R*, -CL*, PEPPOL-COMMON-R*). A file that claims another profile (XRechnung, EN 16931 CII) is checked against its own rules instead, and the report says which.
Common failures
- PEPPOL-EN16931-R003: neither a buyer reference (BT-10) nor a purchase order reference (BT-13).
- PEPPOL-EN16931-R002: more than one document note.
- PEPPOL-EN16931-CL008: an electronic address scheme outside the Peppol list (e-mail is not a Peppol address).
- PEPPOL-COMMON-R043: a Belgian enterprise number whose check digits fail.
- BR-CL-23: a unit code outside UN/ECE Recommendation 20 (fatal in Peppol).
For developers
This page calls POST https://veriport.io/api/v1/einvoice/validate without a key. With a free key, 100 calls a month (a check is 5); POST /einvoice/create with format: "peppol-bis" writes the Peppol file from JSON (Belgian seller in v1) and checks it before returning it.
Questions
- Is this the official Peppol validator?
- No. Veriport is published by Janolab Studio LLC and runs the rule files OpenPeppol publishes; access points and OpenPeppol’s own tooling run the same files. Not affiliated with OpenPeppol; « Peppol » is used descriptively.
- Is my invoice kept?
- No. It is checked in memory and discarded; only the call is counted.
- Does a valid result mean my access point will accept it?
- It means the file passes the published rules of release 3.0.21. An access point may also check the envelope (SBDH) and the recipient’s registration, which a file check cannot see.
Automate this: 100 free calls a month, then from $9.
Get a free keySources
- Peppol BIS Billing 3.0 — specification, identifiers, code lists and rules — OpenPeppol AISBL, consulted 2026-10-28. « Peppol » is a trademark of OpenPeppol; used descriptively.
- Peppol BIS Billing 3.0 release 3.0.21: PEPPOL-EN16931-UBL.sch and the CEN files it ships — OpenPeppol AISBL, consulted 2026-10-28
- EN 16931 validation artefacts 1.3.16 (UBL and CII schematron, the business rules BR-*) — CEN/TC 434, published with the European Commission (Connecting Europe), consulted 2026-10-28
- SPF BOSA — e-invoicing between Belgian businesses, structured (Peppol BIS) since 1 January 2026 — SPF BOSA (Belgium), consulted 2026-10-28