The validator reads the specification identifier in the file (BT-24) and applies the rules that belong to it, the same way the official KoSIT validator picks a scenario:
- XRechnung 3.0 (UBL or CII): the XML schema, the EN 16931 rules and the XRechnung rules from KoSIT's official validator configuration.
- ZUGFeRD 2.x / Factur-X (EN 16931, BASIC, EXTENDED), as XML or as a PDF with the XML embedded: the CII schema and the EN 16931 rules. MINIMUM and BASIC WL are flagged, because they aren't e-invoices under EN 16931.
- Peppol BIS Billing 3.0 (UBL): the schema, the EN 16931 rules and the OpenPEPPOL rules.
Rule versions: EN 16931 validation artefacts 1.3.16, XRechnung 3.0.2 (KoSIT configuration of 2026-08-31), Peppol BIS Billing 3.0.20. For a ZUGFeRD PDF we check the embedded XML, not whether the PDF itself is a valid PDF/A-3.
New to the formats? Read XRechnung vs ZUGFeRD or ZUGFeRD profiles explained.
Sending invoices from Stripe?
evoicely turns your Stripe invoices into XRechnung and ZUGFeRD automatically and checks every file with these rules before it goes out. See pricing, free for up to 10 invoices a month.