-> Inter-Data -> Features -> E-Rechnung

E-Rechnung

ZUGFeRD, Factur-X und XRechnung nach EN 16931

Gesetzlicher Rahmen

In Deutschland müssen Unternehmen seit dem 1. Januar 2025 elektronische Rechnungen empfangen können. Die Pflicht zum Versand im B2B-Bereich folgt mit Übergangsfristen bis Ende 2026 bzw. 2027. Als E-Rechnung gilt nur ein strukturiertes, maschinenlesbares Format nach der europäischen Norm EN 16931 — ein PDF allein erfüllt die Anforderung nicht. Rechnungen an Privatkunden sind von der Pflicht ausgenommen.

Formate

Factur-X / ZUGFeRD
Version 2.2, Profil EXTENDED. Hybridformat: PDF/A-3 mit eingebetteter XML-Datei (CII)
XRechnung
Version 3.0, reine XML-Datei in CII-Syntax — Standard für öffentliche Auftraggeber
Testmodus
Je Format als eigene Einstellung — die Rechnung wird als Testrechnung gekennzeichnet

Unterstützte Belegarten: Rechnung (Typcode 380), Gutschrift (381) und Rechnungskorrektur (384).

Technische Umsetzung

  • Erzeugung: Die XML-Daten entstehen mit der Open-Source-Bibliothek horstoeko/zugferd. Für Factur-X wird das PDF aus der normalen Druckvorlage gerendert, mit Ghostscript in PDF/A-3 umgewandelt und die XML-Datei eingebettet.
  • Einheiten: Mengeneinheiten werden auf die Codes der UN/ECE-Empfehlung 20 abgebildet (z. B. Stück → C62, Stunde → HUR).
  • Prüfung: Vor dem Export wird die Rechnung gegen die Vorgaben des Formats geprüft. Bei Verstößen erscheinen die Meldungen in der Oberfläche, die Datei wird nicht erzeugt.
  • Ausgabe: Die Datei wird aus dem Aktionsmenü der Rechnung heraus erzeugt und heruntergeladen.

Herkunft der Rechnungsdaten

Mandant
Firmenname, Anschrift, USt-ID, Steuernummer, GLN
Bankkonto
Das in der Bankkontenverwaltung für ZUGFeRD markierte Konto
Kunde
Name, Anschrift, USt-ID, GLN, Rechnungs-E-Mail; die Leitweg-ID wird als Käuferreferenz übernommen
Beleg
Rechnungsnummer, Datum, Währung, Positionen, Steuersätze und Summen

Einstellungen

Das Format wird zweistufig festgelegt:

  1. Mandant: Im Konfigurationsbereich legt der Tab „E-Rechnung" das Standardformat fest. Eine Statusanzeige zeigt, ob die eigene USt-ID hinterlegt ist.
  2. Kunde: In den Kundenstammdaten lässt sich das Format abweichend wählen — oder der Mandanten-Standard übernehmen. Die Kundensuche filtert nach E-Rechnungsformat.

Die Felder entsprechen denen von kivitendo. Bei einer Migration von kivitendo bleiben Formatwahl und Leitweg-ID der Kunden erhalten.

Eingehende E-Rechnungen

In der Buchhaltung nimmt die Belegerfassung zwei Arten von E-Rechnungen an:

  • ZUGFeRD / Factur-X als PDF: Die eingebettete XML-Datei wird aus dem PDF gelesen.
  • XRechnung als XML-Datei: Die Datei wird direkt hochgeladen. Unterstützt wird die CII-Syntax; XML-Dateien in UBL-Syntax werden mit einem Hinweis abgelehnt.

Statt der KI-Analyse werden die strukturierten Daten ausgelesen — Lieferant, IBAN, Rechnungsnummer, Datum, Summen und Positionen stehen damit ohne Erkennungsfehler zur Verfügung. Der Buchungsvorschlag startet wie jeder andere als Entwurf und wird erst nach Prüfung verbucht.

Belege ohne strukturierte Daten — Papierrechnungen, Fotos, einfache PDFs — verarbeitet weiterhin die KI-Beleganalyse.

Häufig gestellte Fragen

Welches ZUGFeRD-Profil wird erzeugt?
ZUGFeRD 2.2 bzw. Factur-X im Profil EXTENDED. Es enthält alle Angaben der Norm EN 16931 und darüber hinaus weitere Felder. XRechnung wird in Version 3.0 in der CII-Syntax erzeugt.
Welche Bibliothek steckt dahinter?
Die Erzeugung, Prüfung und das Einlesen der XML-Daten übernimmt die Open-Source-Bibliothek horstoeko/zugferd für PHP. Das PDF/A-3 entsteht mit Ghostscript.
Bleiben die E-Rechnungs-Einstellungen bei einer Migration von kivitendo erhalten?
Ja. OpensourceERP verwendet dieselben Datenbankfelder wie kivitendo. Das E-Rechnungsformat je Kunde und die Leitweg-ID werden mit den Kundenstammdaten übernommen.
Werden eingehende E-Rechnungen ohne KI verarbeitet?
Ja. Enthält eine hochgeladene Lieferantenrechnung ZUGFeRD- oder Factur-X-Daten oder handelt es sich um eine XRechnung als XML-Datei, liest OpensourceERP die Daten direkt aus. Die KI-Analyse wird nur für Belege ohne strukturierte Daten aufgerufen.