Logo

ZUGFeRD & XRechnung Validator

Upload a ZUGFeRD or Factur-X PDF or an XRechnung XML and see every rule it breaks — PDF/A-3 and the EN 16931 and XRechnung rules, each with its code.

  • Free
  • No account
  • Files deleted automatically

Checked in three steps.

From the file on your computer to a report you can act on.

  1. 01

    Upload the invoice

    Drop a ZUGFeRD or Factur-X PDF or an XRechnung XML into the box. You need no account for it.

  2. 02

    Every rule is checked

    The file is tested against its format, its schema and the European and German business rules.

  3. 03

    Read the report

    You see whether the invoice is valid, and for every finding the rule it breaks with a message.

A valid file.
A valid invoice.

An e-invoice has to be in the right format and follow the invoice rules. Both are checked, and each finding names the rule it breaks.

PDF/A-3

The archive format every ZUGFeRD and Factur-X invoice has to be, checked with veraPDF.

Schema

The invoice XML, inside the PDF or on its own, checked against the schema of its profile.

EN 16931

The business rules of the European standard, such as totals that have to add up.

XRechnung

The German rules on top, for an XRechnung XML and for PDFs of the XRECHNUNG profile.

The same check,
from your code.

This tool runs our validator API. Send the URL of an e-invoice, PDF or XML, with one request and get the report you see above as JSON — 1,000 validations a month are free.

Request

curl -X POST https://apdf.io/api/pdf/einvoice/validate \
  -H "Authorization: Bearer TOKEN" \
  -d file="FILE_URL"

The validator, answered

ZUGFeRD and Factur-X invoices, which are PDFs with the invoice XML inside, and XRechnung invoices, which are plain XML files in the CII or the UBL syntax. The format and profile are read from the file, so there is nothing to select.
Because a PDF reader only shows the page. Accounting software reads the XML inside and the archive format around it, and rejects the file when one of them breaks a rule. The report names that rule.
Rules starting with BR-DE are the German additions of XRechnung. BR-DE-15, for example, says the buyer reference is missing, the field that holds the routing ID (Leitweg-ID) of a public authority.
A ZUGFeRD invoice from version 2.0.1 counts as an e-invoice in Germany from the BASIC profile upwards; MINIMUM and BASIC WL do not. The validator checks the format against the standard, not whether the amounts and tax treatment of your invoice are right.
Errors break a rule, and a single error makes the e-invoice invalid. Warnings point at things worth a look, but the e-invoice stays valid with them.
It is uploaded for the check only and deleted automatically, like every file our API works with: after 60 minutes it is due for removal. You need no account, and the report is shown to you alone.
The tool is free for a number of checks per hour and files up to 10 MB. For more, or to check invoices from your own software, the validator API has a free plan with 1,000 validations a month.

Validate e-invoices
in your own app.