Free e-invoice validator
Check an XRechnung, ZUGFeRD / Factur-X PDF or Peppol invoice against the official EU and German rules. You get a clear pass or fail and a plain-language explanation of every error.
Official rules
We run the official KoSIT validator with the current XRechnung configuration, the CEN EN 16931 rules, and the OpenPeppol BIS 3.0 rules: the reference rule sets published for these formats.
Errors you can understand
Each failed rule shows its code (like BR-CO-15), the official message, where in the file it happened, and what it means in plain language.
Private by design
Your file is checked in memory and discarded right away. We don't store invoices or keep copies, and there are no trackers on this site. Processed on our server in the EU.
Questions
Which formats can I check?
XRechnung 3.0 in UBL or CII syntax, ZUGFeRD 2.x / Factur-X PDFs (we extract the embedded XML), Peppol BIS Billing 3.0 invoices and credit notes, and any other EN 16931 UBL or CII invoice. ZUGFeRD MINIMUM and BASIC WL profiles are checked against the schema only, because they don't count as full e-invoices.
Is a normal PDF invoice an e-invoice?
No. Under EN 16931, an e-invoice is a structured XML file. A ZUGFeRD / Factur-X PDF counts because it carries that XML inside it. A plain PDF, even one made by accounting software, doesn't.
Who needs valid e-invoices?
In Germany, every business must be able to receive e-invoices since 2025, and must send them for B2B invoices from 2027 (turnover over €800,000) or 2028 (everyone else). In Belgium, B2B invoices must be sent over Peppol since 1 January 2026. France and Poland are rolling out their own mandates in 2026 and 2027.
Does "valid" mean my customer will accept it?
A valid result means the file follows the format's official rules. Your customer can still require things the rules don't cover, such as a specific purchase order number or Leitweg-ID.
Is there an API?
Yes, a simple one for testing: POST the file as multipart field file to https://invoiceer.io/api/validate and you get JSON back. Please keep it to occasional use.
Who runs this?
Invoiceer is run by GetInput Oy, a limited company in the EU. Questions or a file we got wrong? Email [email protected].