Free PEPPOL Validator — BIS 3.0, XRechnung, Factur-X & EN 16931

Check any UBL 2.1 XML invoice against the latest PEPPOL BIS Billing 3.0 and EN 16931 business rules. Free, no signup, instant results with the exact rule ID for every error and warning.

How the PEPPOL validator works

1

Upload UBL XML

Drag and drop or pick the UBL 2.1 XML file. The validator accepts both invoices and credit notes. Files are processed in your browser session and not retained.

2

Run BIS 3.0 + EN 16931 checks

The validator runs the official PEPPOL BIS Billing 3.0 schematron, EN 16931 rules, calculation checks, code-list validation and date logic in one pass.

3

Read the report

Errors and warnings come back with the exact rule ID (BR-CO-15, BR-S-08, BR-DEC-12 and so on) and a plain-English description, so you know what to fix and where.

What gets validated

Mandatory PEPPOL fields

Supplier identification, customer identification, invoice number, issue date, due date, invoice type code, currency and at least one valid invoice line.

Calculation accuracy

Line extension amounts, tax category subtotals, total tax, total amount with and without tax, payable amount — every calculation is re-run and compared.

VAT category logic

Standard, reduced, zero-rated, exempt, reverse charge and intra-community supply categories each have their own validation rules — all are checked.

Code lists & formats

Currency codes (ISO 4217), unit codes (UN/ECE Rec 20), tax category codes and date formats (YYYY-MM-DD) are validated against official lists.

Beyond PEPPOL: other formats we validate

The same validator handles every major European e-invoice format. Upload the file and the system auto-detects which standard to apply — no manual format selection.

XRechnung 3.x (Germany)

German federal and state e-invoicing CIUS. Both UBL and CII syntax. EN 16931 checks plus all XRechnung-specific rules (BR-DE-*, CII-DE-*) using the official KOSIT schematron.

RO-CIUS (Romania e-Factura)

Romania's national CIUS for ANAF e-Factura. Invoices and credit notes are checked against the UBL structure (XSD), the EN 16931 core rules and Romania's national ANAF business rules (BR-RO-*) — the same rule set the SPV portal applies before clearance.

CIUS-FR (France B2B / FR-CTC)

France's FR-B2B-CTC profile of EN 16931 (AFNOR XP Z12-012). Both UBL and CII syntax are validated against the EN 16931 core rules plus the FNFE-MPE BR-FR-CTC business rules, ahead of the French B2B mandate from September 2026.

NLCIUS (Netherlands SI-UBL 2.0)

The Dutch national CIUS of EN 16931, used on the Netherlands Peppol network. A pure restriction with no national extension, so invoices are checked against the UBL structure (XSD), the EN 16931 core rules and the Dutch SI-UBL business rules (BR-NL-*) from the official Peppolautoriteit schematron.

CIUS-PT (Portugal)

Portugal's national CIUS of EN 16931, published by eSPap / FE-AP and required of B2G suppliers. Invoices are validated against the UBL structure, the EN 16931 core rules and the Portuguese business rules (BR-PT-*); ATCUD, the QR code and SAF-T are handled outside the invoice.

Factur-X / ZUGFeRD (PDF)

Upload a Factur-X or ZUGFeRD PDF/A-3 directly — the system extracts the embedded CII invoice XML and validates against the matching profile (MINIMUM, BASIC-WL, BASIC, EN 16931, or EXTENDED).

EN 16931 (European core)

Pure European core invoice without country extensions. Useful for cross-border EU exchanges where neither party mandates PEPPOL or a national CIUS. Both UBL and CII syntax.

Facturae (Spain)

Spain's national e-invoice format, required by FACe and Spanish public-sector buyers. Versions 3.2, 3.2.1 and 3.2.2 are validated against the official XSD plus business rules: NIF/CIF checksums, line and invoice totals, batch consistency and IBAN checks — with a reminder if the XAdES signature is missing.

Estonian e-arve (Eesti Pangaliit)

The domestic Estonian e-invoice format used by LHV, SEB, Swedbank and operators (Finbite, Omniva, Telema). Both schema versions 1.11 and 1.2 are validated. Business rules cover registry codes, IBAN MOD-97 and amount consistency.

PEPPOL BIS 3.0 Ordering

Purchase orders (UBL Order) conforming to the PEPPOL Ordering profile (T01). XSD schema plus the full PEPPOL Order rule set including ISO currency, country and UN/CEFACT codelist checks.

Automatic format detection

Detection uses the XML root element and CustomizationID URN (or the embedded XML inside a PDF). No format dropdown to fill in, no risk of selecting the wrong rule set.

Why validate before sending?

PEPPOL Access Points enforce BIS Billing 3.0 rules at the network edge. An invoice with a single mandatory-field violation or a calculation mismatch will be rejected before it reaches your buyer. By validating locally first you catch issues immediately — and avoid awkward back-and-forth, payment delays and compliance penalties.

The aiDoks validator uses the same schematron and rule set the official PEPPOL test beds use. If the validator says "valid", the invoice will pass at the Access Point. If it says "errors", you get the exact rule ID and a fix hint, so the next iteration is fast.

Common validation errors and how to fix them

  • BR-CO-13 — Invoice tax total mismatch. The Total Tax Amount must equal the sum of tax category subtotals. Re-check VAT rates on each line.
  • BR-CO-15 — Total payable amount mismatch. Total + Allowances - Charges must equal the Payable Amount.
  • BR-S-08 — Standard-rated VAT but rate is missing or zero. Add the correct standard VAT rate to the tax category breakdown.
  • BR-DEC-12 — Amount has more than 2 decimals. Round line and tax amounts to 2 decimal places.
  • BR-15 — Missing customer party. Add the buyer's legal name and registered address.

Validating supplier-issued invoices

The validator works on any UBL 2.1 XML invoice, not just those generated by aiDoks. Use it to sanity-check files received from suppliers, exported from Xero / SAP / Odoo / Standard Books, or generated by your own ERP.

PEPPOL validator: FAQ

What does the PEPPOL BIS 3.0 validator check?

The validator runs the full set of EN 16931 and PEPPOL BIS Billing 3.0 business rules against your UBL XML invoice. It checks mandatory fields, data formats, code lists (currency, unit, tax category), VAT category logic, calculation accuracy (line totals, tax totals, payable amount) and date logic. Errors and warnings are reported with the official rule ID (e.g. BR-CO-15) so you know exactly what to fix.

Does aiDoks also validate XRechnung, Factur-X / ZUGFeRD and other formats?

Yes. The same validator handles every major European e-invoice format: PEPPOL BIS 3.0 Billing and Ordering, XRechnung 3.x (UBL and CII), RO-CIUS (Romania e-Factura), CIUS-FR (France), NLCIUS (Netherlands SI-UBL 2.0), CIUS-PT (Portugal), pure EN 16931, Factur-X / ZUGFeRD (all 5 profiles, PDF or raw CII XML) and Estonian e-arve (versions 1.11 and 1.2). National CIUS profiles are checked against the EN 16931 core rules plus their country-specific business rules (BR-RO-*, BR-FR-CTC, BR-NL-*, BR-PT-*). The format is auto-detected from the XML root element and CustomizationID — no manual selection needed.

Is the validator free to use?

Yes. The validator is completely free and does not require an account. Upload any e-invoice XML or Factur-X / ZUGFeRD PDF and the tool returns a detailed validation report instantly.

Which file formats does the validator accept?

Upload UBL 2.1 XML invoices, CreditNotes or Orders conforming to PEPPOL BIS 3.0 or EN 16931; CII (UN/CEFACT) invoices for XRechnung or Factur-X; or upload a Factur-X / ZUGFeRD PDF/A-3 directly — the server extracts the embedded CII XML automatically. Estonian e-arve XML (E_Invoice root) is also accepted.

How do I fix validation errors?

Each error in the report includes the rule ID (e.g. BR-CO-13 for tax total mismatch) and a plain-English description. Common fixes include adding missing mandatory fields (supplier VAT, customer name, due date), correcting calculation totals, fixing date formats (YYYY-MM-DD), and using the right tax category and unit codes. Re-upload after fixing — the validator runs again instantly.

Can I validate invoices from any accounting software?

Yes — the validator is system-agnostic. As long as the invoice is exported as PEPPOL-compliant UBL 2.1 XML, XRechnung, EN 16931 CII, Factur-X / ZUGFeRD or Estonian e-arve, it can be validated. This makes it useful for testing exports from Xero, SAP, Odoo, NetSuite, Standard Books, DATEV, Lexware, Finbite, Telema and any other e-invoicing platform.

Validate your invoice in seconds

Free, anonymous, and accurate to the latest PEPPOL BIS 3.0 rules.