Spätestens ab dem 01.01.2025 müssen B2B-Rechnungen in Deutschland digital verschickt und empfangen werden können. Über die gesetzlichen und fachlichen Hintergründe wollen wir uns hier nicht weiter auslassen. Stattdessen möchten wir Ihnen einen technischen Ansatz zeigen, mit dem ZUGFeRD-konforme Rechnungen erstellt werden können, der sich zudem leicht in bestehende technische Prozesse im Unternehmen integrieren lässt.
Im Sinne der EU-Richtlinie EU/2014/55 müssen Rechnungen im innerdeutschen B2B-Geschäft zukünftig elektronisch und strukturiert ausgestellt werden. Bisherige Papierrechnungen sowie einfache PDF- oder Word-Rechnungen werden damit ab 2025 nicht mehr den gesetzlichen Anforderungen entsprechen. Es gibt zwar Ausnahmeregelungen, diese werden jedoch zunehmend eingeschränkt, sodass für nahezu alle Gewerbebetriebe Handlungsbedarf besteht, sich mit dem Thema elektronische Rechnung zu beschäftigen.
(Tipp: Weitere rechtliche Hintergründe finden Sie beispielsweise bei Ihrer IHK oder einem entsprechenden Fachverband.)
Wir zeigen Ihnen in diesem Beitrag, wie Sie ZUGFeRD-konforme Rechnungen mit Apache Camel generieren können und damit den Übergang zur digitalen Rechnungsstellung meistern.
ZUGFeRD (“Zentraler User Guide des Forums elektronische Rechnung Deutschland”) integriert das maschinenlesbare UN/CEFACT-XML-Format in ein menschenlesbares PDF. Damit schließt der Standard die Brücke zwischen dem nur schwer verständlichen XML-Format und den bisher gewohnten Belegen. Viele Unternehmen werden neben Gewerbekunden (B2B) auch private Endkunden (B2C) haben, für die die neuen Regeln bisher nicht gelten, die jedoch eine entsprechend lesbare Rechnung erwarten. Durch ZUGFeRD ist es nun möglich, sowohl rechtlichen als auch praktischen Anforderungen gerecht zu werden und denselben Rechnungsstellungsprozess für B2B- und B2C-Geschäfte zu verwenden. Neben der Integration der XML-Rechnungsdatei stellt ZUGFeRD zusätzliche Anforderungen an das PDF. Dieses muss der archivfähigen Variante PDF/A-3 entsprechen und bestimmte spezielle Auszeichnungen enthalten. Das bedeutet, dass im B2B-Verhältnis die integrierte XML-Datei als rechtlich relevante Rechnung gilt, während das PDF lediglich eine “Sichtkopie” darstellt. Beide Teile sollten jedoch immer inhaltlich übereinstimmen, um Missverständnisse oder rechtliche Probleme zu vermeiden.
Mehr Informationen zu ZUGFeRD finden Sie hier.
Apache Camel ist ein leichtgewichtiges Open-Source-Integrationsframework, das kostenlos verfügbar und auf verschiedenen Betriebssystemen lauffähig ist. Es eignet sich hervorragend, um in bestehenden Unternehmensprozessen eingesetzt zu werden und Datenströme flexibel zu verarbeiten.
Apache Camel unterstützt eine Vielzahl von Protokollen und Datenformaten, sodass es sich ideal für die Integration von ZUGFeRD-konformen Rechnungsprozessen anbietet.
Wir haben eine beispielhafte Lösung entwickelt, die eine Eingangsdatei in einem einfachen XML-Format in eine vollständige ZUGFeRD-konforme Rechnung umwandelt – inklusive strukturierter XML-Datei und grafischer Sichtkopie im PDF. Auch eine individuelle Briefpapier-Vorlage lässt sich als Hintergrund integrieren.
Hier ist ein Beispiel für eine Eingangsdatei:
<?xml version="1.0" encoding="UTF-8"?>
<invoice>
<id>20249999</id>
<date>2024-10-17</date>
<title>Rechnung Beauftragung Datenmigration, 1234A, September 2024</title>
<letterOpening>Sehr geehrter Herr Bohnsen,
ich erlaube mir Ihnen auftragsgemäß folgende Rechnung zu stellen.</letterOpening>
<letterFinish>Bitte überweisen Sie die genannte Summe mit Bezugnahme auf die Rechnungsnummer bis zum 16.11.2024 ohne Abzüge auf unser unten angegebenes Konto.
Wir freuen uns auf eine weiterhin erfolgreiche Zusammenarbeit.
Mit freundlichen Grüßen,
Martha Muster</letterFinish>
<customerAddress>
<name>Lecker Mungobohnenvertrieb KGaA</name>
<addressLine>Buchhaltung</addressLine>
<addressLine>Sackgasse 123D</addressLine>
<postCode>98765</postCode>
<city>Allerhandshausen</city>
</customerAddress>
<projectReference>1234A</projectReference>
<deliveryDate type="month">2024-09-30</deliveryDate>
<lineItem>
<productId>9</productId>
<description>Software-Entwicklung Spezial</description>
<quantity>123</quantity>
<unit>h</unit>
<unitPrice>150.00</unitPrice>
<lineTotal>18450.00</lineTotal>
</lineItem>
<netTotal>18450.00</netTotal>
<vat percentage="19">3505.50</vat>
<grossTotal>21955.50</grossTotal>
<dueDate>2024-11-16</dueDate>
<creditor>
<address>
<name>Musterhaft GmbH</name>
<addressLine>Beispielallee 99C</addressLine>
<postCode>12345</postCode>
<city>Nudelfingen</city>
</address>
<director>Martha Muster</director>
<companyRegistry>Registergericht Nudelfingen</companyRegistry>
<companyRegistrationId>HRB 1234567</companyRegistrationId>
<ibanID>DE91 1000 0000 0123 4567 89</ibanID>
<vatId>DE123456789</vatId>
<email>rechnung@example.com</email>
</creditor>
</invoice>
Die Konvertierung in die ZUGFeRD-konforme PDF-Rechnung erfolgt ohne umfangreiche Logikänderungen, wodurch nur Formatierungen, aber keine Berechnungen angepasst werden. Dies minimiert das Risiko von Diskrepanzen zwischen XML- und PDF-Inhalt.
Hier ist die aus der obigen Beispieldatei generierte ZUGFeRD-Rechnung:
Alle relevanten Dateien, inklusive Anleitung, ausführbaren Camel-Routen, Beispiel-Eingangsdatei, Fonts und einem Musterbriefpapier, finden Sie in unserem GitHub-Projekt.
Wie bereits erwähnt, variieren die Anforderungen einer ZUGFeRD-konformen Rechnung je nach Gewerbe und Situation. Die dargestellte Lösung dient daher als Grundlage für eine individuelle Weiterentwicklung. Durch zusätzliche Camel-Routen kann das Projekt um die Anbindung an Buchhaltung, Rechnungsversand und/oder Archivierungssysteme zu einer vollautomatischen Lösung erweitert werden.
Brauchen Sie Unterstützung bei der Umsetzung Ihrer Rechnungsprozesse oder möchten mehr über die Möglichkeiten erfahren, ZUGFeRD und Apache Camel in Ihrem Unternehmen zu implementieren? Dann kontaktieren Sie uns! Unser Fokus liegt auf Lösungen für komplexe Unternehmensumgebungen, insbesondere für größere Unternehmen, die individuelle Integrationsanforderungen haben.
(Apache, Apache Camel und das Kamel-Logo sind Handelsmarken der Apache Software Foundation)