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 set | Version | In 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
- Sep 24, 2026 · Peppol BIS Billing, 3.0.21: The May 2026 release (previously 3.0.20), mandatory since Aug 17, 2026.
- Sep 24, 2026 · ZUGFeRD / Factur-X (FeRD validation rules), 2.5.2: invowerk checks every profile from MINIMUM to EXTENDED against the FeRD validation rules (ZUGFeRD 2.5.2 / Factur-X 1.09.2). It is based on the LandrixSoftware validation configuration, as of Aug 18, 2026.
- Sep 20, 2026 · XRechnung viewer (KoSIT), As of Aug 31, 2026: New view for XRechnung invoices (previously as of Jan 31, 2026). The web tool uses it to show the invoice in readable form.
- Sep 20, 2026 · XRechnung (KoSIT validation configuration), As of Aug 31, 2026: New validation configuration for XRechnung 3.0.2 (previously as of Jan 31, 2026) with the CEN rules 1.3.16 and the XRechnung rules 2.6.0. In CII, more than one contact for the invoice issuer or the invoice recipient is now an error (CII-SR-465, CII-SR-466). A relative reference to an attachment is also an error (BR-TMP-2). Four new rules only report warnings for now (BR-TMP-4 to BR-TMP-7).
- Sep 15, 2026 · SchXslt (helper program), 1.10.1: Translates the Peppol BIS validation rules into XSLT that invowerk can run.
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.
| Case | Expected | invowerk | File | |
|---|---|---|---|---|
|
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.
- Next KoSIT release · Four warnings become errors (BR-TMP-4 to BR-TMP-7). Today they are warnings, for example about the date format (YYYY-MM-DD in UBL, format="102" in CII). According to KoSIT, they become errors with an upcoming release. Invoices with these messages will then fail the check. (Source)
- Nov 23, 2026 / mandatory Feb 24, 2027 · Peppol BIS Billing 3.0.22. The November 2026 release. The dates come from the draft release notes. (Source)
- Spring 2027 · XRechnung 4.0. A preview version has been available since September 2026. The final version is expected in spring 2027. XRechnung 3.0 stays valid until at least Jul 31, 2027. (Source)
- Jan 1, 2027 · E-invoice issuing obligation (prior-year revenue above €800,000). From Jan 1, 2027, businesses with more than €800,000 in prior-year revenue must issue e-invoices, all others from Jan 1, 2028. Invoices up to €250 and invoices from small businesses (Kleinunternehmer) are exempt. (Source)