- Thema
- ZUGFeRD
- SDK-Mitglieder
- IsKosit LastError MergeXMLIntoPDF() SaveXML() ValidateInvoiceXML() ValidationReport ZUGfeRDStandard
- Business Terms
- BT-10 Referenz des Käufers BT-24 Spezifikationskennung BT-106 Summe der Nettobeträge aller Rechnungspositionen BT-108 Summe der Zuschläge auf Dokumentenebene
- Codebeispiele
- VB.NET
- Veröffentlicht
Kurz: „XRechnung oder ZUGFeRD“ ist die falsche Frage. Die XRechnung ist ein Regelwerk für Rechnungen an deutsche Behörden, kein Dateiformat. Es gibt sie als reines XML (in den Syntaxen UBL oder CII) und als ZUGFeRD-PDF im Profil XRECHNUNG. Entscheidend ist deshalb: Verlangt der Empfänger die XRechnung-Regeln, und möchte er eine PDF dazu oder nur das XML? Für die meisten Geschäftskunden ist ZUGFeRD im Profil EN 16931 die pragmatische Wahl, für Behörden die XRechnung. Das Aloaha ZUGFeRD SDK erzeugt beides aus demselben Code und liest und prüft alle Varianten.
XRechnung ist kein Dateiformat, sondern ein Regelwerk
Die XRechnung wird von der KoSIT herausgegeben und ergänzt die europäische Norm EN 16931 um deutsche Vorgaben, etwa die Leitweg-ID der Behörde (BT-10) und die Kontaktdaten des Rechnungsstellers. Wie die Daten technisch verpackt sind, legt sie nicht auf eine einzige Form fest:
| Form | Aufbau | Aloaha ZUGFeRD SDK |
|---|---|---|
| XRechnung in UBL | reines XML in der UBL-Syntax | lesen und prüfen |
| XRechnung in CII | reines XML in der CII-Syntax | erzeugen, lesen und prüfen |
| ZUGFeRD im Profil XRECHNUNG | PDF/A-3 mit eingebetteter XRechnung (CII) als xrechnung.xml | erzeugen, lesen und prüfen |
Eine ZUGFeRD-Rechnung kann also selbst eine XRechnung sein. Ob eine Rechnung die XRechnung-Regeln erfüllen soll, steht in der Spezifikationskennung (BT-24) im XML: Enthält sie xrechnung, ist es eine XRechnung – egal ob als XML-Datei oder in einer PDF. Beide Syntaxen, UBL und CII, sind nach der EN 16931 gleichwertig zulässig. Wer Rechnungen empfängt, muss deshalb beide verarbeiten können; wer sie versendet, darf sich für eine entscheiden.
Die Grundlagen der Formate und Syntaxen: ZUGFeRD, XRechnung und Factur-X: Was ist der Unterschied?
Was beide gemeinsam haben
- Gleiche Basis: Beide setzen die EN 16931 um und gelten in Deutschland als E-Rechnung.
- ZUGFeRD ab Version 2.0.1: Alle Profile ab BASIC gelten als E-Rechnung, MINIMUM und BASIC WL dagegen nicht, weil ihnen Pflichtangaben fehlen (Profile im Vergleich). Aktuell ist ZUGFeRD 2.5.2, inhaltlich identisch mit Factur-X 1.09.2.
- XRechnung: Gültig ist Version 3.0. Die KoSIT hat im September 2026 eine Vorabversion von 4.0 veröffentlicht, die finale Fassung wird für das Frühjahr 2027 erwartet (XRechnung 4.0: Zeitplan und Änderungen).
- Wahl des Formats: Sie entscheidet der Rechnungssteller. Der Empfänger darf eine E-Rechnung in einem zulässigen Format nicht zurückweisen, ein bestimmtes Format kann aber vertraglich vereinbart werden.
Welches Format für welchen Empfänger?
| Empfänger | Empfehlung | Einstellung im SDK |
|---|---|---|
| Bundesbehörden | XRechnung mit Leitweg-ID, Einreichung über die Rechnungseingangsplattform des Bundes (OZG-RE) oder Peppol | isKOSIT = True, Leitweg-ID in WriteBuyer |
| Länder und Kommunen | XRechnung als sicherer Standard; Vorgaben des jeweiligen Portals prüfen | wie oben |
| Geschäftskunden, Standardfall | ZUGFeRD im Profil EN 16931: Der Kunde sieht eine gewohnte PDF, seine Software liest das XML | Profil comfort |
| Geschäftskunden mit automatisiertem Rechnungseingang | ZUGFeRD EN 16931 oder XRechnung, je nach Absprache | Profil comfort, bei Bedarf isKOSIT = True |
| Geschäftskunden mit Sonderfällen | ZUGFeRD EXTENDED, nur wenn wirklich benötigt (z. B. Bestellnummer je Position) | stellt das SDK automatisch um, sobald ein EXTENDED-Feld gesetzt wird |
Ob ein Behördenportal neben dem reinen XML auch die hybride Form (ZUGFeRD im Profil XRECHNUNG) annimmt, legt der jeweilige Empfänger fest. Im Zweifel senden Sie das reine XML. Wie Sie beide Empfängergruppen mit einem Programm bedienen: XRechnung für Behörden und ZUGFeRD für Unternehmen aus einer Software.
Hybride Rechnungen: Das XML ist führend
Bei ZUGFeRD zählt steuerlich nur der strukturierte Teil. Das BMF-Schreiben vom 15. Oktober 2025 regelt auch, was gilt, wenn die PDF davon abweicht (Abschnitt 14c.1 Abs. 4a UStAE):
- Enthält die PDF dieselben Rechnungsangaben wie das XML, ist sie nur ein inhaltsgleiches Mehrstück und keine zweite Rechnung.
- Weicht sie in Rechnungsangaben ab, etwa bei der Leistungsbeschreibung oder dem Steuerbetrag, kann sie als weitere Rechnung gelten, für die § 14c UStG zu prüfen ist.
- Kleine, technisch bedingte Unterschiede wie Rundungsdifferenzen oder eine verkürzte Leistungsbeschreibung werden nicht beanstandet.
- Der Vorsteuerabzug richtet sich allein nach dem XML.
Am sichersten ist es deshalb, wenn PDF und XML aus denselben Daten entstehen. Mit dem SDK erzeugen Sie die sichtbare Rechnung direkt aus dem XML: über eine Word-Vorlage mit Platzhaltern (CreateDocFromXML, Platzhalter für Word-Vorlagen). Erstellen Sie die PDF weiter mit Ihrem eigenen Formular, prüfen Sie, dass Summen, Steuer und Positionen aus derselben Quelle stammen wie die Werte, die Sie an das SDK übergeben.
Empfang: Alle Varianten annehmen und prüfen
Seit dem 1. Januar 2025 müssen alle inländischen Unternehmen E-Rechnungen empfangen können (E-Rechnungspflicht in Deutschland). Ihr Rechnungseingang muss also XRechnungen in UBL und CII ebenso annehmen wie ZUGFeRD-PDFs.
- Auslesen:
FillZUGFeRD_Structureliest CII, UBL-Rechnungen und UBL-Gutschriften sowie das XML aus einer ZUGFeRD-PDF in dieselbe Datenstruktur. Ihr Programm muss die Syntax nicht unterscheiden. - Prüfen:
ValidateInvoiceXMLundValidateInvoicePDFprüfen nach EN 16931, XRechnung und allen ZUGFeRD-Profilen, offline und ohne Java. Bei einer PDF prüft das SDK zusätzlich Anhang und XMP-Metadaten (E-Rechnung im SDK prüfen). - Prüfbericht aufbewahren: Die Prüfung ist keine Pflicht, wird aber empfohlen. Den Bericht erhalten Sie als Text über
ValidationReport.
Archivierung
Aufzubewahren ist bei beiden Formaten der strukturierte Teil, unverändert und maschinell auswertbar, acht Jahre lang. Nach der zweiten Änderung der GoBD vom 14. Juli 2025 muss der PDF-Teil einer ZUGFeRD-Rechnung nur dann zusätzlich aufbewahrt werden, wenn er weitere oder abweichende steuerrelevante Angaben enthält, etwa Buchungsvermerke. Eine Umwandlung in ein Bildformat darf das XML nicht ersetzen. Das Original-XML aus einer PDF speichern Sie mit ExportZUGFeRDXML2Disk.
Eine Rechnung, zwei Ausgaben (VB.NET)
Dim alo As New Aloaha_ZUGFeRD.XML(Aloaha_ZUGFeRD.iXML.ZUGFeRDProfile.comfort, False, "IHR-LIZENZSCHLUESSEL")
If kunde.IstBehoerde Then
alo.ZUGfeRDStandard = Aloaha_ZUGFeRD.iXML.ZUGFeRDVersion.xInvoice
alo.isKOSIT = True ' XRechnung (CII)
End If
' ... Rechnungskopf, Verkäufer, Käufer (bei Behörden mit Leitweg-ID), Positionen, Steuer, Summen ...
Dim xmlPfad As String = "C:\Rechnungen\RE-1001.xml"
If Not alo.SaveXML(xmlPfad) Then
Throw New Exception("Speichern fehlgeschlagen: " & alo.LastError)
End If
' vor dem Versand prüfen
If Not alo.ValidateInvoiceXML(xmlPfad) Then
System.IO.File.WriteAllText("C:\Rechnungen\RE-1001_pruefbericht.txt", alo.ValidationReport)
Exit Sub ' nicht versenden
End If
If Not kunde.IstBehoerde Then
' ZUGFeRD: XML in die PDF-Rechnung einbetten (PDF/A-3, Anhang factur-x.xml)
alo.MergeXMLIntoPDF(xmlPfad, "C:\Rechnungen\RE-1001_druck.pdf", "C:\Rechnungen\RE-1001.pdf", True)
End If
Den Namen des Anhangs (factur-x.xml oder xrechnung.xml) und die XMP-Metadaten setzt MergeXMLIntoPDF selbst anhand des Profils im XML. Vollständige Beispiele für eine ganze Rechnung: ZUGFeRD Beispiel-Code.
Checkliste: Was Ihre Software können muss
| Anforderung | Mit dem Aloaha ZUGFeRD SDK |
|---|---|
| XRechnung erzeugen | ja, in CII (isKOSIT = True) |
| ZUGFeRD / Factur-X erzeugen | ja, Profile BASIC, EN 16931 und EXTENDED sowie XRECHNUNG |
| XML in die PDF einbetten (PDF/A-3) | ja, MergeXMLIntoPDF |
| PDF aus denselben Daten wie das XML | ja, Word-Vorlage mit Platzhaltern (CreateDocFromXML) |
| Format und Profil je Geschäftspartner | ja, wird je Rechnung gesetzt; das Kennzeichen pflegen Sie im Kundenstamm |
| Leitweg-ID und Pflichtangaben für Behörden | ja, WriteBuyer, Kontaktdaten, Zahlungsangaben |
| Empfang: XRechnung in UBL und CII, ZUGFeRD | ja, FillZUGFeRD_Structure |
| Prüfung bei Empfang und vor dem Versand, Prüfbericht | ja, ValidateInvoiceXML, ValidateInvoicePDF, ValidationReport |
| Original-XML für das Archiv | ja, ExportZUGFeRDXML2Disk |
| XRechnung 4.0 | sobald die finale Fassung mit den offiziellen Prüfregeln vorliegt |
| Versand über Peppol oder OZG-RE | nicht Teil des SDK; dafür nutzen Sie einen Peppol-Zugangspunkt bzw. das Portal |
| Revisionssichere Archivierung | nicht Teil des SDK; das SDK liefert das unveränderte XML an Ihr Archivsystem |
Quellen
- BMF-Schreiben vom 15. Oktober 2025 zur Einführung der obligatorischen E-Rechnung (u. a. Abschnitt 14.4 Abs. 3 und 14c.1 Abs. 4a UStAE)
- BMF-Schreiben vom 14. Juli 2025, zweite Änderung der GoBD
- FeRD: ZUGFeRD 2.5.2 (gültig seit 1. September 2026)
- KoSIT: XRechnung 3.0 und Vorabversion 4.0
- E-Rechnung Bund: Zusammenlegung von ZRE und OZG-RE zum 19. September 2025
Stand: November 2026. Keine Rechts- oder Steuerberatung – maßgeblich sind Gesetz und BMF-Schreiben in der jeweils aktuellen Fassung.
Häufige Fragen
Ist eine ZUGFeRD-Rechnung auch eine XRechnung?
Nur im Profil XRECHNUNG. Dann steckt in der PDF eine vollständige XRechnung (CII) als xrechnung.xml. Eine ZUGFeRD-Rechnung im Profil EN 16931 oder EXTENDED ist keine XRechnung, auch wenn sie als E-Rechnung gilt.
Ist UBL dasselbe wie XRechnung?
Nein. UBL ist eine Syntax, also die Art, wie das XML aufgebaut ist. Eine XRechnung kann in UBL oder in CII vorliegen. ZUGFeRD und Factur-X verwenden immer CII.
Muss ich XRechnungen in UBL erzeugen können?
Nein. Beim Versand genügt eine zulässige Syntax; CII ist gleichwertig. Beim Empfang müssen Sie aber beide lesen können. Das SDK erzeugt XRechnungen in CII und liest und prüft UBL und CII.
Welches Format sollte ich für Geschäftskunden verwenden?
In der Regel ZUGFeRD im Profil EN 16931: Der Kunde erhält eine lesbare PDF, und seine Software kann das XML automatisch verarbeiten. Eine XRechnung ist ebenfalls zulässig, wenn der Kunde sie wünscht.
Was passiert, wenn PDF und XML einer ZUGFeRD-Rechnung voneinander abweichen?
Maßgeblich ist das XML. Enthält die PDF abweichende Rechnungsangaben, etwa einen anderen Steuerbetrag, kann sie als weitere Rechnung gelten, für die § 14c UStG zu prüfen ist. Erzeugen Sie beide Teile deshalb aus denselben Daten.
Muss ich die PDF einer ZUGFeRD-Rechnung aufbewahren?
Aufzubewahren ist acht Jahre lang das XML. Die PDF nur dann zusätzlich, wenn sie weitere oder abweichende steuerrelevante Angaben enthält, etwa Buchungsvermerke.