XRechnung validator with the official KoSIT rules
Check an XRechnung before you send it or before you book it. The report lists each failed rule with its official ID, where it occurs in the XML and how to fix it.
Drop an e-invoice here
XML (XRechnung, Peppol BIS, UBL, CII) or PDF with embedded XML (ZUGFeRD, Factur-X)
No file at hand? Try a sample:
- Nothing is uploaded — the file is read in this browser tab
- Official EN 16931 (CEN) and XRechnung (KoSIT) rules
- Every error explained in plain language, with the fix
How to validate an XRechnung
- 1Drop the XRechnung XML onto the field above, or click to choose it.
- 2The syntax (UBL or CII) is detected automatically and the matching rule sets are applied.
- 3Read the validation report: errors first, then warnings, each with rule ID, message, XPath and a highlighted XML snippet.
- 4Fix the issue in the software that produced the invoice, export it again and drop the new file to re-check.
- 5If you need a readable copy, switch to the invoice view and print it or save it as a PDF.
Who needs to validate XRechnung files
Senders. Under § 27 (38) of the German VAT Act, the transition period for issuing paper or non-structured invoices in domestic B2B ends on 31 December 2026. From 1 January 2027, businesses whose total turnover in the previous year exceeded €800,000 must issue e-invoices; from 1 January 2028 everybody must, apart from the exemptions for invoices up to €250 and for small businesses under the Kleinunternehmer scheme. If your software is about to start producing XRechnung, test its output now.
Recipients. Since 1 January 2025 German businesses must be able to receive e-invoices. An invoice that breaks the rules can cause problems in automated processing, and it is easier to ask the supplier for a corrected file before it is booked than afterwards.
As of October 2026, no postponement of the 2027 stage has been adopted, although trade associations such as the ZDH have asked for one. Details are in the guide to e-invoicing in Germany.
Which rules are checked
| Layer | Rule IDs | Published by |
|---|---|---|
| XML Schema | – | OASIS (UBL 2.1), UN/CEFACT (CII D16B) |
| EN 16931 core rules | BR-*, BR-CO-*, BR-S-*, BR-AE-* etc. | CEN/TC 434, artefacts 1.3.16 |
| XRechnung national rules | BR-DE-* | KoSIT, Schematron 2.6.0 for XRechnung 3.0.2 |
This is the same rule combination as the official KoSIT validator configuration of 31 August 2026. The versions are printed at the top of every report, so you can tell exactly which rules your file was checked against.
How to read the report
Findings are grouped by severity. Errors (fatal) mean the invoice does not conform and should not be sent as it is. Warnings point to something that is allowed but questionable. For each finding you see:
- the official rule ID, for example BR-DE-15
- the official message text from the rule set, unchanged
- the XPath location of the element concerned
- the relevant part of the XML, highlighted
- for about 60 of the most common rules, a plain-language explanation and a suggested fix
Common errors and what they mean
- BR-DE-15 – the buyer reference (BT-10) is missing. For public-sector buyers this is the Leitweg-ID; in B2B it is whatever reference the buyer gave you. Ask the customer if you do not have one.
- BR-DE-1 – no payment instructions (BG-16). XRechnung requires the payment means to be stated, even if the invoice is already paid.
- BR-DE-2 – the seller contact (BG-6) is missing. A name, phone number and email address of a contact at the seller are expected.
- BR-DE-23 – the payment means code says credit transfer, but the credit transfer details (IBAN) are missing or incomplete.
- BR-CO-10 / BR-CO-15 – the totals do not add up. The sum of line net amounts, or the total including VAT, does not match the stated values. Often a rounding issue at line level.
Privacy
Validation runs inside your browser. The invoice is never uploaded and there is no server-side processing. The only network requests are for this page and the official rule files, which are the same for everybody. Nothing is stored; close the tab and the data is gone. No account is needed, which also makes the tool suitable for invoices containing personal data.
Frequently asked questions
Is this the same as the official KoSIT validator?
It uses the same published rule files in the same combination as the KoSIT validator configuration of 31 August 2026. It is an independent implementation that runs in your browser, not the KoSIT software itself.
My file passes. Does that mean the invoice is correct?
It means the file meets the checked technical rules. Whether the content is right, for example the VAT rate or the description of the supply, is not something a validator can decide.
Which XRechnung version is supported?
XRechnung 3.0.2, checked with KoSIT Schematron 2.6.0. Files declaring older versions are checked against the current rules, and the report says so.
Can I validate ZUGFeRD files here?
Yes. A ZUGFeRD file in the XRECHNUNG profile is checked against the same rules. For other ZUGFeRD and Factur-X profiles, use the Factur-X validator.
What is the difference between an error and a warning?
Errors are rules flagged as fatal: the file does not conform. Warnings are flagged as advisory: the file conforms, but something may cause trouble at the recipient.
Do I need an account or an API key?
No. Drop the file and read the report. A validation API is planned for teams who want to automate the check.
Sources
- § 27 (38) UStG – transitional rules for issuing e-invoices (checked 2026-10-28)
- BMF letter of 15 October 2025 on mandatory e-invoicing (checked 2026-10-28)
- KoSIT – XRechnung Schematron (GitHub) (checked 2026-10-28)
- CEN/TC 434 – EN 16931 validation artefacts (checked 2026-10-28)
Last reviewed 28 October 2026