ZUGFeRD-Rechnungen können auf drei grundlegend verschiedene Weisen erzeugt werden. Welcher Ansatz passt, hängt vom Ausgangsmaterial, dem Integrationsaufwand und den Datenschutzanforderungen ab.
Die drei Ansätze im Überblick#
| Ansatz | Eingabe | Integration | Zielgruppe |
|---|---|---|---|
| Lokales CLI (csv2zugferd) | CSV + PDF-Vorlage | Kein Code erforderlich | Teams mit CSV-Export aus CRM/ERP |
| Programmatische Bibliothek | Code-Aufruf im eigenen System | Direkt in Anwendung eingebettet | Entwickler mit bestehendem Softwareprojekt |
| SaaS-Dienst | PDF-Upload oder Formular | Browser oder REST-API | Einzelne Rechnungen ohne Infrastruktur |
Lokales CLI: csv2zugferd#
csv2zugferd nimmt strukturierte Rechnungsdaten als CSV und eine vorhandene Rechnungs-PDF entgegen. Das YAML-Mapping beschreibt, welche CSV-Spalten welchen ZUGFeRD-Feldern entsprechen. Kein Code, kein Build-System, keine Abhängigkeiten im eigenen Projekt.
Geeignet, wenn:
- ein CRM, ERP oder Excel CSV exportieren kann
- eine Rechnungs-PDF als sichtbarer Beleg bereits vorliegt
- keine Änderung an einer bestehenden Applikation möglich oder gewünscht ist
- Batch-Verarbeitung oder Automatisierung über PowerShell oder CI/CD gefragt ist
Programmatische Bibliotheksintegration#
Bibliotheken erlauben es, ZUGFeRD-Rechnungen direkt aus Anwendungscode zu erzeugen. Für die gängigen Plattformen existieren quelloffene Bibliotheken – unter anderem für Java, .NET/C#, Python und PHP.
Geeignet, wenn:
- Rechnungsdaten in einer Datenbank oder einem Objektmodell vorliegen
- die ZUGFeRD-Erzeugung fester Bestandteil einer bestehenden Anwendung werden soll
- volle Kontrolle über das erzeugte XML und die Profilauswahl erforderlich ist
SaaS-Dienste#
SaaS-Werkzeuge bieten browserbasierte Oberflächen für die manuelle Eingabe oder den Upload einzelner Rechnungen. Die Nutzung erfordert kein lokales Setup, aber Rechnungsdaten verlassen das eigene System.
Geeignet, wenn:
- gelegentlich einzelne Rechnungen ohne strukturierten Datenexport konvertiert werden
- keine eigene Infrastruktur oder kein Skriptbedarf vorhanden ist
Entscheidungsmatrix#
| Situation | Empfohlener Ansatz |
|---|---|
| CSV-Export vorhanden, kein Quellcode-Eingriff | csv2zugferd |
| Eigene Anwendung soll ZUGFeRD ausgeben | Bibliotheksintegration |
| Gelegentlich einzelne Rechnungen manuell | SaaS |
| Batch-Workflow, hunderte Rechnungen | csv2zugferd oder Bibliothek |
| Vollständige Kontrolle über XML-Ausgabe | Bibliotheksintegration |
| Kein Rechnungsdaten-Upload gewünscht | csv2zugferd oder Bibliothek |
Weiterführend: Lokales CLI vs. SaaS im Detail. Tool: csv2zugferd herunterladen.