Free tool

E-invoice & XRechnungchecker

Free, no sign-up — with KoSIT’s official validation rules. Your invoice is checked right in your browser and never uploaded anywhere.

  • Free, no sign-up
  • KoSIT rules · XRechnung 3.0.2
  • Nothing is uploaded
How it’s checked

Three checks, like the official validator

The checker runs the checks of KoSIT’s configuration of 31 Aug 2026 in the same order — with the published rules, unchanged.

  1. 01

    Structure (XML schema)

    Is the file built correctly? Every element is checked against the official schema — UBL 2.1 or UN/CEFACT CII D16B. If this step fails, the check stops here, as KoSIT’s does.

  2. 02

    European standard (EN 16931)

    Mandatory fields, totals, VAT categories and code lists — the standard’s business rules, version 1.3.16. They apply to every e-invoice, ZUGFeRD included.

  3. 03

    German rules (XRechnung)

    What XRechnung asks for on top — such as the buyer reference or Leitweg-ID, the seller contact and payment details. XRechnung 3.0.2, for files that declare themselves as XRechnung.

Privacy

Your invoice stays in your browser

Invoices carry names, addresses, bank details and amounts. That’s why nothing is uploaded here — the check runs entirely on your device.

  • Only the rules come from us

    On the first check, your browser loads KoSIT’s rules from uneno.eu. Your file never travels the other way.

  • No storage, no account

    We don’t receive the file, don’t see its content and store nothing of it. No sign-up needed.

  • Fine for confidential invoices

    Check real invoices with real customer data — they don’t leave your device.

Formats

Which e-invoices are checked

Everything KoSIT’s configuration has rules for — as an XML file, or as a ZUGFeRD PDF with the XML inside.

  • XRechnung

    UBL and CII · invoice and credit note · Extension and CVD included

    XMLXML schemaEN 16931XRechnung
  • ZUGFeRD / Factur-X, profile XRECHNUNG

    The PDF with the XML inside, or the XML on its own

    PDF · XMLXML schemaEN 16931XRechnung
  • ZUGFeRD / Factur-X, profile EN 16931

    Formerly COMFORT — the PDF with the XML inside, or the XML on its own

    PDF · XMLXML schemaEN 16931
  • E-invoice to EN 16931

    UBL or CII without a national extension

    XMLXML schemaEN 16931

Not checked

KoSIT’s configuration has no rules for these — a file in one of these formats is shown as “not checked”, never “not valid”.

  • ZUGFeRD / Factur-X profiles MINIMUM, BASIC WL, BASIC and EXTENDED
  • Peppol BIS Billing 3.0
  • France’s own rules (BR-FR) — a Factur-X is checked against EN 16931
  • Plain PDF invoices without XML inside — they aren’t e-invoices
FAQ

Questions about checking e-invoices

Short answers to what people ask us most.

Is this the official KoSIT validator?

No. It’s a free tool by UNENO that runs KoSIT’s published validation rules, unchanged, in your browser. We tested it against the official KoSIT validator (version 1.6.3): on 121 files — KoSIT’s own test invoices and deliberately broken ones — both came to the same result, rule by rule.

Is my invoice uploaded or stored?

No. The file is read and checked in your browser; only the validation rules are loaded from uneno.eu. We never receive the invoice, so nothing of it is stored — and you don’t need an account.

What is the difference between XRechnung and ZUGFeRD?

XRechnung is pure XML (UBL or CII) and the standard for public authorities; ZUGFeRD is a PDF with the invoice data embedded as XML. Both follow EN 16931. The checker checks XRechnung and ZUGFeRD in the profiles EN 16931 and XRECHNUNG — as a PDF or as the XML on its own.

What do errors, warnings and notes mean?

An error means a rule is broken: the e-invoice is not valid, and the recipient may reject it. A warning is a rule that should be met — the invoice stays valid, but it’s worth fixing. A note is information only. Each finding names its rule (e.g. BR-DE-15) and where in the invoice it is.

What do I do if my e-invoice has errors?

Correct the invoice in the software that created it — each finding names the field (BT-…) concerned — and check it again. If your software can’t produce valid e-invoices, UNENO Invoice creates XRechnung and ZUGFeRD for you, and we test every release against KoSIT’s rules.

Why is my ZUGFeRD invoice “not checked”?

Because KoSIT’s rules only cover the ZUGFeRD / Factur-X profiles EN 16931 and XRECHNUNG. Files in the profiles MINIMUM, BASIC WL, BASIC or EXTENDED, and Peppol BIS invoices, are shown as “not checked” — that says nothing about whether they are valid.

Do I have to issue e-invoices?

It depends on your company’s country. In Germany, yes, if you invoice other German businesses — from 2027 if your turnover in the previous year was above €800,000, from 2028 whatever your size; small businesses under § 19 UStG and invoices to private customers are exempt, and every business has had to be able to receive e-invoices since 1 Jan 2025. In France, every business must be able to receive them from 1 Sep 2026; large and mid-sized companies send them from that day, small and micro-businesses from 1 Sep 2027 — through a certified platform.

Does “valid” mean my invoice is correct?

It means the file meets the format: the XML schema, EN 16931 and — for XRechnung — the German rules. Whether the content is right, for example the VAT rate for your case or the amounts themselves, the check can’t tell; that stays with you or your tax adviser.

E-invoices that pass this check.

UNENO Invoice creates XRechnung, ZUGFeRD and Factur-X straight from your invoices — and we test every release against KoSIT’s rules. Try it free for 14 days, no credit card required.

  • XRechnung, ZUGFeRD & Factur-X
  • Tested against KoSIT’s rules
  • Made & hosted in Germany
  • 14 days free

Components and licences

The checker uses the XRechnung validation configuration of the Koordinierungsstelle für IT-Standards (KoSIT, Apache License 2.0), the EN 16931 validation rules (CEN, EUPL 1.2) and the UBL 2.1 (OASIS) and UN/CEFACT CII D16B (UNECE) schemas — all unchanged.

They run on SaxonJS 2.7 (© Saxonica Ltd, passed on unchanged under the SaxonJS licence) and xmllint-wasm 5.3, based on libxml2 (MIT licence). The full licence texts, with Saxonica’s notice and disclaimer, are in NOTICE.txt.