TL;DR
- Die EU-E-Rechnungspflicht ist seit 2025 aktiv — B2B- und öffentliche Empfänger in Deutschland verlangen strukturierte XML-Rechnungen; XRechnung ist der De-facto-Standard.
- Manuell XRechnung erstellen ist brutal — UN/CEFACT- oder UBL-2.1-Schemas, 150+ Schematron-Regeln, Leitweg-ID und weitere Pflichtfelder.
- n8n + invoice-api.xhub löst das in 3 Nodes: Google Sheets → API-Call → Datei-Output. Kein XML, kein Code.
- Kostenlos testen — 25 Rechnungen/Monat ohne Kreditkarte.
- Für: Solo-Entwickler, Agenturen und Teams, die Rechnungserstellung in bestehende Produkte integrieren.
Du willst XRechnungen automatisiert erstellen, ohne eine eigene Integration zu programmieren? In diesem Tutorial zeige ich dir Schritt für Schritt, wie du mit n8n und der Invoice-api.xhub API einen Workflow aufbaust, der Rechnungsdaten aus Google Sheets liest und daraus konforme XRechnungen erzeugt.
💡 Vollständige n8n-Dokumentation: Alle Details zur Installation und Konfiguration findest du in unserer n8n Integrations-Dokumentation.
Warum XRechnungen automatisieren?
Seit der E-Rechnungspflicht 2025 müssen B2B-Unternehmen in Deutschland strukturierte elektronische Rechnungen versenden. XRechnung ist dabei der Standard für öffentliche Auftraggeber und wird zunehmend auch im privaten Sektor genutzt.
Die manuelle Erstellung von XRechnungen ist fehleranfällig und zeitaufwändig:
- Komplexe XML-Struktur — XRechnung basiert auf UN/CEFACT CII bzw. UBL 2.1 und erfordert dutzende Pflichtfelder
- Validierungsregeln — Über 150 Schematron-Regeln müssen eingehalten werden
- Länderspezifische Anforderungen — Leitweg-ID, Buyer Reference und weitere deutsche Pflichtfelder
- Wiederkehrende Rechnungen — Monatliche Abrechnungen manuell zu erstellen kostet wertvolle Zeit
Mit n8n und Invoice-api.xhub automatisierst du den gesamten Prozess — von den Rohdaten bis zur fertigen, validierten XRechnung.
Voraussetzungen
Bevor wir starten, benötigst du folgende Dinge:
1. n8n-Instanz
Eine laufende n8n-Installation — entweder self-hosted oder über n8n.cloud. Die Community Edition ist kostenlos und reicht für dieses Tutorial vollkommen aus.
2. Invoice-api.xhub Community Node
Installiere den offiziellen Community Node in deiner n8n-Instanz:
- Gehe zu Settings → Community Nodes
- Klicke auf Install a community node
- Gib
n8n-nodes-invoice-api-xhubein - Bestätige die Installation
Die vollständige Installationsanleitung findest du in der n8n-Dokumentation.
3. API-Key
Du benötigst einen API-Key von Invoice-api.xhub:
- Registriere dich auf invoice-api.xhub.io
- Erstelle unter Settings → API Keys einen neuen Key
- Kopiere den Key — du brauchst ihn gleich in n8n
Kostenlos testen: Der Free-Plan enthält 25 Rechnungen pro Monat. Perfekt zum Ausprobieren.
Schritt 1: Google Sheets vorbereiten
Erstelle eine Google-Tabelle mit den Rechnungsdaten. Die Spalten sollten die folgenden Felder abdecken:
| Spalte | Beispielwert | Beschreibung |
|---|---|---|
invoice_number | INV-2026-0042 | Eindeutige Rechnungsnummer |
issue_date | 2026-04-11 | Ausstellungsdatum (ISO 8601) |
due_date | 2026-05-11 | Fälligkeitsdatum |
buyer_name | Bundesamt für IT | Name des Rechnungsempfängers |
buyer_street | Musterstraße 1 | Straße des Empfängers |
buyer_city | Berlin | Stadt |
buyer_zip | 10115 | Postleitzahl |
buyer_country | DE | Ländercode (ISO 3166-1) |
buyer_vat_id | DE123456789 | USt-IdNr. des Empfängers |
buyer_reference | 04011-12345-67 | Leitweg-ID / Buyer Reference |
item_name | API-Zugang Pro | Positionsbezeichnung |
item_quantity | 1 | Menge |
item_unit_price | 299.00 | Einzelpreis netto |
item_vat_rate | 19 | Mehrwertsteuersatz in % |
Tipp: Für mehrere Rechnungspositionen pro Rechnung kannst du entweder mehrere Zeilen mit derselben
invoice_numberverwenden oder die Positionen als JSON in einer Spalte hinterlegen.

Schritt 2: n8n-Workflow erstellen

Jetzt bauen wir den Workflow in n8n auf. Der Workflow besteht aus drei Nodes:
Node 1: Google Sheets — Daten lesen
- Füge einen Google Sheets-Node hinzu
- Verbinde deinen Google-Account
- Wähle die Tabelle und das Arbeitsblatt aus
- Konfiguriere den Trigger (z.B. manuell oder per Schedule)
Node 2: Invoice-api.xhub — XRechnung erstellen
- Füge den Invoice-api.xhub-Node hinzu
- Hinterlege deinen API-Key in den Credentials
- Wähle die Operation Create Invoice
- Setze das Format auf XRechnung (UBL)
Daten-Mapping
Mappe die Google-Sheets-Felder auf die API-Felder. Hier ist ein Beispiel für das JSON-Mapping:
1{2 "invoice": {3 "invoiceNumber": "{{ $json.invoice_number }}",4 "type": "invoice",5 "issueDate": "{{ $json.issue_date }}",6 "dueDate": "{{ $json.due_date }}",7 "currency": "EUR",8 "seller": {9 "name": "Meine Firma GmbH",10 "street": "Hauptstraße 42",11 "city": "München",12 "postalCode": "80331",13 "countryCode": "DE",14 "vatId": "DE987654321",15 "email": "rechnung@meinefirma.de"16 },17 "buyer": {18 "name": "{{ $json.buyer_name }}",19 "street": "{{ $json.buyer_street }}",20 "city": "{{ $json.buyer_city }}",21 "postalCode": "{{ $json.buyer_zip }}",22 "countryCode": "{{ $json.buyer_country }}",23 "vatId": "{{ $json.buyer_vat_id }}"24 },25 "countrySpecific": {26 "countryCode": "DE",27 "leitwegId": "{{ $json.leitweg_id }}",28 "buyerReference": "{{ $json.buyer_reference }}"29 },30 "items": [31 {32 "position": 1,33 "description": "{{ $json.item_name }}",34 "quantity": "{{ $json.item_quantity }}",35 "unit": "C62",36 "unitPrice": "{{ $json.item_unit_price }}",37 "taxRate": "{{ $json.item_vat_rate }}"38 }39 ]40 }41}Hinweis: Das Snippet zeigt das Mapping der Kern-Felder; für eine vollständige API-Payload sind zusätzlich die Pflichtfelder
subtotal,total,taxSummaryundpaymentTerms.dueDayszu ergänzen (z. B. via Summen-Node in n8n). Das Zielformat (z. B.xrechnung) ergibt sich aus dem URL-Pfad/api/v1/invoice/de/xrechnung/generateund wird nicht im Body gesetzt. Für B2G-Rechnungen an öffentliche Auftraggeber ist die Leitweg-ID untercountrySpecific.leitwegIdPflicht —countrySpecific.buyerReferenceist die optionale Bestellreferenz des Käufers, nicht die Leitweg-ID. Mehr dazu in der n8n-Dokumentation.
Node 3: Ergebnis verarbeiten
Die API gibt die fertige XRechnung als XML zurück. Du kannst sie:
- In Google Drive speichern
- Per E-Mail versenden
- An ein ERP-System weiterleiten
- In einer Datenbank archivieren
Schritt 3: Workflow testen
Bevor du den Workflow produktiv einsetzt, teste ihn gründlich:
- Klicke auf "Test Workflow" in n8n
- Prüfe die API-Antwort — der Status sollte
200sein - Kontrolliere die XML-Ausgabe — öffne das XML und prüfe die Felder
- Validiere die XRechnung — nutze den Validation-Endpoint der API, um sicherzustellen, dass die Rechnung konform ist
Test-Checkliste
- Rechnungsnummer wird korrekt übernommen
- Buyer Reference / Leitweg-ID ist vorhanden
- USt-IdNr. hat das korrekte Format (DE + 9 Ziffern)
- Beträge und MwSt. werden korrekt berechnet
- Datum ist im ISO-8601-Format
💡 Tipp: Nutze den Free-Plan zum Testen. Die ersten 25 Rechnungen pro Monat sind kostenlos — perfekt für die Entwicklungsphase.
Schritt 4: XRechnung speichern und versenden
Wenn der Test erfolgreich war, ergänze den Workflow um die Speicherung:
Option A: Google Drive
Füge einen Google Drive-Node hinzu und speichere die XML-Datei direkt in einem Ordner. Benenne die Datei nach der Rechnungsnummer, z.B. INV-2026-0042.xml.
Option B: E-Mail-Versand
Nutze den Send Email-Node, um die XRechnung als Anhang zu versenden. Achte darauf, den korrekten MIME-Type (application/xml) zu setzen.
Option C: Peppol-Versand
Für den Versand über das Peppol-Netzwerk kannst du den Invoice-api.xhub Peppol-Endpoint nutzen. Details dazu findest du in der Peppol-Dokumentation.
Häufige Fehler und Lösungen
Bei der Erstellung von XRechnungen treten regelmäßig bestimmte Fehler auf. Hier die häufigsten und wie du sie behebst:
| Fehlercode | Beschreibung | Lösung |
|---|---|---|
| Leitweg-ID fehlt | Leitweg-ID fehlt oder ist ungültig | Stelle sicher, dass countrySpecific.leitwegId gesetzt ist. Die Leitweg-ID besteht aus Grobadressierung, Feinadressierung und Prüfziffer und ist für öffentliche Auftraggeber Pflicht. |
INVALID_VAT_ID | USt-IdNr. hat ein ungültiges Format | Prüfe das Format: Deutschland = DE + 9 Ziffern (z.B. DE123456789). Keine Leerzeichen oder Sonderzeichen. |
MISSING_FIELD | Ein Pflichtfeld fehlt in der Rechnung | Prüfe die API-Antwort — das fehlende Feld wird im details-Objekt angegeben. Häufig fehlen: invoiceNumber, issueDate, seller.vatId oder buyer.name. |
INVALID_DATE | Datumsformat ist ungültig | Verwende ISO 8601: YYYY-MM-DD (z.B. 2026-04-11). Keine deutschen Datumsformate wie 11.04.2026. |
CALC_ERROR | Beträge stimmen nicht überein | Die Summe der Positionen muss mit dem Gesamtbetrag übereinstimmen. Rundungsdifferenzen vermeiden — nutze 2 Dezimalstellen. |
Ausführliche Fehlerdokumentation: Alle Fehlercodes und deren Lösungen findest du in der API-Dokumentation.
Workflow-Template herunterladen
Damit du nicht bei null anfangen musst, haben wir ein fertiges n8n-Workflow-Template vorbereitet:
n8n XRechnung-Template herunterladen →
Das Template enthält:
- Google Sheets Trigger-Node (vorkonfiguriert)
- Invoice-api.xhub Node mit vollständigem Daten-Mapping
- Error-Handling mit automatischer Benachrichtigung
- Google Drive Node zum Speichern der XML-Dateien
Importiere die JSON-Datei einfach über Workflows → Import from File in n8n.
Nächste Schritte
Du hast jetzt einen funktionierenden XRechnung-Workflow. Hier sind einige Ideen, wie du ihn erweitern kannst:
ZUGFeRD-Rechnungen erstellen
Neben XRechnung unterstützt Invoice-api.xhub auch ZUGFeRD — das hybride Format, das ein menschenlesbares PDF mit eingebettetem XML kombiniert. Ändere dazu einfach den format-Parameter auf zugferd-extended oder zugferd-comfort.
Automatische Validierung
Ergänze deinen Workflow um einen Validierungs-Schritt. Nutze den /validate-Endpoint der API, um jede Rechnung vor dem Versand zu prüfen. Unser Validierungs-Tutorial zeigt dir, wie du das mit n8n umsetzt.
Weitere Länder
Invoice-api.xhub unterstützt E-Rechnungsformate für mehrere europäische Länder. Wenn du international fakturierst, kannst du denselben Workflow für verschiedene Formate nutzen — einfach den format-Parameter anpassen.
Scheduled Workflows
Richte einen Schedule Trigger ein, der den Workflow automatisch ausführt — z.B. jeden Monatsanfang für wiederkehrende Rechnungen.
Fazit
Mit n8n und Invoice-api.xhub erstellst du XRechnungen vollautomatisch — ohne Programmierung, ohne XML-Kenntnisse und ohne manuellen Aufwand. Der Workflow lässt sich beliebig erweitern und an deine Bedürfnisse anpassen.
Die Kombination aus n8n als Workflow-Engine und Invoice-api.xhub als E-Rechnungs-API gibt dir maximale Flexibilität bei minimalem Aufwand.
Was war deine schwierigste Rechnungs-Automatisierung? Ich bin neugierig, wie andere mit Leitweg-IDs und Schematron-Regeln in der Praxis umgehen.
Bereit loszulegen? Schau dir die vollständige n8n-Dokumentation an oder erstelle direkt deinen kostenlosen API-Key.

