ZUGFeRD-Validator für .NET: eingehende E-Rechnungen zuverlässig prüfen
Der Validator extrahiert die eingebettete XML aus einer Rechnungs-PDF, prüft die PDF-Hülle (PDF/A-3 & Factur-X) und validiert die XML gegen die amtlichen Regelwerke – bis hin zur offiziellen Schematron-Prüfung von Factur-X/ZUGFeRD und KoSIT-XRechnung. Die Prüfung läuft vollständig offline in Ihrer Anwendung – alle Regelwerke sind im Paket enthalten, keine Rechnung verlässt Ihr System.
- .NET Framework 4.8
- .NET 8
- .NET 10
- ZUGFeRD 2.5.2 / Factur-X 1.09.2
- XRechnung 3.0 (CII & UBL)
dotnet add package Facturexa.ZugferdValidator
Install-Package Facturexa.ZugferdValidator
PDF-Hülle
PDF/A-3-Konformität, Dateinamenskonvention, XMP-Metadaten und die Factur-X-Einbettung der XML werden geprüft – analog zum offiziellen ZUGFeRD-Prüftool.
Amtliches XML-Schema
CII-Rechnungen prüft der Validator zuerst gegen das amtliche XML-Schema: ZUGFeRD/Factur-X gegen das Schema des jeweiligen Profils (Factur-X 1.09.2), das nur dessen Elemente zulässt, XRechnung gegen CII D16B wie der KoSIT-Validator. So fallen auch Strukturfehler auf, die die Schematron nicht sieht – etwa eine falsche Elementreihenfolge oder ein Element, das im Profil nicht vorgesehen ist.
Offizielle Schematron
Danach prüft die offizielle Schematron die Geschäftsregeln (Factur-X/ZUGFeRD bzw. KoSIT-XRechnung, per Saxon/XSLT 2.0) – dieselben Regelwerke, die auch Rechnungsempfänger einsetzen. Gültig ist eine Rechnung nur, wenn beides passt.
Vollständig offline
Der Validator braucht zur Laufzeit keine Internetverbindung und ruft keinen externen Dienst auf.
- Datenschutz: Rechnungen werden ausschließlich in Ihrer Anwendung geprüft – keine Übertragung an Dritte.
- Ohne Internet: funktioniert auch in abgeschotteten Netzen und auf Servern ohne Internetzugang.
- Unabhängig: keine Ausfälle oder Limits eines Online-Prüfdienstes, auch die Lizenzprüfung läuft lokal.
Abdeckung
Der Validator prüft alle gängigen Profile – bei XRechnung sowohl die CII- als auch die UBL-Syntax.
| Profil | Beschreibung | Validator | Creator |
|---|---|---|---|
| MINIMUM | Kopfdaten, kein eigenständig gültiges E-Rechnungsformat | ✔ Ja | ✔ Ja |
| BASIC WL | Kopfdaten ohne Rechnungspositionen | ✔ Ja | ✔ Ja |
| BASIC | Kerninformationen inkl. Rechnungspositionen | ✔ Ja | ✔ Ja |
| EN 16931 / COMFORT | Europäischer Kernstandard – gültiges E-Rechnungsformat | ✔ Ja | ✔ Ja |
| EXTENDED | Erweiterter Datensatz, ab ZUGFeRD 2.5.2 inkl. Sub-Positionen/Kits & Bündel | ✔ Ja | ✔ Ja |
| XRechnung 3.0 (CIUS) | Deutsche B2G-Kernvariante, zweistufig EN 16931 + CIUS | ✔ Ja (CII + UBL) | ✔ Ja (CII) |
| UBL-Erzeugung | XRechnung als UBL statt CII ausgeben | n. v. (Prüfung erfolgt bereits) | Roadmap |
So einfach ist die Integration
Ein Aufruf genügt: PDF übergeben, und der Validator prüft PDF-Hülle, XML-Schema und offizielle Schematron. Das folgende Beispiel entspricht dem tatsächlichen Ablauf, den auch die Live-Demo dieser Seite verwendet.
using Facturexa.ZugferdValidator;
// Einmalig beim Programmstart.
ZugferdValidatorLicense.RegisterLicense("…");
// PDF-Hülle (PDF/A-3 & Factur-X), XML-Schema und offizielle Schematron in einem Aufruf.
var ergebnis = ZugferdValidator.Validate("rechnung.pdf", "RE-2026-0001");
if (ergebnis.IsPdfValid == false)
Console.WriteLine("PDF-Hülle nicht konform");
if (!ergebnis.IsValid)
{
foreach (var fehler in ergebnis.Errors)
Console.WriteLine($"{fehler.Stage}: {fehler}"); // z.B. "Schematron: BR-CO-15 (BT-112): ..."
}
Validator und Creator in einer Lizenz
E-Rechnungen prüfen und erzeugen – für eingehende wie ausgehende Rechnungen. Der Reader ist kostenlos.