E-Invoicing-Validator

Prev Next

Mit dem E-Invoicing-Validator prüfen Sie elektronische Rechnungen auf formale, strukturelle und fachliche Korrektheit. So stellen Sie sicher, dass Ihre Rechnungen den offiziellen Vorgaben entsprechen, bevor Sie sie versenden oder weiterverarbeiten. Der Validator unterstützt die folgenden Standards:

  • BIS Billing

  • XRechnung

  • ZUGFeRD

Welcher Standard in welcher Version geprüft wird, bestimmt die installierte Validierungskonfiguration.

Wie die Prüfung abläuft

Der Validator erkennt zunächst automatisch, um welchen Standard, welche Version und welchen Dokumenttyp es sich handelt. Anschließend prüft er das Dokument in zwei Stufen.

Strukturvalidierung gegen XSD

Die XML-Schema-Validierung (XSD) prüft, ob das Dokument

  • syntaktisch korrektes XML ist,

  • die erwarteten Elemente und Attribute enthält,

  • die richtige Reihenfolge einhält,

  • Datentypen korrekt verwendet und

  • den zugrunde liegenden UBL-/CEN-Strukturen entspricht.

Diese Prüfung stellt sicher, dass das Dokument formal dem erwarteten XML-Modell entspricht.

Fachliche Validierung über Schematron

Die XSD-Prüfung allein reicht für E-Rechnungen nicht aus. Daher kommt zusätzlich Schematron zum Einsatz. Schematron-Regeln prüfen fachliche und semantische Anforderungen, zum Beispiel:

  • Pflichtfelder in bestimmten Geschäftskontexten

  • Abhängigkeiten zwischen Feldern

  • Konsistenz von Summen

  • zulässige Codes aus Codelisten

  • Regeln aus EN 16931

  • Peppol-spezifische Geschäftsregeln

Anschließend gibt der Validator das Ergebnis als Validierungsreport zurück, bei fehlerhaften Rechnungen mit Fehlercode und Fehlertext.

ZUGFeRD- und XRechnung-Rechnungen können als PDF/A-3 mit eingebetteter XML-Datei vorliegen. In diesem Fall extrahiert der Validator die XML-Datei automatisch vor der Prüfung. BIS Billing wird ausschließlich als XML validiert.

Installation

Den Validator installieren Sie als Vorlage aus der Template-Galerie (siehe Mit Vorlage starten). Für jeden Standard steht eine eigene Vorlage bereit.

Bei der Installation richtet die Vorlage alle benötigten Bestandteile automatisch ein:

  • Validierungsprofil – in der Gruppe Connectors and Templates wird das Profil E-Invoicing Validation angelegt. Es enthält pro installiertem Standard ein Subprofil, das die Validierung durchführt.

  • HTTP-Endpunkt – der zugehörige REST-Endpunkt wird im API-Manager angelegt.

  • Validierungsdateien – die Konfigurationsdateien werden im Dateimanager unter ./E-invoicing_validation/ abgelegt. Die benötigten Java-Bibliotheken werden im Verzeichnis <install-dir>/lib bereitgestellt.

Zum Anzeigen der bereitgestellten Dateien im Dateimanager benötigen Sie die Rolle Super User.

Aufrufmöglichkeiten

Sie können eine Rechnung auf zwei Wegen prüfen.

Über das Validierungsprofil

Für jeden Standard liefert die Vorlage ein Profil, das die Validierung durchführt:

  • BIS Billing: TEMPLATE_BIS-Billing_Validation

  • ZUGFeRD: TEMPLATE_ZUGFeRD_Validation

  • XRechnung: TEMPLATE_XRechnung_Validation

Das Profil erhält die zu validierende Rechnung als Eingabe.

Das Subprofil führt für den jeweiligen Standard die eigentliche Prüfung durch. Vor dem Aufruf setzt das Profil die Variable MSG_CALL_var__validator auf den Namen des Validierungsverzeichnisses. Dieser Name ist als Fixwert im Zielstrukturfeld config_validator_directory_name hinterlegt. Damit legt das Profil fest, welchen Standard und welche Version geprüft werden.

Das Profil wertet die Antwort des Subprofil-Aufrufs aus. Bei einem validen Dokument setzt es die Variable var__is_document_valid auf true, andernfalls auf false. Über diese Variable steuert das Profil zwei Antwortwege:

  • Antwortweg 1 wird nur bei var__is_document_valid = true ausgeführt und leitet valide Dokumente weiter.

  • Antwortweg 2 wird nur bei var__is_document_valid = false ausgeführt und leitet nicht valide Dokumente weiter.

In diesem Profil dienen beide Antwortwege lediglich als Backup der Zieldaten.

Das Ergebnis der Validierung sehen Sie in der Log-Übersicht:

  • Anzeige 1 zeigt den Validierungsstatus.

  • Anzeige 2 zeigt die Validierungsnachricht.

  • Im Tab Zusätzliche Infos steht die vollständige Validierung mit den einzelnen Meldungen.

Über den HTTP-Endpunkt

Jeder Standard stellt einen REST-Endpunkt bereit:

http(s)://<your-server-name>/api/validation/v1/<standard>/<version>

Senden Sie die Rechnung per POST-Request an den Endpunkt. Sie erhalten das Validierungsergebnis als JSON zurück. Die Endpunkte für ZUGFeRD und XRechnung verarbeiten sowohl PDF/A-3 als auch XML.

Im Endpunkt ruft der Aktionsblock das Profil E-INVOICING_VALIDATOR auf und übergibt über die Variable MSG_CALL_var__validator den Namen des Validierungsverzeichnisses.

 HINWEIS:

Bei Auslieferung ist für alle Endpunkte anonymer Zugriff aktiviert.

Standardspezifische Werte

BIS Billing

ZUGFeRD

XRechnung

Version

3.0.21

2.5.2

3.0.2

Verzeichnis im Dateimanager

./E-invoicing_validation/validation-configuration-bis-3.0.21

./E-invoicing_validation/validation-configuration-zugferd-2.5.2

./E-invoicing_validation/xrechnung-3.0.2-validator-configuration-2026-01-31

HTTP-Endpunkt (URI)

/bis-billing/3.0.21

/zugferd/2.5.2

/xrechnung/3.0.2

Eingabeformat

XML

PDF/A-3 oder XML

PDF/A-3 oder XML

Validierungsprofil

TEMPLATE_BIS-Billing_Validation

TEMPLATE_ZUGFeRD_Validation

TEMPLATE_XRechnung_Validation

Quelle der Validierungsdateien

KoSIT / OpenPeppol

mustangproject

KoSIT

Aktualisierung

Um einen Standard auf eine neue Version zu aktualisieren, gehen Sie wie folgt vor:

  1. Laden Sie das neue Validierungsverzeichnis im Dateimanager unter ./E-invoicing_validation/ hoch.

  2. Nur für ZUGFeRD: Passen Sie die scenarios.xml an – sie ordnet die Dokumente den passenden Validierungsdateien zu. Tragen Sie die Pfade der neuen Validierungsdateien ein und laden Sie die Datei in das Verzeichnis hoch.

  3. Fügen Sie im API-Manager einen neuen Endpunkt hinzu oder passen Sie im bestehenden Endpunkt die Version in der URI an.

  4. Passen Sie den Verzeichnisnamen in der Variable MSG_CALL_var__validator an – im API-Manager (VALIDATOR_<Standard>) und im Validierungsprofil (TEMPLATE_<Standard>_Validation).