Unterstützung von ZUGFeRD 2.0 beim PDF-Export

Bisher wurde das elektronische Rechnungsdatenformat ZUGFeRD für den Austausch von Rechnungen in der Version 1.0 unterstützt. Für List & Label 25 wird nun auch die im März 2019 offiziell freigegebene Spezifikation der Version 2.0 unterstützt.

Update: Mit dem Release des Service Packs 25.002 unterstützt List & Label nun auch die ZUGFeRD Version 2.1, analog zu Version 2.0.

ZUGFeRD 2.0

Mit Hilfe des ZUGFeRD Standards kann der elektronische Rechnungsaustausch zwischen Verbrauchern, öffentlichen Verwaltungen und Unternehmen stark vereinfacht werden, da die Rechnungsdaten in hybrider Form zur Verfügung gestellt werden. Zum einen werden die Rechnungsdaten als unveränderliches PDF-Dokument mit dem PDF/A-3 Standard als visuelle Komponente bereitgestellt, zum anderen als strukturierte XML-Datei mit den XML-Rechnungsdaten für die technische Weiterverarbeitung. 

ZUGFeRD

Die Spezifikation für ZUGFeRD 2.0 wurde für Deutschland im März 2019 offiziell freigegeben und lehnt sich an den französischen Standard Factur-X 1.0 an, sodass beide Implementierungen technisch identisch sind und für einen einheitlichen Standard im Rechnungsaustausch auf europäischer Ebene sorgen.

Im Vergleich zum Standard ZUGFeRD 1.0 gibt es jedoch einen entscheidenden Unterschied in Bezug auf die Lizenzierung. Denn das Komitee hat sich dazu entschieden, den neuen Standard unter die Apache 2.0 Lizenzierung zu stellen, was sich mit dem bisher vereinfachten Deployment von List & Label nicht vereinbaren ließ.

Deshalb haben wir die ZUGFeRD 2.0 Unterstützung in ein anderes Modul ausgelagert. Damit muss bei der Redistribution einer Anwendung mit List & Label die Apache 2.0 Lizenz nicht weitergegeben werden, wenn gar kein ZUGFeRD 2.0 zum Einsatz kommt. Dieses Modul steht sowohl als 32- sowie als 64-Bit Build zur Verfügung.
Die neuen Module c[m/x]LL25xl_zugferd2.dll befinden sich im Verzeichnis „..\Verschiedenes\Optionale Module unter OSI-Lizenzen\ZUGFeRD\“. Dort finden Sie auch die Apache 2.0 Lizenzierung in Form der Datei „license.txt“.

Sie müssen lediglich diese beiden Module (abhängig von der Bitness der Anwendung) zum Deployment-Paket von List & Label hinzufügen – was übrigens auch ganz einfach mit dem Redistributionsassistenten gemacht werden kann. Natürlich sollten Sie die Apache 2.0 Lizenz vor der Weitergabe aufmerksam lesen.

Was nach wie vor von der Anwendung selbst bereitgestellt werden muss, sind die Rohdaten der Rechnung im XML-Format für die Integration in das PDF-Dokument. So könnte nun ein PDF-Export mit ZUGFeRD 2.0 aussehen:

// create export configuration
ExportConfiguration exportConfiguration = new ExportConfiguration(LlExportTarget.Pdf, "Export.pdf", "invoice.lst");

// define ZUGFeRD 2.0 options
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDVersion, "2.0");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDConformanceLevel, "EXTENDED");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDXmlPath, "ZUGFeRD-invoice.xml");

// start export
LL.Export(exportConfiguration);

Neu ist hierbei die Export-Option LlExportOption.PdfZUGFeRDVersion, mit der man gezielt die ZUGFeRD Version bestimmen kann. Denn nach wie vor kann List & Label auch die Spezifikation 1.0 erfüllen und ist damit vollständig abwärtskompatibel. Ein kleiner Auszug aus der Dokumentation dazu:

WertBedeutung
0In der angegebenen Datei ‚zugferd-invoice.xml‘ (siehe auch PDF.ZUGFeRDXmlPath) wird geprüft, ob es sich um ein ZUGFeRD 1.0 oder 2.0 Format handelt. Das entsprechende Format wird dann verwendet. Sollte das Format nicht ausgelesen werden können, weil beispielsweise zu diesem Zeitpunkt die Datei ‚zugferd-invoice.xml‘ noch nicht existiert, wird fest von ZUGFeRD 2.0 ausgegangen.
2.0Es wird ZUGFeRD in der Version 2.0 forciert.
1.0Es wird ZUGFeRD in der Version 1.0 forciert.
Default0

Erfahren Sie mehr über die vielen neuen Highlights von List & Label 25.

Empfohlene Artikel

5 Kommentare zu “Unterstützung von ZUGFeRD 2.0 beim PDF-Export”

  1. Hallo Herr Vietense,

    vielen Dank für Ihre Anmerkung.

    Als Beispiel können wir nur das .NET Code-Snippet aus diesem Beitrag nennen, mit dem man es schnell und einfach bspw. im C# Export Sample einbauen und testen kann. Der Grund dafür ist, dass combit List & Label die angesprochene ZUGFeRD XML-Datei _nicht_ bereitstellt oder zur Verfügung stellt. Das ist ein Task, den der Entwickler immer selbst durchführen muss. List & Label verwendet dann die XML-Datei und bindet Sie gemäß ZUGFeRDConformanceLevel und ZUGFeRDVersion korrekt in das zu erstellende PDF-Dokument ein.

    Sollten Sie das Code-Snippet in einer anderen Programmiersprache benötigen, so lassen Sie es uns bitte wissen.

    Viel Erfolg und beste Grüße,
    Daniel Stein

    Antworten
  2. Hallo Herr Stein.
    Ich bin gerade dabei die ZugFeRD in der Version 2.1 zu erstellen.
    Bei LlExportOption.PdfZUGFeRDVersion muss man die ZugFeRD Version übergeben. Nun meine Frage:
    Bisher habe ich keine Position gefunden, wo man die ZugFeRD-Version in der XML-Datei definiert bzw. abfragen kann. Ergibt sich die Versions-Nr. rein aus dem Inhalt der XML-Datei, oder wo steht die Versions-Nr.?
    MFG, Alfred Janssen

    Antworten
  3. Guten Tag Herr Janssen,

    vielen Dank für Ihren Beitrag. Gerne können Sie Fragestellungen auch in unserem gut besuchten Reporting Forum (https://forum.combit.net/).

    Die verwendete Version ZUGFeRD/Factur-x oder XRechnung ergibt sich immer in der XML-Datei und unterschiedet sich da auch immer von der verwendete Version des Standards und/oder der Konformität und ist nicht pauschal 1:1 mit der Version der Export-Option LlExportOption.PdfZUGFeRDVersion kompatibel.

    Für ZUGFeRD-Version „2.1“ wird im XML bspw. „factur-x:1p0“ (ZUGFeRD und Factur-x wurden vor einigen Jahren auf EU-Ebene zusammengeführt) definiert in dem auch die Konformität enthalten ist – hier nun „Extended“:
    urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended

    Hier nun die Version „2.1“ und „Basic“:
    urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic

    Und wenn man dann den Kosit-Standard für „XRechnung“ verwenden möchte sähe es in der XML-Datei so aus:
    urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2

    Kurz: Dafür müsste man sich entsprechend an den passenden Standard wenden. Bei deren Downloads sind aber auch immer meist Beispiel-XML Dokumente enthalten an denen man sich sehr gut orientieren kann. Weiterführend externe Links dazu:
    * https://www.ferd-net.de/
    * https://www.e-rechnung-bund.de/faq/xrechnung/
    * https://xeinkauf.de/dokumente/

    Aktuell (Stand 09/2024) unterstützen wir ZUGFeRD bis in die Version 2.1 und dabei aber lediglich den CII-Standard für die XML-Struktur – nicht aber den auch vorhanden UBL-Standard.

    ZUGFeRD, Factur-X und XRechnung – Elektronische Rechnungsformate in List & Label
    https://forum.combit.net/t/zugferd-factur-x-und-xrechnung-elektronische-rechnungsformate-in-list-label/7248

    Viel Erfolg und beste Grüße,
    Daniel Stein

    Antworten

Schreibe einen Kommentar