Does the PDF match the XML?
A ZUGFeRD or Factur-X invoice is two invoices in one file: a PDF for people and an XML for software. If they say different things, your accounting software pays what the XML says. Our free validator now compares both.
Why a mismatch matters
Accounting and payment software reads the XML. People read the PDF. When the two differ, nobody notices until the money has gone to the wrong place. A changed IBAN in the XML is a known invoice-fraud pattern. More often a mismatch is a software error, for example a PDF regenerated after the XML was created.
What we compare
- IBAN: every IBAN in the XML (BT-84) against the IBANs printed on the PDF. Only real IBANs with valid check digits count. A difference gets a red warning.
- Invoice number (BT-1): must appear on the PDF.
- Amount due (BT-115): must appear on the PDF, in any usual format (1.190,00 or 1,190.00).
The rest of the check is the full official validation: KoSIT for XRechnung, the CEN EN 16931 rules and Peppol BIS 3.0.
How to check an invoice
Upload the PDF to the free validator. The file is checked in memory and discarded right away. You get the validation result, the comparison, and a readable view of the XML to compare by eye.
If the IBAN differs
Don't pay yet. Call the seller on a phone number you already know (not one from the invoice or the email) and confirm the bank details. Ask for a corrected file. If you send ZUGFeRD invoices yourself, check your software's export: the PDF and the XML must come from the same data.
Limits
Scanned PDFs have no readable text, so we can't compare them, and you'll see a note saying so. We compare the three fields where mismatches cost money. Other differences, such as a changed line item, still need a look at the readable view.
Invoiceer for Stripe: XRechnung, ZUGFeRD and Peppol from every Stripe invoice, validated with the official rules. Free for 5 e-invoices a month.
See the Stripe app Read the setup guide