XRechnungen validieren
E-Invoicing

Validierung von XRechnungen

| | Consultant, econtea GmbH
Valildierung von XRechnungen mit dem Open-Source-Validator der Koordinierungsstelle für IT-Standards (kurz: KoSIT)

Mit der Umsetzung der europäischen Richtlinie für die elektronische Rechnungsstellung bei öffentlichen Auftraggebern (EN 2014/55/EU) in nationales Recht wurden öffentliche Auftraggeber verpflichtet, elektronische Rechnungen entgegenzunehmen. In Teilen besteht darüber hinaus die Verpflichtung für Rechnungssteller, Rechnungen ausschließlich in elektronischer Form einzureichen. Neben ZUGFeRD ist die XRechnung das Standardformat zur Erstellung und Übertragung von elektronischen Rechnungen an öffentliche Auftraggeber.

Um die Arbeit mit diesem Format zu vereinfachen, bietet die KoSIT allen Rechnungsstellern und Rechnungsempfängern die Möglichkeit, Rechnungen mithilfe des Open-Source-Validators selbst zu validieren. Dadurch vereinfacht sich das Auffinden und Beheben eventueller Fehler deutlich.  Für den Fall, dass Rechnungen vom Empfänger abgelehnt werden, kann mit diesem Tool auch direkt Rücksprache zur Klärung gehalten werden. In diesem Artikel erhalten Sie eine Schritt-für-Schritt-Anleitung, wie Sie den Open-Source-Validator der KoSIT einsetzen können.

Seit dem 27. November 2020 ist die Ausstellung einer elektronischen Rechnung, welche zumindest die Anforderung der EN16931 erfüllt, verpflichtend. In Deutschland wird diese Verpflichtung in der Regel mit dem Standard XRechnung erfüllt. Damit ist die XRechnung für viele Unternehmen fester Bestandteil der Rechnungsstellung an Bund und Länder. Auch private Unternehmen, bei denen der Bund oder die Länder Anteile am Unternehmen besitzen, verlangen die Rechnungsstellung über das Format XRechnung.

Es kommt leider immer wieder vor, dass Rechnungen vom Empfänger abgelehnt werden. Die Ursache liegt dann regelmäßig in einer falschen oder unvollständigen Umsetzung der Spezifikation der XRechnung, entweder auf Rechnungssender- oder Rechnungsempfängerseite. Zur Aufklärung der Situation leistet der Validator als „neutraler Schiedsrichter“ hier einen wichtigen Beitrag. In beiden Fällen muss zunächst die Rechnung geprüft werden, um eventuelle Fehler zu ermitteln oder auszuschließen.

Die Rückmeldungen aus dem empfangenden System sind teilweise sehr rudimentär, sodass eine Analyse in den meisten Fällen notwendig ist. Hierfür kann ein sogenannter Validator, wie es der Open-Source-Validator von der KoSIT ist,verwendet werden. Dieser prüft teilautomatisiert die Rechnung auf Grundlage der Spezifikation und weist eventuelle Fehler im Prüfprotokoll aus.

Das Ergebnis der Analyse aus der Validierung kann im Anschluss verwendet werden, um in die Diskussion mit dem Rechnungsempfänger einzusteigen oder, um den Fehler im eigenen System zu korrigieren. Das hilft nicht nur Ihnen als Rechnungssteller, Ihre Rechnungen auf der Basis der Spezifikation zu verifizieren und ggf. Ihr System anzupassen, sondern auch dem Rechnungsempfänger, um dessen System bei Bedarf zu korrigieren.

Da es in den Rechnungen immer um datenschutzrelevante Daten geht, ist es natürlich verständlich, wenn Sie eine Möglichkeit suchen, die eine lokale Validierung auf den eigenen Firmenrechnern erlaubt. Im folgenden erfahren Sie, wie Sie dies umsetzen können.

HowTo: Lokales Validieren leichtgemacht

Für die Validierung von XRechnungen nach dem aktuellen Standard bietet die KoSIT einen Open-Source-Validator an.

Wo bekomme ich den Validator her

Dieser kann über Github heruntergeladen und genutzt werden. Folgende Resourcen werden dafür benötigt:

Der Validator der KoSIT nutzt die vom Connecting Europe Facility (kurz: CEF) bereitgestellten Schemata  für die Validierung der XRechnung.

Um mit dem Validator der KoSIT Ihre XRechnungen zu validieren, müssen Sie die Schemata und den Validator zusammenführen, sodass der Validator die Schemata für die Validierung verwenden kann. Die KoSIT bietet daher eine bereits vorgefertigte Konfiguration, sodass Sie sich das Suchen der Konfigurationen vom CEF sparen können.

Zusammenbau des KoSIT Validators

Zunächst ist es erforderlich, sich den Validator und die Konfigurationsdateien herunterzuladen. Hierfür stehen Ihnen die folgenden Links zur Verfügung:

Nun müssen beide Archive entpackt und zusammengeführt werden, sodass Sie den Validator verwenden können.

Damit der Validator verwenden werden kann, müssen beide Archive entpackt und zusammengeführt werden.
Abbildung 1: Damit der Validator verwenden werden kann, müssen beide Archive entpackt und zusammengeführt werden.

Entpacken Sie die beiden Archive. Das Ergebnis sollte dann wie folgt aussehen:

Entpacken des Validators Schritt 1
Abbildung 2: Entpacken des Validators Schritt 1
Entpacken des Validators Schritt 2
Abbildung 3.1: Entpacken des Validators Schritt 2
Entpacken des Validators Schritt 3
Abbildung 3.2: Entpacken des Validators Schritt 3

Kopieren Sie Konfigurationsdateien in das Verzeichnis, in dem der Validator liegt. Das Ergebnis sollte dann wie folgt aussehen:

Konfigurationsdateien im Verzeichnis, in dem der Validator liegt
Abbildung 4: Konfigurationsdateien im Verzeichnis, in dem der Validator liegt

Nun könnten Sie noch jeweils einen Input- und Output-Ordner in dem Verzeichnis anlegen.

Wie kann man testen

Das Validationstool der KoSIT kann über einen einfachen Terminal-Befehl aufgerufen werden. Dafür muss Java auf dem Rechner installiert sein. Sollte der Befehl so nicht funktionieren, kann es sein, dass der Pfad zur Java.exe dem Aufruf noch hinzugefügt werden muss. Die folgenden Parameter können beim Aufruf der validationtool-x.x.x-standalone.jar übergeben werden:

  • s; definiert das Scenario, diese Datei ist in der vorgefertigten Konfiguration der KoSIT enthalten
  • h; definiert die zu testende XRechnung
  • o; definiert einen Ordner, in dem die Ergebnisse gespeichert werden können

/Markup/ ```shell path_to/java -jar path_to/validationtool-x.x.x-standalone.jar -s path_to/scenarios.xml  -h ./path_to/XRechnung.xml -o ./path_to/output_folder ```

Nach dem Sie diesen Aufruf ausgeführt haben, finden Sie das Ergebnis in dem von Ihnen angegebenen Ordner. Das Prüfprotokoll ist eine HTML Seite, die Sie einfach über Ihren Browser öffnen können.

Wie sind die Testergebnisse zu interpretieren

Nachfolgend sehen Sie drei durch den KoSITValidator geprüfte Rechnungen mit jeweils einem anderen Ergebnis. Es gibt drei mögliche Ergebnisse:

1. Die Rechnung enthält fatale Fehler und der Validator empfiehlt, die Rechnung zurückzuweisen.

Prüfbericht

2. Der Validator hat zwar Fehler gefunden, diese sind jedoch nicht als fatal eingestuft, sondern nur als Warnungen deklariert. Diese Rechnungen werden vom Validator als noch valide angesehen und sollten vom Empfänger verarbeitet werden können. Achtung: Das kann sich in den nächsten Releases der KoSIT ändern, sodass diese Rechnungen dann nicht mehr valide sind. In diesem Fall sollten Sie den angezeigten Fehler beheben, jedoch sollte dieser Fehler die Rechnungsstellung nicht blockieren.

Ein durch den Validator als Warnung eingestufter Fehler
Abbildung 5: Ein durch den Validator als Warnung eingestufter Fehler

3. Eine vollständig valide Rechnung. In diesem Fall zeigt der Validator nur an, dass empfohlen wird, diese Rechnung anzunehmen.

Eine vom Validator als fehlerfrei eingestufte Rechnung
Abbildung 6: Eine vom Validator als fehlerfrei eingestufte Rechnung

Für Anwender, die nach einer einfachen und kostenfreien Lösung zur Validierung von XRechnungen suchen, ist der OpenSource-Validator der KoSIT hervorragend geeignet. Eine umfassendere Lösung, die die Validierung von Rechnungen bereits beinhaltet, ist der InvoiceDeliveryService von SEEBURGER.

Der Invoice Delivery Service (IDS) von SEEBURGER – Rechnungsvalidierung und mehr

Die SEEBURGER AG bietet in diesem Bereich ein Produkt an, welches eine Validierung Ihrer Rechnungen inkludiert. Der Invoice Delivery Service bietet die Möglichkeit, beispielsweise Ihr ERP-System anzubinden und aus einem Rechnungsdatensatz eine XRechnung oder andere Rechnungsformate zu generieren. Bevor die XRechnung an das Ziel geschickt wird – dies kann wahlweise via Peppol oder E-Mail geschehen – wird jede elektronische Rechnung validiert. Denn der Rechnungsempfänger kann nicht valide Rechnungen ablehnen und muss diese dann auch nicht bezahlen.

Auch die großen elektronischen Rechnungsportale, wie das Zentrales Rechnungseingangsportal (ZRE) und die OZG-konformen Rechnungseingangsplattform (OZG-RE), validieren die Rechnungen beim Rechnungseingang und lehnen nicht-valide Rechnungen automatisch ab. Dies macht die vorherige Prüfung auf Validität umso wichtiger. Der Invoice Delivery Service prüft alle Rechnungen vor dem Rechnungsausgang mittels eines integrierten Validators.

Validierung von XRechnungen mit dem SEEBURGER Invoice Delivery Service vor dem Rechnungsversand
Abbildung 7: Validierung von XRechnungen mit dem SEEBURGER Invoice Delivery Service vor dem Rechnungsversand

Der Invoice Delivery Service bietet unseren Kunden die Sicherheit, dass ausschließlich valide XRechnungen an Ihre Kunden geschickt werden und somit von Ihren Kunden – hoffentlich auch – bezahlt werden.

Haben Sie Fragen oder Anmerkungen?

Wir freuen uns hier über Ihre Nachricht.

Teilen Sie diesen Beitrag, wählen Sie Ihre Plattform!

Marvin Döring | econtea GmbH

Ein Beitrag von:

Marvin Döring ist Consultant bei der econtea GmbH. Seine Schwerpunkte sind die elektronische Rechnungsstellung (E-Invoicing), Validierung elektronischer Rechnungen und API Integration. Er hat 2016, nach Abschluss eines dualen Studiums der angewandten Informatik in Stuttgart, zunächst als Software Engineer im Bereich Mauterhebung gearbeitet. Mit der OpenSource Softwareentwicklung und Weiterentwicklung hat er bereits eines seiner Hobbies zum Beruf gemacht. Außerdem reist er sehr gerne, liebt Bowling und tobt sich beim Badminton aus.