Das ZUGFeRD macht Rechnungen maschinenlesbar

Maschinenlesbarkeit ist nicht nur bei Produktinformationen die Anforderung im Zeitalter der Digitalisierung. Auch Rechnungen sollen elektronisch ausgetauschbar, lesbar und verarbeitbar sein. Und welche Überraschung: es wird mit XML realisiert!

Aufbau einer ZUGFeRD Rechnung

ZUGFeRD bedeutet Zentraler User Guide des Forums elektronische Rechnung Deutschland. ZUGFeRD steht für ein elektronisches Rechnungsdatenformat zum Austausch von Rechnungen.

Eine Rechnung nach ZUGFeRD kann auf zwei Arten geliefert werden:

  • Hybride Rechnung, die aus einer pdf-Datei im pdf/A3-Format mit eingebundener, maschinenlesbarer XML-Datei besteht
  • Ausschließlich als maschinenlesbare XML-Datei
ZUGFeRD Rechnungserstellungsprozess einer Hybridrechnung
Prozess der Rechnungserstellung einer Hybrid-Rechnung mit ZUGFeRD

Bildquelle

ZUGFeRD Definition

Aktuell ist die Version 2.0 im März 2019 veröffentlicht worden. Der Download enthält folgende Informationen:

  • ZUGFeRD 2.0 Spezifikation
  • ZUGFeRD 2.0 Spezifikation Technischer Anhang
  • Schemadateien zu den Profilen BASIC, EN16931 und EXTENDED
  • Musterrechnungen zu den Profilen BASIC, EN16931 und EXTENDED
  • Ergebnis der externen Kommentierung vom November 2018

Hybrid-Rechnungen können mit allen ZUGFeRD Profilen erstellen werden. Ausschließlich maschinenlesbare XML-Dateien nur mit dem EXTENDED Profil.

Erstellen einer ZUGFeRD Hybrid-Rechnung

Als Beispiel habe ich folgendes realsiert:

  • Hybrid-Rechnung, die aus einer pdf-Datei im pdf/A3-Format mit eingebundener, maschinenlesbarer XML-Datei besteht
  • nach dem ZUGFeRD BASIC Profil

Inhalt der XML-Datei der Hybrid-Rechnung

  • Rechnungsdatum
  • Rechnungsnummer
  • Rechnungswährung
  • Kontaktdaten von Rechnungssteller und Rechnungsempfänger
  • Rechnungsbeträge (ohne Steuer, Steuer, mit Steuer)

Notwendige Werkzeuge

  • XML-Editor mit der Möglichkeit ein Schema zu validieren
  • Programm mit der Möglichkeit Dateien in das Format pdf/A3 umzuwandeln und eine XML-Datei einzubinden

Erstellen der pdf-Rechnung

Folgende Werkzeuge habe ich verwendet:

In folgenden Schritten bin ich vorgegangen:

  • Erstellen der Rechnung mit Word und speichern als pdf
Screenshot der pdf-Rechnung
Screenshot der pdf-Rechnung,erstellt in Word
  • Erstellen der Datei zugferd-invoice.xml basierend auf der Schemadatei des ZUGFeRD Profils BASIC
Screenshot der Datei zugferd-invoice.xml des Profils BASIC von ZUGFeRD 2.0
Screenshot der Datei zugferd-invoice.xml des Profils BASIC von ZUGFeRD 2.0
  • Integration der Datei zugferd-invoice.xml in die pdf-Rechnung und speichern als pdf/A3
Screenshot der pdf-Rechnung im Format A3
Screenshot der pdf/A3-Rechnung des Profils BASIC von ZUGFeRD mit integrierter Datei zugferd-invoce.xml (s. gelbe Markierung)

Alternative mit freien Werkzeugen

PDF erzeugen

Die TU Berlin hat in einem Dokument die Werkzeuge zusammengestellt, mit denn das pdf/A-Format erstellt werden kann.

XML-Datei erstellen

Um eine XML-Datei zu validieren (prüfen ob sie dem vorgegeben Schema entspricht), kann Notepad++ zusammen mit dem Plug-In xml-Tools verwendet werden. In einem Video ist erklärt wie.

data2type bietet als freies Werkzeug AntillesXML an um XML-Dateien gegen ein Schema zu validieren.

Die kostenplichtigen XML-Editoren können 30 Tage getestet werden. Diese Editoren haben den Vorteil, dass basierend auf dem Schema die „muss“ Elemente initial aufgebaut werden. Beim Erstellen der XML-Datei sieht man an jeder Stelle, was dort erlaubt ist zu integrieren und kann das Erlaubte per Doppelklick einfügen.

  • Oxygen XML-Editor, kostenpflichtig, kann 30 Tage getestet werden
  • XMLSpy, kostenpflichtig, kann 30 Tage getestet werden

Hat man damit einmal eine XML-Datei erstellt, können Änderungen im Notepad++ vorgenommen und validiert werden.

Prüfung der Rechnung

Die beschriebene Rechnung habe ich meiner Buchhaltung geschickt mit dem Ergebnis: die Rechnungsdaten werden in DATEV maschinell gelesen.


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*