Skip to content
CastPDF
Free tool

XRechnung and ZUGFeRD validator

Upload an XRechnung XML or a ZUGFeRD or Factur-X PDF and get a plain-English report: the format and profile, the required fields, the VAT rules and whether the totals add up under EN 16931. It is free and runs on the engine of our e-invoicing API. It is a quick check, not the official Schematron validation, and the report says so.

  • No sign-up
  • Nothing stored
  • Updated

Check your e-invoice

An XRechnung or EN 16931 XML (CII or UBL), or a ZUGFeRD or Factur-X PDF, up to 5 MB.

Leave empty when you choose a file.

Free, no sign-up. Nothing is stored. A short human check runs when you press the button.

A real report from this validator: no errors found in an XRechnung UBL invoice, then the invoice summary, the format and the note on what the check covers.
A real report, for a valid XRechnung.

How to use the E-invoice validator

  1. Choose the file. An XRechnung or other EN 16931 XML in CII or UBL, or a ZUGFeRD or Factur-X PDF, up to 5 MB.
  2. Or paste the XML. Paste XML straight into the box if you do not have it as a file.
  3. Validate. Press Validate. A PDF is opened on our server only to take out the XML inside it.
  4. Read the report. Errors come first, each with the rule and the field. Warnings follow, then a summary of the invoice.

What this validator checks

  • The syntax (CII or UBL), the document type and the profile, from the specification identifier (BT-24).
  • Required fields for the profile, and for XRechnung the German rules such as the buyer reference and seller contact.
  • Codes against their official lists: countries, currencies, units, VAT categories and payment means.
  • VAT category rules, such as a reason for an exempt line and the buyer’s VAT number for reverse charge.
  • The amounts under EN 16931: line totals, the VAT breakdown per rate and the totals BR-CO-10 to BR-CO-17.
  • For a PDF: the embedded XML file, the PDF/A part and the Factur-X metadata it declares.

Each problem names the rule where there is one, such as BR-CO-15, and the field, such as totals.tax_total. The message says what is wrong and what the value should be.

What it does not check

Not the official Schematron validation

This tool reads the invoice back into our own model and runs our checks. It does not run the XSD schemas and the official Schematron rules, which is what the KoSIT validator does. For a definitive answer before a portal submission, run the KoSIT validator or ask your receiver.

For a PDF it reads only the PDF/A identification, not the whole file against PDF/A-3; veraPDF does that. MINIMUM and BASIC WL files have no invoice lines, so only their header and totals are checked.

The errors it finds most often

Frequent e-invoice errors and their fix
ProblemRuleThe usual fix
VAT a cent offBR-CO-17 or the VAT breakdownCompute VAT once per rate, not per line
No buyer reference in an XRechnungBR-DE-15Add the Leitweg-ID or another buyer reference
Seller contact missingBR-DE-2, BR-DE-6, BR-DE-7Add a contact name, phone and email
Line totals do not add upBR-CO-10Check the sum of the line net amounts
A plain PDF with no XMLnoneGenerate a real ZUGFeRD or Factur-X file

A file full of errors usually comes from a tool that writes the XML separately from the PDF, or that rounds differently. The e-invoice generator builds both from one calculation.

Limits of the free tool

Limits of the free tool
InputOne XML or PDF file of up to 5 MB
OutputA report of errors, warnings and the invoice summary
Not supportedThe official XSD and Schematron validation, and full PDF/A checks
How often10 requests a minute and 100 a day from one address
On every PDFA small "Made with CastPDF" line in the footer

Automate this

Doing this every week? The same engine runs behind the CastPDF API, with no footer on paid plans and 100 free PDFs a month to start.

With the API

Create e-invoices that pass these checks from the start: send e_invoice to POST /v1/pdf, documented in the API reference.

From a spreadsheet

The validator checks one file at a time. To create many e-invoices, call the API once per invoice from your billing system.

In a no-code workflow

Common questions

Is this an official XRechnung validator?

No. It is a fast check of fields, codes, VAT rules and totals. The official validation is the KoSIT validator with the XSD and Schematron rules; use it for a definitive answer.

Can it read the XML inside a ZUGFeRD PDF?

Yes. It finds factur-x.xml, zugferd-invoice.xml or xrechnung.xml in the PDF, checks that XML and reports what the PDF metadata declares.

Do you store the invoices I upload?

No. The file is checked once, in memory, and the report comes back. Nothing is stored or logged, apart from a line saying a check ran.

Why does my PDF have no XML?

Then it is an ordinary PDF, not an e-invoice, even if it looks like an invoice. The report lists the files the PDF does contain.

Which files can the validator read?

XML in CII or UBL 2.1, invoices and credit notes, and Factur-X or ZUGFeRD PDFs, up to 5 MB. Encrypted PDFs are refused, as an e-invoice may not be encrypted.
All free tools

Your first PDF in five minutes.

Pick a template, create a free test key and send one request. 100 PDFs a month are free, and you never need a card to start.