Free validator

XRechnung validator. Official KoSIT, exact fix.

Drop an XRechnung XML or a ZUGFeRD / Factur-X PDF. XRechnung (UBL or CII) goes to the official KoSIT validator; ZUGFeRD / Factur-X and Peppol BIS get our structural EN 16931 check. You get every failed rule with a plain-language message, a fix, and the field in your JSON where we can map it. No account, nothing stored.

A PDF stays on your device; only its embedded XML is sent, for this request only. Nothing is stored.

Validation report

Paste or drop an e-invoice XML, or a ZUGFeRD / Factur-X PDF, to see the report — XRechnung (UBL or CII) is checked by the official KoSIT validator, ZUGFeRD / Factur-X and Peppol BIS against the structural EN 16931 rules.

What is checked

  • XRechnung (UBL or CII): the official KoSIT validator 1.6.2 with the XRechnung 3.0.2 configuration, including XML schema and all business rules.
  • ZUGFeRD / Factur-X (XML, or the XML inside a PDF) and Peppol BIS: normbill's structural EN 16931 check of mandatory data, totals and tax.
  • A PDF is checked for its invoice XML, not as a PDF/A-3 file.

Sample files

Need a valid XRechnung to test against? UBL and CII sample files the KoSIT validator accepts, plus one with a typical error (German page).

Common failures

BR-DE-15 (buyer_reference / Leitweg-ID), BR-DE-1 (payment means), BR-DE-2 (seller contact).

Via the API

POST /v1/invoices/validate — the same report as this page. Docs.

Free readiness check

Want a human to look at it?

Send us the invoice XML your system produces today — we'll reply with the three things most likely to break before the 2027 issuing mandate, from the same KoSIT-backed pipeline. Free, no account, one working day. Your file is reviewed by a human and deleted once we've replied.

Request the readiness check→

Validator questions.

Something unclear in a report? support@normbill.com — a human replies.

Is the validator free?

Yes. No account, no card; a fair-use limit per visitor applies.

Is my invoice stored?

No. A PDF never leaves your device: we unpack its embedded XML in your browser. The XML is sent to the validator for this one check and is not stored.

Do you check ZUGFeRD with the KoSIT validator?

Only when the XML carries the XRechnung profile. KoSIT's validator checks XRechnung; other ZUGFeRD / Factur-X and Peppol BIS files get our structural EN 16931 check. We check the invoice XML inside a PDF, not the PDF/A-3 file itself.

What does an error like BR-DE-15 mean?

Every finding links to its rule page with the meaning and the fix. BR-DE-15, for example, is the missing buyer reference, which public buyers expect to hold their Leitweg-ID.

Where do I get a valid sample file?

On the XRechnung sample page (German): UBL and CII files the KoSIT validator accepts, plus one with a typical error.

Spotted something?

Bug, missing feature, wrong validation result — tell us. The page you're on is attached automatically; email optional.