XRechnung ZUGFeRD EN 16931

Validate your ZUGFeRD & XRechnung invoices

Check compliance with EN 16931 and Germany's ERechG instantly.

Drag and drop your invoices here, or click to browse.

Why Validate ZUGFeRD and XRechnung?

Catch compliance issues before your invoices reach business partners or public authorities.

Full EN 16931 Compliance Check

We validate your invoices against the complete European e-invoicing standard, including all ZUGFeRD profiles and XRechnung rules.

XML & PDF/A-3b Verification

Both the embedded XML and the PDF archival standard are inspected.

Ready for DATEV & XRechnung

Ensure your invoices are accepted by DATEV, SAP, Lexware, and all XRechnung-compatible systems before submission.

Send via Peppol on Success

When your invoice passes validation, we can forward it via the Peppol network to your business partners automatically, no extra steps required.

How It Works

Validate your ZUGFeRD & XRechnung invoices in three simple steps.

Step 1

Upload Your Invoice

Drag and drop your ZUGFeRD PDF or XRechnung XML file into the validator. We accept both PDF with embedded XML and standalone XML files.

Step 2

Automatic Validation

We check your invoice against the full EN 16931 rule set including XRechnung business rules, verify PDF/A-3b conformance, and inspect the embedded XML structure.

Step 3

Get Your Report

See a detailed pass/fail report with specific error messages and field-level guidance so you can fix issues before submission.

Frequently Asked Questions

Everything you need to know about validating ZUGFeRD & XRechnung invoices.

We validate against the full EN 16931 European e-invoicing standard, including all ZUGFeRD profiles (Minimum through Extended) and XRechnung compatibility.
Yes. You can upload standalone XRechnung XML files or complete ZUGFeRD PDF/A-3b invoices with embedded XML. Both are fully supported.
You'll receive a detailed report listing every rule violation, the affected field, and a clear description of how to fix each issue.
Basic validation is free for up to 10 invoices at a time. Premium users unlock advanced strictness levels, XRechnung-specific rules, and batch processing.
Yes. Our validator includes XRechnung-specific rules and Leitweg-ID checks so you can be confident your invoices will be accepted by German public authorities.
Yes. Once your invoice passes all compliance checks, premium users can have it sent via Peppol automatically, so you go from validation to submission without leaving the page.

What the ZUGFeRD & XRechnung Validator Checks

Generating a file is not the same as generating a valid file. The validator runs three independent checks on every upload: all three must pass for your invoice to be accepted by accounting systems and public portals.

Validation Layer 1: XML Schema

The embedded XML must conform to the Cross Industry Invoice (CII) D16B schema. Schema errors are structural: a missing element, a wrong data type, or an attribute in the wrong namespace. These are caught before any business rules are applied and usually indicate a code generation or serialisation bug.

Validation Layer 2: EN 16931 Schematron Rules

The Schematron layer enforces over 200 semantic business rules defined in the European e-invoicing standard. Rules are identified by codes such as BR-01, BR-CO-15, or DE-R-001. Common failures:

  • BR-08 - Invoice currency code is missing (BT-5)
  • BR-CO-15 - VAT category tax amount does not match the calculated value
  • BR-S-08 - Tax rate (BT-119) is mandatory when VAT category is Standard
  • DE-R-003 - Seller tax ID (BT-31 or BT-32) is required for German domestic invoices

Each error in the report includes the rule code, the XPath of the failing element, and a plain-language description, no need to read the spec to understand what to fix.

Validation Layer 3: PDF/A-3b Conformance (ZUGFeRD only)

ZUGFeRD requires the PDF container to be a PDF/A-3b archive. A regular PDF will fail even if the embedded XML is perfectly valid. Common causes: missing embedded fonts, no ICC output intent, incorrect XMP metadata, or the XML attachment not declared with the AFRelationship key set to Alternative.


Profile-Specific Checks

The validator applies additional rules depending on which ZUGFeRD profile the file declares. Higher profiles require more data fields: submitting a MINIMUM-profile file where EN 16931 is expected will produce dozens of missing-field errors.

Profile Line items required Allowances & charges Full EN 16931 rules
MINIMUM No No No
BASIC WL No Yes No
BASIC Yes No No
EN 16931 Yes Yes Yes
EXTENDED Yes Yes Yes + extensions

XRechnung-Specific Checks

XRechnung is pure XML: there is no PDF layer, so PDF/A-3b conformance does not apply. The validator instead enforces the German CIUS (Core Invoice Usage Specification) on top of EN 16931:

  • DE-R-001 - BT-10 (Buyer reference / Leitweg-ID) is mandatory for all XRechnung invoices
  • DE-R-002 - The Leitweg-ID must follow the pattern {authority-id}-{optional-suffix}-{check-digit}
  • DE-R-009 - Payment means code must be one of the permitted values (30, 58, or 59)

If you are submitting to a federal or state portal (ZRE, OZG-RE), the Leitweg-ID must be obtained from the contracting authority before you issue the invoice, the validator will flag a missing or malformed ID immediately.

Ready for mandatory e-invoicing?

Make every invoice compliant, in a single message

Subscribe to get unlimited tools, choosable compliance profiles and the full set of premium features.

EN 16931 & PDF/A-3b compliant Results in seconds No installation Data never stored
3 free uses per day · No card required