Rechnungen

ZUGFeRD XML prüfen

XML Fehler erkennen.

Warum ist die XML-Struktur bei ZUGFeRD so kritisch?

Das Besondere an einer ZUGFeRD-Rechnung ist, dass die im PDF eingebettete XML-Datei (factur-x.xml) maschinell ausgelesen wird. Buchhaltungssysteme und staatliche Empfangsdatenbanken (wie das OZG-RE) prüfen die XML vollautomatisch auf Basis strenger europäischer Schemarichtlinien (EN 16931). Enthält die XML-Struktur Syntaxfehler, falsche Verweise oder fehlerhafte Identifikationsnummern, wird die gesamte Rechnung sofort als ungültig abgewiesen.


Die drei Kernbereiche der XML-Prüfung

1. XML-Struktur & Syntax

Die XML muss absolut fehlerfrei aufgebaut sein. Vergessene Tags, falsche Verschachtelungen oder ungültige Sonderzeichen (die nicht als XML-Entitäten wie & maskiert wurden) führen dazu, dass der XML-Parser die Datei gar nicht erst lesen kann.

2. Namespaces (Namensräume)

Namespaces definieren im XML-Header, woher die verwendeten Tags stammen. Bei ZUGFeRD 2.x müssen die Namespaces exakt mit der Spezifikation übereinstimmen. Ein Tippfehler in den URLs blockiert die Validierung komplett.

Beispiel für korrekte ZUGFeRD 2.x Namespaces:

xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"

3. Das gewählte Profil (ZUGFeRD-Profile)

ZUGFeRD bietet verschiedene Komplexitätsstufen. Der Inhalt deiner XML muss exakt zu dem im Header deklarierten Profil passen. Fehlende Pflichtfelder des jeweiligen Profils triggern sofort einen Validatorfehler.

Profil Anforderung / Einsatzzweck
MINIMUM / BASIC WL Nur für einfachste Stammdaten und Steuer-Gesamtsummen (keine Positionsdetails).
BASIC Reduzierte Anforderungen, reicht für einfache Rechnungen oft aus.
EN16931 (COMFORT) Der Standard im B2B/B2G: Erfüllt vollständig die europäische Norm für elektronische Rechnungen.
EXTENDED Erweiterte Datenströme für komplexe Branchenanforderungen (z.B. Bauwesen).

⚠️ Häufige Fehlerquelle: Ungültige IDs

Validatorfehler entstehen in über 80 % der Fälle durch falsch formatierte Identifikationsnummern innerhalb der XML-Struktur:

  • Umsatzsteuer-Identifikationsnummer (USt-IdNr.): Muss ohne Leerzeichen oder Punkte und mit dem Länderkürzel vorangestellt angegeben werden (z. B. DE123456789 im Tag <ram:SpecifiedTaxRegistration>).
  • Leitweg-ID / Käuferreferenz: Bei Rechnungen an Behörden (B2G) ist die Leitweg-ID im Tag <ram:BuyerReference> zwingend erforderlich. Fehlt sie oder hat das falsche Format, wird die Annahme verweigert.
  • Währungscodes & Maßeinheiten: Codes müssen den internationalen ISO-Standards entsprechen (z. B. Währung: EUR, Maßeinheit für Stück: H87 oder PCE je nach Version).

🛠️ Lösungsschritte bei XML-Fehlern

  1. Schematron-Validierung nutzen: Nutze den kostenfreien, offiziellen Kosit-Validator. Dieser liest die XML aus und gibt dir eine zeilengenaue Fehlermeldung aus (z. B. [BR-DE-1] ... Leitweg-ID fehlt).
  2. Rundungen prüfen: Stelle sicher, dass die Berechnung der Zeilensummen im mathematischen Abgleich mit den Gesamtsummen übereinstimmt. Cent-Abweichungen in der XML machen das Dokument invalide.

War dieser Artikel hilfreich?