If you've ever tried to validate an XRechnung file, you've probably ended up at the KoSIT validator - a Java command-line tool that requires a JDK, a specific configuration file, and about 45 minutes of setup before you can validate your first invoice.
There's a faster way.
What is XRechnung?
XRechnung is Germany's national e-invoicing standard, based on UBL 2.1 and the European norm EN 16931. It has been mandatory for invoices submitted to German federal public authorities since November 2020, and is progressively being adopted across state and municipal levels.
If you sell to German public sector clients, you need XRechnung. If you're building an ERP or accounting integration for the German market, you need to generate and validate it.
The Official Validator: KoSIT
The official validation tool is maintained by KoSIT (Koordinierungsstelle für IT-Standards). It's a Java application that runs XSD schema validation + Schematron business rules (the EN 16931 BR-* rules that go beyond what XSD can check).
Validate Without Java
xmlbridge.com/xrechnung runs the official KoSIT validator server-side and returns the result in seconds. Upload your file, get a pass/fail with error details. No Java, no config files, no local setup.
It also generates XRechnung files from a form if you need to create test invoices quickly.
Conclusion
XRechnung validation is painful to set up locally. For quick checks, use the free browser validator. For CI/CD, use the API. For generating test invoices, the form-based generator covers most use cases.
The KoSIT Java validator is still the gold standard for production systems — but you don't need it for development and testing.
Try it at xmlbridge.com/xrechnung.
Top comments (1)
Solid alternative to the KoSIT Java validator, removing that JVM dependency is a real deployment win.
Worth noting what validation covers vs. what it doesn't: schema + schematron checks confirm your XML is structurally correct. But for production use in Germany there's a second layer, after you've validated and sent the invoice, you need to prove it hasn't changed. GoBD (§9) requires archiving the original XML in a tamper-evident format for 10 years.
That's where RFC 3161 timestamps come in, cryptographic proof from an EU-qualified TSA that the document existed at a specific time and hasn't been touched since. Validation tells you the invoice is correct. Timestamping tells you it stayed that way.
If you're building a full pipeline (generate → validate → archive), SealDoc (sealdoc.eu) handles the archival sealing step: takes your validated XRechnung or ZUGFeRD PDF, returns a timestamped PDF/A-3 with chain of custody. Free tier available.
For more info:
sealdoc.eu/developers/
api.sealdoc.eu/docs/