ZUGFeRD ist das E-Rechnungsformat, das in Deutschland am häufigsten im B2B-Bereich eingesetzt wird. Der Grund: Es verbindet ein ganz normales PDF mit maschinenlesbaren XML-Daten in einer einzigen Datei. Dein Kunde kann die Rechnung öffnen und lesen wie bisher. Gleichzeitig kann seine Buchhaltungssoftware die Daten automatisch verarbeiten. Klingt gut? Ist es auch. In dieser Anleitung zeige ich dir Schritt für Schritt, wie du eine ZUGFeRD Rechnung erstellst.
Was genau ist ZUGFeRD?
ZUGFeRD steht für "Zentraler User Guide des Forums elektronische Rechnung Deutschland". Das klingt sperrig, die Idee dahinter ist aber simpel: Eine Rechnung soll sowohl von Menschen als auch von Maschinen gelesen werden können.
Technisch funktioniert das so: Du erzeugst ein PDF im Format PDF/A-3. In dieses PDF wird eine XML-Datei eingebettet, die alle Rechnungsdaten strukturiert enthält. Beträge, Steuersätze, Adressen, Positionen. Alles, was eine Software braucht, um die Rechnung automatisch zu verbuchen.
Seit Version 2.0 basiert ZUGFeRD auf der europäischen Norm EN 16931. Damit ist es kompatibel mit dem französischen Pendant Factur-X. Eine ZUGFeRD-2.x-Rechnung ist also auch eine gültige Factur-X-Rechnung.
Die fünf ZUGFeRD-Profile
Nicht jede ZUGFeRD-Rechnung enthält gleich viel Daten. Je nach Anwendungsfall wählst du ein Profil, das den Detailgrad der XML-Daten bestimmt. Es gibt fünf Stufen:
| Profil | Detailgrad | Typischer Einsatz |
|---|---|---|
| MINIMUM | Nur Kopfdaten (Beträge, Datum, Parteien) | Einfache Archivierung, Buchhaltungs-Referenz |
| BASIC WL | Kopfdaten + Zahlungsinformationen | Wenn Zahlungskonditionen mitgegeben werden sollen |
| BASIC | Einzelpositionen enthalten | Standardfall für die meisten B2B-Rechnungen |
| EN 16931 (COMFORT) | Vollständig EN-16931-konform | Pflicht für B2G, empfohlen für B2B |
| EXTENDED | Zusätzliche Felder über EN 16931 hinaus | Komplexe Geschäftsvorfälle, Konzerne |
Welches Profil brauchst du?
Für die meisten kleinen und mittleren Unternehmen reicht BASIC völlig aus. Es enthält Einzelpositionen und lässt sich problemlos automatisiert verarbeiten.
Willst du an Behörden liefern, brauchst du mindestens das Profil EN 16931. Nur dieses und EXTENDED erfüllen die europäische Norm vollständig. Einige Behörden verlangen allerdings XRechnung statt ZUGFeRD. Das solltest du vorab klären.
Das Profil EXTENDED ist für Unternehmen gedacht, die zusätzliche Informationen transportieren müssen. Etwa detaillierte Lieferbedingungen oder branchenspezifische Felder. Im Alltag brauchst du das selten.
ZUGFeRD Rechnung erstellen: Schritt für Schritt
Jetzt wird es praktisch. So gehst du vor, um eine gültige ZUGFeRD-Rechnung zu erzeugen.
Schritt 1: Rechnungsdaten zusammenstellen
Bevor du irgendetwas technisch umsetzt, brauchst du saubere Daten. Dazu gehören:
- Dein vollständiger Name und deine Anschrift
- Name und Anschrift des Rechnungsempfängers
- Deine Steuernummer oder USt-IdNr.
- Eine fortlaufende Rechnungsnummer
- Rechnungsdatum und Leistungszeitraum
- Einzelpositionen mit Menge, Bezeichnung und Einzelpreis
- Nettobetrag, Umsatzsteuer und Bruttobetrag
- Zahlungsziel und Bankverbindung
Diese Angaben sind nicht optional. Sie ergeben sich aus §14 UStG und müssen auf jeder Rechnung stehen. Fehlt etwas, riskiert dein Kunde Probleme beim Vorsteuerabzug.
Schritt 2: XML-Datei erzeugen
Die XML-Datei ist das Herzstück. Sie enthält alle Rechnungsdaten in einem genau definierten Schema. Welches Schema das ist, hängt vom gewählten Profil ab.
Du kannst die XML-Datei manuell erstellen, wenn du dich mit XML auskennst. Sinnvoller ist aber eine Software, die das für dich übernimmt. Tools wie SimplyBills erzeugen die XML-Daten automatisch aus deinen Eingaben und stellen sicher, dass das Schema eingehalten wird.
Die XML-Datei heißt bei ZUGFeRD immer factur-x.xml und folgt dem Cross Industry Invoice (CII) Standard. Das unterscheidet sie von XRechnung, die auf UBL basiert.
Schritt 3: PDF/A-3 erstellen
Ein normales PDF reicht nicht. ZUGFeRD verlangt das Format PDF/A-3. Der Unterschied zu einem gewöhnlichen PDF: PDF/A-3 erlaubt es, Dateien einzubetten. Genau das brauchen wir für die XML-Datei.
Außerdem ist PDF/A ein Archivierungsformat. Schriften werden eingebettet, Transparenzen aufgelöst, JavaScript ist verboten. Das garantiert, dass die Rechnung auch in zehn Jahren noch genauso aussieht wie heute.
In der Praxis erzeugst du die PDF/A-3-Datei nicht von Hand. Dein Rechnungstool erledigt das. Achte aber darauf, dass deine Software wirklich PDF/A-3 ausgibt und nicht nur ein normales PDF. Das lässt sich in den Dokumenteigenschaften prüfen.
Schritt 4: XML in PDF einbetten
Jetzt müssen PDF und XML zusammenkommen. Die XML-Datei wird als Anhang in die PDF/A-3-Datei eingebettet. Dabei wird sie mit einem speziellen Relationship-Typ verknüpft, der Leseprogrammen signalisiert: "Hier steckt eine maschinenlesbare Rechnung drin."
Wenn du eine Bibliothek wie Mustang (Java) oder Factur-X (Python) verwendest, passiert das automatisch. Du gibst PDF und XML-Daten rein, die Bibliothek spuckt eine fertige ZUGFeRD-Datei aus.
Schritt 5: Validierung
Bevor du die Rechnung verschickst, solltest du sie validieren. Die Validierung prüft zwei Dinge:
- Ist die XML-Datei schema-konform? Stimmen Datentypen, Pflichtfelder, Wertebereiche?
- Sind die Geschäftsregeln eingehalten? Zum Beispiel: Stimmt die Summe der Einzelpositionen mit dem Gesamtbetrag überein?
Für die Validierung gibt es kostenlose Online-Tools. Die KoSIT stellt einen Validator bereit. Auch der Factur-X-Validator aus Frankreich funktioniert mit ZUGFeRD-Dateien. Im Idealfall validiert deine Rechnungssoftware automatisch, bevor sie die Datei erzeugt.
So sieht eine ZUGFeRD-PDF aus
Von außen sieht eine ZUGFeRD-Rechnung aus wie ein ganz normales PDF. Dein Kunde öffnet die Datei in seinem PDF-Reader und sieht eine formatierte Rechnung mit Logo, Positionen, Beträgen. Nichts Ungewöhnliches.
Der Unterschied wird sichtbar, wenn du in die Anhänge des PDFs schaust. Dort findest du die Datei factur-x.xml. In Adobe Acrobat siehst du das im Bereich "Anlagen" oder "Attachments". Manche PDF-Reader zeigen ein kleines Büroklammer-Symbol.
Für den Empfänger ändert sich wenig. Er kann die Rechnung lesen, ausdrucken, ablegen. Aber seine Buchhaltungssoftware kann die XML-Daten extrahieren und automatisch verbuchen. Kein Abtippen, keine OCR-Erkennung, keine Fehler.
Versand per E-Mail
ZUGFeRD-Rechnungen kannst du ganz normal per E-Mail verschicken. Die PDF-Datei geht als Anhang raus, fertig. Das ist einer der großen Vorteile gegenüber XRechnung: Du brauchst kein spezielles Portal und kein PEPPOL-Netzwerk.
Allerdings gibt es ein paar Punkte, die du beachten solltest:
- Dateiname: Verwende einen sprechenden Namen wie Rechnung-2026-0042.pdf. Das erleichtert die Zuordnung beim Empfänger.
- Dateigröße: ZUGFeRD-PDFs sind etwas größer als normale PDFs, weil die XML-Daten und die PDF/A-3-Konformität Platz brauchen. Trotzdem bleiben sie in der Regel unter 1 MB.
- Betreffzeile: Nenne die Rechnungsnummer im Betreff. Klingt banal, spart aber Rückfragen.
- Signatur: Eine qualifizierte elektronische Signatur ist für ZUGFeRD nicht vorgeschrieben. Sie kann aber sinnvoll sein, wenn dein Kunde Wert darauf legt.
Viele Unternehmen versenden ZUGFeRD-Rechnungen direkt aus ihrer Buchhaltungssoftware. So stellst du sicher, dass der Prozess konsistent läuft und keine manuelle Nacharbeit nötig ist.
Häufige Fehler beim Erstellen
Einige Stolperfallen tauchen immer wieder auf. Hier die häufigsten:
- Falsches PDF-Format: PDF statt PDF/A-3. Die Rechnung sieht gleich aus, ist aber technisch nicht ZUGFeRD-konform.
- Profil und Daten passen nicht zusammen: Du wählst BASIC, lieferst aber keine Einzelpositionen. Das Schema-Validierung schlägt fehl.
- Beträge in PDF und XML weichen ab: Wenn die sichtbare PDF-Rechnung 1.190 Euro zeigt, die XML-Datei aber 1.180 Euro enthält, ist das ein Problem. Beide müssen übereinstimmen.
- Fehlende Pflichtfelder: Je nach Profil sind bestimmte Felder verpflichtend. Ein fehlendes Feld macht die XML-Datei ungültig.
Der schnellere Weg
All diese Schritte manuell umzusetzen ist möglich, aber aufwendig. Vor allem die Kombination aus PDF/A-3-Erzeugung, XML-Generierung und Einbettung erfordert technisches Know-how.
Mit einer Software wie SimplyBills gibst du einfach deine Rechnungsdaten ein und bekommst eine fertige, validierte ZUGFeRD-Datei. Profil wählen, Daten eingeben, exportieren. Die Software kümmert sich um den Rest: PDF/A-3-Konvertierung, XML-Generierung, Einbettung und Validierung in einem Schritt.
So sparst du Zeit und vermeidest die technischen Fallstricke, die beim manuellen Erstellen lauern.
Weiterlesen
- XRechnung vs ZUGFeRD: Welches Format brauchst du?
- XRechnung erstellen: Anleitung in 5 Minuten
- E-Rechnungspflicht 2025–2028: Fristen & Pflichten
Zusammenfassung
ZUGFeRD ist ein hybrides Rechnungsformat aus PDF und XML. Du wählst ein Profil (meist BASIC oder EN 16931), stellst deine Rechnungsdaten zusammen, erzeugst eine XML-Datei, bettest sie in ein PDF/A-3 ein und validierst das Ergebnis. Verschickt wird per E-Mail als normaler PDF-Anhang.
Der Aufwand hängt stark davon ab, ob du den Prozess manuell oder mit einer Software umsetzt. In jedem Fall ist ZUGFeRD der pragmatischste Weg, um E-Rechnungen im B2B-Bereich zu erstellen und zu versenden.