Tutorialn8nXRechnung

XRechnung erstellen mit n8n — Schritt-für-Schritt Tutorial

Mit n8n und Invoice-api.xhub automatisiert XRechnungen erzeugen: Google Sheets → XML-Datei, komplett ohne Programmierung.

Patrick Jerominek

Patrick Jerominek

Cofounder xhub.io

11. April 202612 min Lesezeit
XRechnung erstellen mit n8n — Schritt-für-Schritt Tutorial

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:

  1. Gehe zu Settings → Community Nodes
  2. Klicke auf Install a community node
  3. Gib n8n-nodes-invoice-api-xhub ein
  4. 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:

  1. Registriere dich auf invoice-api.xhub.io
  2. Erstelle unter Settings → API Keys einen neuen Key
  3. 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:

SpalteBeispielwertBeschreibung
invoice_numberINV-2026-0042Eindeutige Rechnungsnummer
issue_date2026-04-11Ausstellungsdatum (ISO 8601)
due_date2026-05-11Fälligkeitsdatum
buyer_nameBundesamt für ITName des Rechnungsempfängers
buyer_streetMusterstraße 1Straße des Empfängers
buyer_cityBerlinStadt
buyer_zip10115Postleitzahl
buyer_countryDELändercode (ISO 3166-1)
buyer_vat_idDE123456789USt-IdNr. des Empfängers
buyer_reference04011-12345-67Leitweg-ID / Buyer Reference
item_nameAPI-Zugang ProPositionsbezeichnung
item_quantity1Menge
item_unit_price299.00Einzelpreis netto
item_vat_rate19Mehrwertsteuersatz in %

Tipp: Für mehrere Rechnungspositionen pro Rechnung kannst du entweder mehrere Zeilen mit derselben invoice_number verwenden oder die Positionen als JSON in einer Spalte hinterlegen.

Google Sheets mit Rechnungsdaten


Schritt 2: n8n-Workflow erstellen

n8n Workflow: Sheets → Invoice-api.xhub → XRechnung

Jetzt bauen wir den Workflow in n8n auf. Der Workflow besteht aus drei Nodes:

Node 1: Google Sheets — Daten lesen

  1. Füge einen Google Sheets-Node hinzu
  2. Verbinde deinen Google-Account
  3. Wähle die Tabelle und das Arbeitsblatt aus
  4. Konfiguriere den Trigger (z.B. manuell oder per Schedule)

Node 2: Invoice-api.xhub — XRechnung erstellen

  1. Füge den Invoice-api.xhub-Node hinzu
  2. Hinterlege deinen API-Key in den Credentials
  3. Wähle die Operation Create Invoice
  4. 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:

json
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, taxSummary und paymentTerms.dueDays zu 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/generate und wird nicht im Body gesetzt. Für B2G-Rechnungen an öffentliche Auftraggeber ist die Leitweg-ID unter countrySpecific.leitwegId Pflicht — countrySpecific.buyerReference ist 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:

  1. Klicke auf "Test Workflow" in n8n
  2. Prüfe die API-Antwort — der Status sollte 200 sein
  3. Kontrolliere die XML-Ausgabe — öffne das XML und prüfe die Felder
  4. 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:

FehlercodeBeschreibungLösung
Leitweg-ID fehltLeitweg-ID fehlt oder ist ungültigStelle 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_IDUSt-IdNr. hat ein ungültiges FormatPrüfe das Format: Deutschland = DE + 9 Ziffern (z.B. DE123456789). Keine Leerzeichen oder Sonderzeichen.
MISSING_FIELDEin Pflichtfeld fehlt in der RechnungPrüfe die API-Antwort — das fehlende Feld wird im details-Objekt angegeben. Häufig fehlen: invoiceNumber, issueDate, seller.vatId oder buyer.name.
INVALID_DATEDatumsformat ist ungültigVerwende ISO 8601: YYYY-MM-DD (z.B. 2026-04-11). Keine deutschen Datumsformate wie 11.04.2026.
CALC_ERRORBeträge stimmen nicht übereinDie 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.

Artikel teilen

Ähnliche Artikel

Bereit, E-Rechnungen zu meistern?

Starte in unter 5 Minuten mit Invoice-api.xhub. Keine Kreditkarte erforderlich.