Test bench

The test bench shows the rule sets invowerk checks against and the test files invowerk is tested with. You can download each test file and check it with another validator.

The “Expected” column shows what the validation rules of KoSIT or FeRD require. For an XRechnung it holds the recorded result of the KoSIT validator, the validation program of the Coordination Office for IT Standards (KoSIT). Differences between e-invoice validators explains why validators disagree on the same file.

Rule sets · Changes · Test cases · Coming up

Rule sets

Rule setVersionIn use since
XRechnung (KoSIT validation configuration)
Validation rules for XRechnung and EN 16931, UBL and CII.
3.0.2, As of Aug 31, 2026 Sep 20, 2026
ZUGFeRD / Factur-X (FeRD validation rules)
Validation rules per profile, from MINIMUM to EXTENDED.
2.5.2 Sep 24, 2026
Peppol BIS Billing
Additional validation rules for Peppol invoices.
3.0.21 Sep 24, 2026
XRechnung viewer (KoSIT)
Shows the invoice in readable form in the web tool.
As of Aug 31, 2026 Sep 20, 2026
SchXslt (helper program)
Translates the Peppol validation rules into XSLT.
1.10.1 Sep 15, 2026
KoSIT-Validator (validation program)
The validation program of the Coordination Office for IT Standards (KoSIT). For an XRechnung, its result is the one that counts.
1.6.3
veraPDF (validation program)
Checks whether a ZUGFeRD or Factur-X PDF is a valid PDF/A-3 or PDF/A-4f.
1.30.2

Changes

Test cases

19 of 19 test files give the expected result in invowerk. The “invowerk” column shows the result the automated tests recorded for the current rule sets.

CaseExpectedinvowerkFile
Valid XRechnung 3.0 (UBL)
A complete XRechnung in UBL syntax. It passes the check with no errors or warnings.
passed
per the KoSIT validator
passed ✓ ubl-invoice-xrechnung.xml
Valid XRechnung 3.0 (CII)
The same invoice in CII syntax, also with no errors or warnings.
passed
per the KoSIT validator
passed ✓ cii-invoice-xrechnung.xml
Unit of measure “Stk” instead of a UN/ECE code
In the EN 16931 core this is an error, in the KoSIT XRechnung rules only a warning (BR-CL-23). The invoice passes the check.
passed
per the KoSIT validator
passed ✓ xr-ubl-unitcode-stk.xml
Seller contact with a person and a department (CII-SR-465)
Only a warning in the EN 16931 core, an error in the KoSIT XRechnung rules. The invoice fails the check.
failed
per the KoSIT validator
failed
CII-SR-465
✓ xr-cii-contact-person-and-department.xml
Two blocks of payment terms (CII-SR-452)
Only a warning in the EN 16931 core, an error in the KoSIT XRechnung rules. The invoice fails the check.
failed
per the KoSIT validator
failed
CII-SR-452
✓ xr-cii-two-payment-terms.xml
XRechnung Extension
The Extension's specification identifier triggers separate KoSIT validation rules with different severities. The invoice passes the check.
passed
per the KoSIT validator
passed ✓ xr-ubl-extension-id.xml
Attachment reference as a relative URL (BR-TMP-2)
A reference to an external document must be an absolute URL (BT-124). Since the validation rules of Aug 31, 2026, this is an error.
failed
per the KoSIT validator
failed
BR-TMP-2
✓ xr-ubl-relative-attachment-uri.xml
Outdated specification identifier “xrechnung_2.3” (BR-DE-21)
The KoSIT validation configuration does not know this identifier. The KoSIT validator rejects the invoice, even if the rest of the content is correct.
failed
per the KoSIT validator
failed
no matching validation rules
✓ ubl-inv-wrong-customization-id.xml
Factur-X MINIMUM (FR → FR)
Sample invoice from the French forum FNFE in the MINIMUM profile. In Germany, this profile does not count as an e-invoice.
Source: ZUGFeRD/corpus (FNFE sample), Apache-2.0
passed
Meets the FeRD validation rules for the MINIMUM profile. The additional German rules do not apply between French businesses.
passed ✓ Facture_FR_MINIMUM.pdf
Factur-X BASIC WL (FR → FR)
FNFE sample invoice in the BASIC WL profile. In Germany, this profile does not count as an e-invoice.
Source: ZUGFeRD/corpus (FNFE sample), Apache-2.0
passed
Meets the FeRD validation rules for the BASIC WL profile. The additional German rules do not apply between French businesses.
passed ✓ Facture_FR_BASICWL.pdf
Factur-X BASIC with a profile identifier from before Factur-X 1.0
FNFE credit note whose profile identifier contains colons instead of “#…#urn:”. No FeRD validation rule recognizes this identifier.
Source: ZUGFeRD/corpus (FNFE sample), Apache-2.0
failed
The profile identifier is not a valid Factur-X or ZUGFeRD identifier, so no profile matches. It also breaks a format rule (CII-DT-031).
failed
CII-DT-031
✓ Avoir_FR_type381_BASIC.pdf
ZUGFeRD EXTENDED with a reference to the down payment invoice
The prepayment refers to its down payment invoice. This element exists only in the EXTENDED schema.
passed
The EXTENDED schema allows the reference. Checking EXTENDED against the general CII schema wrongly reports a schema error.
passed ✓ zugferd-extended-advance-payment-ref.xml
MINIMUM profile between two German businesses (BR-HYBRID-DE-01)
The same MINIMUM invoice, but the invoice issuer and the invoice recipient are both in Germany.
failed
Between German businesses, MINIMUM is an error under the ZUGFeRD rules (BR-HYBRID-DE-01).
failed
BR-HYBRID-DE-01
✓ carrier-minimum-de-de.pdf
BASIC WL profile between two German businesses (BR-HYBRID-DE-02)
The same BASIC WL invoice, but the invoice issuer and the invoice recipient are both in Germany.
failed
Between German businesses, BASIC WL is an error under the ZUGFeRD rules (BR-HYBRID-DE-02).
failed
BR-HYBRID-DE-02
✓ carrier-basicwl-de-de.pdf
Embedded XML file marked “Source” instead of “Alternative” (BR-HYBRID-11)
Between German businesses, the ZUGFeRD rules expect the marking “Alternative”. A different marking is only a warning, and the invoice passes the check.
passed
per the KoSIT validator
passed ✓ carrier-xrechnung-de-de-source.pdf
PDF with an embedded XRechnung, but not PDF/A (BR-HYBRID-02)
The XRechnung is embedded correctly, but the PDF is not a PDF/A. Between German businesses with valid invoice data, this is only a warning (BR-FX-DE-03).
passed
per the KoSIT validator
passed ✓ carrier-not-pdfa.pdf
ZUGFeRD EN 16931 (Comfort) as PDF/A-3b
Error-free ZUGFeRD PDF from the Mustang project. The invoice data and the PDF both pass the check.
Source: ZUGFeRD/mustangproject, Apache-2.0
passed
Meets the FeRD validation rules for the EN 16931 (Comfort) profile and all rules for the PDF.
passed ✓ carrier-factur-x-en16931-pdfa3b.pdf
ZUGFeRD EXTENDED as PDF/A-4f
PDF/A-4f is allowed since ZUGFeRD 2.3. A validator that accepts only PDF/A-3 wrongly rejects this invoice.
Source: ZUGFeRD/mustangproject, Apache-2.0
passed
Meets the FeRD validation rules for the EXTENDED profile, and PDF/A-4f is allowed. The marking “Data” instead of “Alternative” is only a warning (BR-HYBRID-11).
passed ✓ carrier-factur-x-extended-pdfa4f.pdf
Plain PDF without invoice data
A one-page PDF invoice with text, but no embedded XML file.
failed
Without embedded invoice data, there is nothing to check. A plain PDF is not an e-invoice.
failed
no embedded invoice data
✓ plain.pdf

invowerk's own test files are licensed under CC0 1.0. Files taken from other projects are licensed under Apache-2.0, with the source shown in the table.

Coming up

These changes are announced and do not apply yet.

Check your own invoice