GnuCash und ZUGFeRD
GnuCash ist eine leistungsfähige, freie Buchhaltungssoftware. Doch wer aus GnuCash ZUGFeRD oder andere elektronische Rechnungen erstellen möchte, stößt schnell an Grenzen.
Dabei wird das Thema immer dringlicher: Die gesetzlichen Anforderungen an elektronische Rechnungen nehmen schrittweise zu. Für GnuCash-Anwender stellt sich deshalb zunehmend die Frage: Wie lassen sich aus den vorhandenen Buchhaltungsdaten normgerechte elektronische Rechnungen erstellen, ohne die gewohnte Buchhaltungssoftware wechseln zu müssen?
Ich nutze GnuCash schon seit vielen Jahren als Kassenwart eines Vereins und möchte es auf keinen Fall missen. Die Rechnungsausgabefunktionen benötige ich dafür allerdings nicht. Trotzdem wollte ich eine Lösung für genau dieses Problem finden.
eInvoiceBridge – die Lösung
Das kostenlose Kommandozeilenprogramm (CLI) greift direkt auf GnuCash-Datenbanken zu und liest die benötigten Informationen aus. Unterstützt werden SQLite, PostgreSQL und MariaDB/MySQL (keine XML gespeicherte Daten). Daraus erstellt eInvoiceBridge elektronische Rechnungen in den genannten Formaten – auf Wunsch einschließlich automatischer Validierung mit dem KoSIT-Validator.
Ganz so einfach, wie es zunächst klingt, ist es allerdings nicht. Nicht alle Angaben, die für eine normgerechte elektronische Rechnung erforderlich sind, lassen sich in GnuCash ohne Weiteres erfassen.
- Insbesondere bei Adressen, etwa bei internationalen Rechnungsanschriften, könnte es zu Schwierigkeiten kommen. eInvoiceBridge bietet die Möglichkeit, alle Adressen in eine CSV Datei zu exportieren. Das erleichtert die Überprüfung der automatischen Erkennung.
- Für andere notwendige Angaben wird der Weg über Definitionen in Bemerkungsfeldern gewählt, die es für jeden Kunden und jede Rechnung gibt.
- Dreh- und Angelpunkt ist eine Konfigurationsdatei mit Einstellungen zur Datenbankverbindung, zu den Bankdaten und weiteren Optionen
Das Software-Archiv enthält deshalb neben dem Programm auch ein ausführliches Handbuch und ein Dokument mit zahlreichen Anwendungsbeispielen. In diesem Beitrag konzentriere ich mich auf die wichtigsten Punkte und zeige, worauf es bei der Erstellung elektronischer Rechnungen aus GnuCash ankommt.
Aber einmal richtig eingerichtet, bietet eInvoiceBridge viele Möglichkeiten, die Standardrechnungen von GnuCash erheblich aufzupeppen.
Achtung! eInvoiceBridge ist eine neue Software. Bitte prüfen Sie alle erzeugten Rechnungen sorgfältig, bevor Sie sie verwenden
eInvoiceBridge – die Architektur
Der Aufbau unterscheidet sich grundlegend vom ZUGFeRD-Composer. Statt fertige Rechnungsformulare, beispielsweise aus Word oder Excel, zu verwenden, erstellt eInvoiceBridge die Rechnungen anhand anpassbarer Templates komplett neu.
Die folgende Übersicht zeigt den Weg von den GnuCash-Daten bis zur fertigen elektronischen Rechnung.

Erweiterungen und Einschränkungen
Erweiterungen
Auch unabhängig von der Erzeugung elektronischer Rechnungen bietet eInvoiceBridge zahlreiche Möglichkeiten, GnuCash-Rechnungen aufzuwerten – allein schon durch die einfach anpassbaren Templates.
Hier ein Beispiel für die HTML-Ausgabe, die sich beispielsweise für den E-Mail-Versand verwenden lässt.
Aber es gibt noch mehr…
- Anpassbare Rechnungsvorlagen: HTML und TeX, mit Fluid/Liquid als leistungsfähiger Template-Engine.
- Individuelle Gestaltung: Logos, Hintergrundbilder und mehrseitige Rechnungen im TeX-Template
- Mehrsprachigkeit: 23 europäische Sprachen und flexible Regeln zur Auswahl der Rechnungssprache.
- Internationale Rechnungen: unterschiedliche Währungen, Lieferadressen, Referenzen und Reverse Charge.
- Automatische Validierung: Prüfung der erzeugten Rechnungen mit dem KoSIT-Validator.
GnuCash bietet bei den Rechnungspositionen ein Textfeld Aktion an. Das kann bei eInvoiceBridge auf vier verschiedene Möglichkeiten (auch kombiniert) verwendet werden.
- Als Einheit: Für Rechnungspositionen mit Mengenangabe wird eine Einheit benötigt. Mögliche Einheiten sind in einer Konfigurationsdatei hinterlegt.
- Als Bild: Im TeX-Template können Sie den Namen eines Bildes angeben, das bei der Rechnungsposition erscheint
- Als Link: Ein eingegebener Link wird bei der Bezeichnung hinterlegt
- Als zusätzlicher Text: Dieser erscheint als Detail auf der Rechnung.
Das Beispiel My Favorites mit etwas Werbung von meiner Seite, nutzt alle Möglichkeiten bis auf Einheit, da dafür der Platz nicht ausreicht. Mit folgender Konfiguration im Aktionsfeld ist das Ergebnis im folgenden Bildausschnitt zu sehen.
text:=Very good friends of ours;link:=https://www.optiksehenswert.de/startseite.html;image:=myfavorites/sehenswert.png

Achtung! Für diese Erweiterungen gibt es in den standardisierten elektronischen Rechnungsformaten keine entsprechenden Felder. Sie betreffen die Darstellung der Rechnung, nicht die strukturierten Rechnungsdaten.
Einschränkungen
- GnuCash sieht drei Möglichkeiten für Rabatte vor. Es werden nur Netto-Rabatte unterstützt.
- Da eInvoiceBridge erstmals mit unterschiedlichen GnuCash-Datenbanken eingesetzt wird, können sich weitere Besonderheiten oder bislang unbekannte Probleme zeigen. Über entsprechende Rückmeldungen freue ich mich.
Die Beispiele
Achtung! Es gibt viele Möglichkeiten Buchungen und Konten in GnuCash zu realisieren.
Die Beispieldatenbank benutzt Konten für mehrere Währungen und Steuerbefreiung.
Das sind Beispielkonten, die in der realen Buchführung vermutlich so nicht genutzt werden.
Die folgenden Beispiele sind allerdings nicht alle ganz gewöhnliche Rechnungen. Wer sich meine Vorliebe für Heavy Metal und Irland bislang nicht erschließen konnte, wird sie spätestens hier erkennen.
Am besten starten Sie eine der beiden Spotify-Playlists mit den Liedern aus den Beispielen und schauen sich die Rechnungen in Ruhe an.
Hitster-Fans werden schnell feststellen, dass der Rechnungsbetrag in den meisten Fällen dem Erscheinungsjahr des jeweiligen Songs entspricht.
Quiz-Freunde können versuchen, die mehr als 30 Bands zu identifizieren, die sich im ersten Song „Metal Crüe“ der Heavy-Metal-Playlist verstecken.
Heavy Metal Playlist
Irische Musik Playlist
Details über die Möglichkeiten in den Rechnungen finden Sie in der Hilfedatei Examples_de.pdf. Dort sind auch Links auf die entstandenen Beispiele enthalten.
Übrigens, alle PDF-Rechnungen sollten gültige ZUGFeRD-Rechnungen sein, wie Sie anhand von Online Validatoren wie PortInvoice überprüfen können (Der ist übrigens bei Fehlern in den digitalen Rechnungen sehr hilfreich, da er viel mehr Informationen als die Standard-Validatoren liefert).
Bei den Beispielen mit Rechnungsadressen in verschiedenen Ländern wurde auch auf die passenden Steuerangaben geachtet. Für die dargestellten EU-Umsätze, beispielsweise nach Finnland, Österreich und Schweden, kommen je nach Sachverhalt die Kennzeichen AE (Reverse Charge) oder K (steuerfreie innergemeinschaftliche Lieferung) zum Einsatz. Bei den gezeigten Ausfuhrlieferungen in Nicht-EU-Länder wird G verwendet.
Elektronische Rechnungen müssen auch dann das zutreffende Steuerkennzeichen enthalten, wenn keine Umsatzsteuer ausgewiesen wird.
| Land und Link | Besonderheiten |
|---|---|
| Finnland: finnisch / englisch | "Reverse Charge" (EU Ausland), Rabatte, Referenzen, Auftrags-Nr aus GnuCash, Lieferadresse, Rechnung bezahlt |
| Deutschland(1): deutsch/ englisch | Mehrere Mehrwertsteuersätze, Rabatte, mehrseitig, Anzeige VAT Code Spalte, Übersetzung Rechnungspositionen |
| Deutschland(2): englisch | Anzeige 'Details', Gutschrift/Stornierung mit angepassten Zahlungsbedingungen, Übersetzung Rechnungsposition |
| USA: englisch | Hintergrundbild (KI), Währung $ |
| Österreich: deutsch / englisch | Übersetzung von Texten auch innerhalb einer Sprache (de-DE, de-AT) |
| Schottland: englisch | Hintergrundbild (Glencoe), Besondere Culture (en-GB-SCT), Währung '£' |
| Schweden: schwedisch / englisch | Hintergrundbild (KI), Anzeige 'Details', Referenz |
| Irland: englisch | Hintergrundbild (Cliffs of Moher), Links direkt auf YouTube |
| England: englisch | Hintergrundbild (KI), Währung '£', Links auf Homepages der Bands, kein Logo |
| Weltweit: englisch | Bild bei Positionen, Fontgröße Tabelle leicht erhöht. |
| Persönliches: deutsch / englisch | Hintergrundbild (Irland), Details, Bilder bei Rechnungspositionen, Links, Mehrere Mehrwertsteuersätze, spezielle Zahlungsbedingung, Bruttopreise |
Installation
Es ist ein entsprechendes Handbuch verfügbar.
Achten Sie bei MikTex Installation darauf, dass fehlende Packete automatisch installiert werden.
Nach erfolgreicher Installation und Ausführen der Beispielskripte, können Sie sich an Ihre eigene GnuCash Datenbank wagen.
- Speichern Sie die GnuCash-Datenbank als SQLite in ein leicht zugängliches Verzeichnis
- Tragen Sie den vollständigen Dateinamen – am besten mit
/als Verzeichnistrenner – in die Dateiappsettings.jsonim Verzeichnisbin\cli\configdes entpackten eInvoiceBridge-Archivs ein. Der entsprechende Abschnitt heißtConnection. Dort finden Sie auch den Verweis auf die Beispieldatenbank. - Führen Sie die Beispielskripte erneut aus und prüfen Sie die Ergebnisse im entsprechenden Unterverzeichnis von
C:\ProgramData\eInvoiceBridge.Invoices. - Überprüfen Sie anschließend die CSV-Datei mit den exportierten Adressen. Sie wird mit dem Skript
RunAddressCheck.cmderzeugt und liegt ebenfalls unterC:\ProgramData\eInvoiceBridge.Invoices. Achten Sie insbesondere auf die Spalten mit großgeschriebenen Überschriften.

Elektronische Rechnungen (ZUGFeRD, XRechnung, Factur-X) aus GnuCash.
So, jetzt noch abschließend als Schmankerl die USA Beispielrechnung, die nicht alle Amerikaner erfreuen dürfte…