Short version
- The KoSIT validator is Java software. It only validates together with a configuration (for XRechnung: validator-configuration-xrechnung).
- It is the reference for XRechnung: schema, EN 16931, BR-DE rules and an “acceptable” or “reject” recommendation.
- For a quick check without Java, our online validator checks an XRechnung against the EN 16931 rules and the KoSIT BR-DE rules, without XML Schema validation. For binding XRechnung conformance, use the KoSIT validator.
What is the KoSIT validator?
KoSIT (Koordinierungsstelle für IT-Standards, the German Coordination Office for IT Standards in Bremen) maintains the XRechnung standard on behalf of the federal and state governments. To check e-invoices it publishes its own tool: the KoSIT validator, often called the “KoSIT Prüftool” in German. The source code is public on GitHub at itplr-kosit/validator.
Technically the validator is a generic XML validation engine. It detects the document type, validates it against XML Schema and Schematron, builds a report and computes an acceptance recommendation. What it checks is not hard-coded. It comes from a scenario configuration (scenarios.xml). A scenario says: for this document type, use these schemas, these Schematron files and these report rules.
For XRechnung, KoSIT publishes that configuration separately as validator-configuration-xrechnung. It bundles the UBL 2.1 and CII schemas, the CEN EN 16931 Schematron and the Schematron for the XRechnung CIUS and the XRechnung Extension. Releases are named by date and state the matching XRechnung version, most recently the 3.0 line.
Installation and usage
- Install Java. The standalone JAR runs on Java 11 or later.
- Download the validator. The itplr-kosit/validator release page has a ZIP with the JAR variants. You need
validator-<version>-standalone.jar. Up to version 1.5.0 the file was calledvalidationtool-<version>-standalone.jar; older guides still use that name. - Download the XRechnung configuration and unzip it into a folder. It contains
scenarios.xml. - Validate an invoice:
java -jar validator-<version>-standalone.jar \ -s <config>/scenarios.xml \ -r <config> \ -h invoice.xml
-s points to the scenario file, -r to the folder with the schemas and Schematron (the “repository”). -h writes the HTML part of the report to a file, -p prints the report to the console. You can pass several files at once. --help lists all options.
Daemon mode: with -D the validator starts as an HTTP service. Your application POSTs the XML and gets the report back. Many ERP and accounts-payable systems integrate it this way, so they do not start a new Java process for every invoice.
java -jar validator-<version>-standalone.jar \ -s <config>/scenarios.xml -r <config> -D
In Java applications you can also embed the validator as a library (Maven coordinates org.kosit:validator).
Reading the report
The validator always writes an XML report. The XRechnung configuration embeds an HTML view in it: the recommendation at the top, then every message with rule ID, severity, text and the XPath of the affected element, followed by a readable rendering of the invoice.
- acceptable: no error that the scenario treats as a reason to reject. Warnings are possible.
- reject: at least one error (schema, or a Schematron rule with level “error”). The receiver may refuse the invoice.
Common reasons for a reject on XRechnung are a missing or wrong Leitweg-ID as buyer reference (BR-DE-15, see Leitweg-ID), missing seller contact details (BR-DE-2, BR-DE-5 to BR-DE-7), a wrong specification identifier in BT-24, or EN 16931 total errors such as BR-CO-15. Our online validator also finds the EN 16931 errors and the BR-DE errors; schema errors only show up in the KoSIT validator.
KoSIT validator vs peppolvalidator.com: what is checked
Our validator is not a copy or an online version of the KoSIT validator. It runs the official Schematron rules in the cloud, with nothing to install: the CEN EN 16931 rules and, for an XRechnung, the KoSIT XRechnung rules with the severity levels of the KoSIT scenarios. It runs the Peppol BIS Billing 3.0 rules only on Peppol BIS files, not on an XRechnung. The table shows the differences.
| Check | KoSIT validator + XRechnung configuration | peppolvalidator.com |
|---|---|---|
| XML Schema (UBL 2.1 / CII D16B) | Yes | No, well-formedness and Schematron only |
| EN 16931 business rules (BR-, BR-CO-, BR-CL-) | Yes | Yes, UBL and CII (EN 16931 1.3.16) |
| XRechnung CIUS (BR-DE-*) and Extension (BR-DEX-*) | Yes | Yes, KoSIT schematron 2.6.0 (XRechnung 3.0.2) |
| Severity levels from the KoSIT scenario | Yes | Yes, for XRechnung 3.0 (standard, Extension, CVD) |
| Peppol BIS Billing 3.0 (PEPPOL-EN16931-*) | Only with a separate Peppol configuration | Yes, for Peppol BIS files (UBL). Not for XRechnung |
| Accept / reject recommendation per KoSIT scenario | Yes | No, a list of errors and warnings |
| Official KoSIT tool | Yes | No, independent service |
| HTML report | Yes, local file (option -h) | Yes, in the browser |
| ZUGFeRD / Factur-X PDF | No, extracted XML only | No, XML only |
| Installation | Java 11+, JAR and configuration | None, runs in the browser |
Which tool should I use?
Online pre-check with our validator when you want to know fast whether an invoice meets the European standard and the XRechnung rules: when you test new invoicing software, answer a customer question, send over Peppol to receivers in other countries, or cannot install Java. You see every error with its rule ID and a fix hint.
KoSIT validator when the invoice goes as XRechnung to a German public body (ZRE, OZG-RE or a state portal), when a receiver explicitly requires XRechnung conformance, or when you need automated validation inside your own system. Only the KoSIT validator with the current configuration also validates the XML Schema and gives the official accept/reject recommendation.
In practice the two work well together: find and fix the EN 16931 and BR-DE errors online first, then run the XRechnung through the KoSIT validator as the final check. More on the formats: XRechnung validator, E-Rechnung validator and ZUGFeRD vs Factur-X vs XRechnung.
Related pages
- XRechnung validator: check XRechnung online against the EN 16931 and BR-DE rules.
- ZUGFeRD and ZUGFeRD validator: profiles, structure and validating the CII XML.
- German e-invoicing mandate: the 2025, 2027 and 2028 deadlines.
- Leitweg-ID: structure, check digit and BR-DE-15.
- Peppol in Germany: how XRechnung and Peppol fit together.
- Peppol validation errors: every BR and PEPPOL rule with a fix.
Frequently asked questions
What is the KoSIT validator?
The KoSIT validator is an open-source Java validation tool from KoSIT (Koordinierungsstelle für IT-Standards), the German body that maintains XRechnung. It checks XML documents against XML Schema and Schematron and produces a report with an accept or reject recommendation. For XRechnung it runs together with the official configuration validator-configuration-xrechnung. Both projects are on GitHub under itplr-kosit.
Is the KoSIT validator free?
Yes. The validator is licensed under Apache 2.0 and the XRechnung configuration is also freely available on GitHub. You only need a Java runtime (Java 11 or later for the standalone JAR) and the two downloads.
Is there an online version of the KoSIT validator?
KoSIT mainly ships the software for you to run yourself. Several vendors run web services that execute the KoSIT validator with the XRechnung configuration. The validator on this page is a different kind of tool: it does not run the KoSIT validator, but runs the same Schematron rules itself: the CEN EN 16931 rules and the KoSIT XRechnung rules (BR-DE-*), for UBL and CII. It does not apply the Peppol BIS rules to an XRechnung. It does not do XML Schema validation, and it is not an official KoSIT tool.
Does peppolvalidator.com check the XRechnung BR-DE rules?
Yes. For an XRechnung (UBL or CII) we check the EN 16931 rules 1.3.16 (BR-, BR-CO-, BR-CL- and syntax rules) and the KoSIT XRechnung rules (BR-DE-*, BR-DEX-*, BR-TMP-*) from the official xrechnung-schematron 2.6.0 for XRechnung 3.0.2. We apply the severity levels of the KoSIT scenarios, so an unknown unit code (BR-CL-23), for example, is only a warning on an XRechnung. We do not apply the Peppol BIS Billing 3.0 rules to an XRechnung. There is no XML Schema validation and no formal “acceptable” or “reject” recommendation. For binding validation, the KoSIT validator stays the reference.
How do I run the KoSIT validator?
Download the validator's standalone JAR and the XRechnung configuration ZIP, unzip the configuration and run: java -jar validator-<version>-standalone.jar -s scenarios.xml -r <config dir> -h invoice.xml. The -h option writes the HTML report to disk. Up to version 1.5.0 the file was called validationtool-<version>-standalone.jar.
What do “acceptable” and “reject” mean in the report?
The KoSIT validator turns all schema and Schematron results into one recommendation. “acceptable” means there is no error that the scenario treats as a reason to reject. “reject” means there is at least one error and the receiver may refuse the invoice. Warnings alone do not cause a reject.
Which version of the XRechnung configuration do I need?
Use the current release of validator-configuration-xrechnung that matches the XRechnung version your receiver requires. Releases are named by date and state the compatible XRechnung version (currently the 3.0 line). An old configuration can reject valid invoices or miss new rules.
Can the KoSIT validator check ZUGFeRD PDFs?
Not directly. The validator checks XML. For ZUGFeRD or Factur-X you first extract the embedded CII XML (factur-x.xml or xrechnung.xml) from the PDF/A-3. Our online validator also accepts XML files only.