Invoir

E-invoice validator

Check a ZUGFeRD or Factur-X PDF, or an XRechnung or Peppol BIS XML file, against the official rules. You get a readable report with every rule ID, message and location. Free, no signup.

or drop it here · up to 10 MB

Files are checked in memory and discarded right away. Nothing is stored or logged.

What gets checked

ZUGFeRD and Factur-X (PDF)

A hybrid invoice: a PDF/A-3 that people read, with the structured invoice attached as CII XML (factur-x.xml, zugferd-invoice.xml or xrechnung.xml). ZUGFeRD (Germany) and Factur-X (France) have been the same standard since ZUGFeRD 2.1.

We check PDF/A-3 conformance with veraPDF, the Factur-X metadata in the PDF, and then the XML against the XML Schema and Schematron of its profile: MINIMUM, BASIC WL, BASIC, EN 16931 (COMFORT), EXTENDED or XRECHNUNG. MINIMUM and BASIC WL carry too little data to be EN 16931 e-invoices; in Germany they count as “other invoices”.

XRechnung (UBL or CII XML)

Germany’s national specification (CIUS) of EN 16931, maintained by KoSIT. Required for invoices to German public authorities and accepted for German B2B e-invoicing. Plain XML in UBL 2.1 or UN/CEFACT CII syntax, or embedded in a ZUGFeRD PDF with the XRECHNUNG profile.

We run the KoSIT validator with the official XRechnung 3.0.2 configuration, the same check German public-sector portals use, including its accept/reject decision.

Peppol BIS Billing 3.0 (UBL XML)

The invoice and credit note format of the Peppol network, a CIUS of EN 16931 maintained by OpenPeppol. Belgium’s B2B mandate (2026) runs on Peppol, as does e-invoicing in the Nordics, the Netherlands, Australia, Singapore and more.

We check the UBL 2.1 schema, the CEN EN 16931 rules and the Peppol BIS 3.0.21 rules, including their country-specific rules.

EN 16931

The European standard behind all of the above: one semantic data model with two syntaxes, UBL and CII. Files that declare plain EN 16931 (urn:cen.eu:en16931:2017) are checked against the CEN rules.

Questions

Are my files stored?
No. Each file is processed in memory and discarded as soon as the report is sent back. File names and contents are not logged.
Which rule versions are used?
XRechnung 3.0.2 (KoSIT configuration 2026-08-31) with KoSIT validator 1.6.3; Peppol BIS Billing 3.0.21; Factur-X / ZUGFeRD and PDF/A-3 with Mustang 2.26.0 and veraPDF. Every report also names the engine and rules behind each check.
How do I see the XML inside a PDF?
The report shows it under “Embedded XML”, or use the embedded XML viewer to extract it without validating.
Is there a limit?
Files up to 10 MB, and a fair-use limit per IP address so the service stays fast for everyone.
Can I validate from my own code?
Not publicly yet. Invoir is building an API that turns JSON into a branded invoice PDF with the compliant XML embedded, validated with these same rules before it is returned.

Generating e-invoices in your product? Send JSON, get a validated ZUGFeRD, Factur-X, XRechnung or Peppol BIS invoice back.

See the Invoir API