German B2B obligation since 2025
Since January 1, 2025, every domestic German B2B business must be able to receive structured electronic invoices (Wachstumschancengesetz). Sending is phased in: 2025 and 2026 are transition years, from January 1, 2027 structured sending is mandatory for businesses with prior-year turnover above €800,000, and from 2028 for everyone. PDF-only invoices will no longer qualify as legal invoices under §§ 14, 14a UStG. Anyone receiving invoices needs the ability to validate them, a free validator is therefore not a nice-to-have but a compliance tool.
XRechnung 3.0
XRechnung is the German standard for structured e-invoices, based on the European norm CEN/EN 16931. Version 3.0 has been mandatory since February 2024 and is identified by the CustomizationID 'urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0'. Payload is plain XML, either UBL 2.1 or UN/CEFACT Cross Industry Invoice (CII). Mandatory for German federal and state authorities since November 27, 2020, with a required Leitweg-ID. In B2B XRechnung is allowed but not mandatory.
ZUGFeRD / Factur-X
ZUGFeRD (German) and the internationally identical Factur-X are hybrid formats: a PDF/A-3 with structured XML embedded as a file attachment (factur-x.xml). Profiles range from MINIMUM (core data only) through BASIC WL, BASIC, EN 16931 (COMFORT) up to EXTENDED. Only from profile EN 16931 onwards is the invoice fully CEN-16931-conformant. MINIMUM and BASIC WL do not qualify as VAT invoices, only as booking aids. Our validator detects the profile automatically.
Business Terms (BT) under EN 16931
EN 16931 encodes each piece of invoice information as a Business Term with a unique number. Mandatory BTs include: BT-1 invoice number, BT-2 issue date, BT-3 invoice type code (UNTDID 1001, e.g. 380 for invoice, 381 for credit note), BT-5 currency code (ISO 4217), BT-9 due date, BT-22 note / buyer reference, BT-27 seller name, BT-40 seller country, BT-44 buyer name, BT-55 buyer country. Mandatory monetary totals: BT-109 TaxExclusiveAmount, BT-110 TaxAmount, BT-112 TaxInclusiveAmount, BT-115 PayableAmount. Missing any of these makes the invoice formally invalid.
Mathematical consistency
EN 16931 requires totals to add up: TaxExclusiveAmount (BT-109) plus TaxAmount (BT-110) must equal TaxInclusiveAmount (BT-112). PayableAmount (BT-115) must equal the gross total minus any prepaid amount. A common source of bugs in practice: rounding per line and then again per tax rate produces 1-cent discrepancies. Our validator tolerates 1 cent; anything beyond that is reported as a hard error.
Data protection
The validator runs entirely in your browser. XML files are parsed with the native DOMParser, PDFs are loaded by pdf-lib locally and the embedded factur-x.xml is extracted in memory. There is no server upload, no logging, no cookie. The validator is GDPR-compliant and safe for confidential B2B data, even internal invoices with bank details, tax numbers or contract data can be checked without compliance risk.