How we check e-invoices

Every e-invoice file the Clockaroo app makes is checked by a validator before the invoice is issued. If the check fails, the invoice isn't issued and its number stays free. This page names the validators and their versions, and what our tests cover.

This page describes technical checks. It isn't legal or tax advice.

Which validator checks which format

Validators and versions in use
FileChecked withWhat it checks
XRechnung (CII and UBL) KoSIT validator 1.6.3 with the configuration for XRechnung 3.0.2, released August 31, 2026 The XML schema, the rules of EN 16931 and the XRechnung rules
ZUGFeRD (profile EN 16931) Mustang 2.26.0 with veraPDF 1.30.2 veraPDF checks the PDF/A-3 file; Mustang checks the embedded XML against the rules of EN 16931
Peppol BIS Billing 3.0 (UBL), for sellers in the Netherlands KoSIT validator 1.6.3 with the OpenPeppol rules of BIS 3.0.21 The UBL schema, the rules of EN 16931 and the Peppol rules

The KoSIT validator is published by the Koordinierungsstelle für IT-Standards (KoSIT), with the official configuration for XRechnung. Mustang and veraPDF are open source. A plain PDF invoice isn't an e-invoice, so no validator checks it.

The versions in this table are read from the file our server uses to download the validators, where each version is pinned with a checksum. When we update a validator, this page changes with it.

When a file is checked

What our tests cover

Besides the check at issue, a test matrix makes invoices the way the app does, for sellers and clients in different countries, and runs every file through the same validators. Each case is checked as an invoice and as its credit note.

The test matrix by seller country
Seller inVAT casesE-invoice files checked
Germany Standard rate (S), Zero-rated (Z), Exempt (E), Reverse charge (AE), Not subject to VAT (O) ZUGFeRD, XRechnung CII and XRechnung UBL
Austria Standard rate (S), Exempt (E), Reverse charge (AE), Not subject to VAT (O) ZUGFeRD, XRechnung CII and XRechnung UBL
Netherlands Standard rate (S), Zero-rated (Z), Exempt (E), Reverse charge (AE), Not subject to VAT (O) Peppol BIS
United Kingdom Standard rate (S), Not subject to VAT (O) ZUGFeRD, XRechnung CII and XRechnung UBL
Ireland Standard rate (S), Reverse charge (AE), Not subject to VAT (O) ZUGFeRD, XRechnung CII and XRechnung UBL
United States Not subject to VAT (O) ZUGFeRD, XRechnung CII and XRechnung UBL

Small businesses in the matrix: § 19 UStG in Germany, the Kleinunternehmerregelung in Austria and the KOR in the Netherlands. KOR invoices are plain PDFs and have no e-invoice file. For every case the matrix also checks that the PDF copy renders.

The matrix runs on every full test run, together with the rest of the app's tests. On our test server a missing validator counts as a failure, so a full run can't pass without checking the files.

Last full test run passed:

What a passed check means

A passed check means the file meets the technical rules these validators test. It doesn't cover:

Check a file yourself

The tools