Du bekommst täglich E-Rechnungen per E-Mail – als XML-Anhang, als ZUGFeRD-PDF oder im Peppol-Format. Jede einzelne muss geprüft, klassifiziert und revisionssicher abgelegt werden. Manuell ist das nicht nur aufwendig, sondern auch fehleranfällig.
In diesem Tutorial bauen wir einen kompletten n8n-Workflow, der eingehende E-Rechnungen automatisch erkennt, validiert und archiviert – und bei Fehlern sofort per Slack Alarm schlägt.
Du suchst die n8n-Grundlagen? Schau dir unsere vollständige n8n Dokumentation an – mit Installationsanleitung, Code-Beispielen und fertigen Workflow-Templates.
Das Problem: Manuelle Rechnungsprüfung skaliert nicht
In vielen Unternehmen sieht der Prozess heute so aus:
- Mitarbeiter öffnet E-Mail mit Rechnungsanhang
- Datei herunterladen und manuell das Format identifizieren
- In einem Validierungstool hochladen und Ergebnis prüfen
- Bei Fehlern den Lieferanten kontaktieren
- Gültige Rechnungen in den richtigen Ordner ablegen
Bei 5 Rechnungen am Tag geht das noch. Bei 50 oder 500 wird es zum Engpass – und jeder übersehene Fehler kann bei einer GoBD-Prüfung zum Problem werden.
Workflow-Übersicht
Unser automatisierter Workflow besteht aus 6 Schritten:
1E-Mail (IMAP) → Parse Auto-Detect → Validate → IF-Verzweigung2 ├─ Erfolg → Google Drive Upload3 └─ Fehler → Slack AlertWas der Workflow leistet:
- Automatische Formaterkennung – XRechnung, ZUGFeRD, Factur-X, UBL oder CII wird automatisch erkannt
- Schema- und Business-Rule-Validierung – Prüfung gegen offizielle Schematron-Regeln
- Archivierung – Gültige Rechnungen landen automatisch in Google Drive
- Fehler-Eskalation – Ungültige Rechnungen erzeugen einen Slack-Alert mit konkreten Fehlercodes

Schritt 1: IMAP Trigger – E-Mails mit Rechnungen empfangen
Erstelle einen neuen Workflow in n8n und füge als ersten Node einen IMAP Email Trigger hinzu.
Konfiguration:
| Einstellung | Wert |
|---|---|
| Mailbox | INBOX |
| Format | RAW |
| Options → Attachments | aktiviert |
| Poll Interval | 5 Minuten |
Der Node überwacht dein Postfach und triggert den Workflow, sobald eine neue E-Mail mit Anhang eintrifft. Die Anhänge werden als Binary-Daten weitergegeben.
Tipp: Erstelle eine Filterregel in deinem E-Mail-Postfach, die Rechnungen automatisch in einen Unterordner wie
Rechnungenverschiebt. Dann kannst du den IMAP-Trigger gezielt auf diesen Ordner richten.
Schritt 2: Parse mit Auto-Detect – Format automatisch erkennen
Füge einen HTTP Request Node hinzu, der die Rechnung an die Invoice-api.xhub Parse-API sendet – mit automatischer Formaterkennung.
HTTP Request Konfiguration:
1Method: POST2URL: https://service.invoice-api.xhub.io/api/v1/invoice/parse3Authentication: Header Auth4 Header Name: x-api-key5 Header Value: {{ $credentials.invoiceApiKey }}6Body Type: Binary7Content Type: auto8Send Binary Data: aktiviertDie API erkennt automatisch, ob es sich um eine XRechnung (UBL/CII), ZUGFeRD, Factur-X oder ein anderes Format handelt. Die Antwort enthält ein Detection-Objekt:
1{2 "detection": {3 "format": "XRechnung",4 "formatVersion": "3.0.2",5 "syntax": "CII",6 "countryCode": "DE",7 "confidence": 98,8 "formatMethod": "schemaAnalysis"9 },10 "invoice": {11 "invoiceNumber": "RE-2026-001",12 "issueDate": "2026-05-01",13 "seller": {14 "name": "Muster Lieferant GmbH",15 "vatId": "DE123456789"16 },17 "buyer": {18 "name": "Dein Unternehmen GmbH"19 },20 "countrySpecific": {21 "countryCode": "DE",22 "leitwegId": "991-12345-67"23 },24 "total": 1190.00,25 "currency": "EUR"26 }27}Wichtige Felder im Detection-Objekt:
| Feld | Bedeutung |
|---|---|
format | Erkanntes Format (XRechnung, ZUGFeRD, Factur-X, UBL, CII) |
countryCode | Ländercode des Formats (DE, FR, IT, etc.) |
confidence | Erkennungssicherheit (0–100) |
formatMethod | Erkennungsmethode (schemaAnalysis, namespaceDetection, profileId) |

Mehr zur API: Die vollständige Referenz findest du in der n8n Integrations-Dokumentation.
Schritt 3: Validate – Rechnung gegen offizielle Regeln prüfen
Füge einen weiteren HTTP Request Node hinzu, der die erkannte Rechnung validiert:
1Method: POST2URL: https://service.invoice-api.xhub.io/api/v1/invoice/de/validate3Authentication: Header Auth4 Header Name: x-api-key5 Header Value: {{ $credentials.invoiceApiKey }}6Body Type: Binary7Send Binary Data: aktiviertDie Validate-API prüft die Rechnung gegen:
- Schema-Validierung – Entspricht die XML-Struktur dem Standard?
- Schematron Business Rules – Sind alle Pflichtfelder vorhanden? Stimmen die Berechnungen?
- Länderspezifische Regeln – DE: XRechnung-Konformität, Leitweg-ID, etc.
Die Antwort enthält den Validierungsstatus:
1{2 "valid": false,3 "errors": [4 {5 "code": "BR-DE-01",6 "severity": "error",7 "message": "Eine Rechnung (BG-0) muss eine Leitweg-ID (BT-10) enthalten.",8 "location": "/Invoice/cac:AccountingCustomerParty"9 }10 ],11 "warnings": [12 {13 "code": "BR-DE-15",14 "severity": "warning",15 "message": "Das Element 'Zahlungsbedingungen' (BT-20) sollte angegeben werden."16 }17 ]18}Schritt 4: IF-Verzweigung – Erfolg oder Fehler
Füge einen IF Node hinzu, um den Workflow basierend auf dem Validierungsergebnis zu verzweigen:
Bedingung:
1{{ $json.valid }} equals trueErfolg: Google Drive Upload
Wenn die Rechnung valide ist, wird sie automatisch in Google Drive archiviert.
Füge einen Google Drive Node hinzu:
| Einstellung | Wert |
|---|---|
| Operation | Upload File |
| Folder | /E-Rechnungen/{{ $now.format('yyyy/MM') }} |
| File Name | {{ $json.invoice.invoiceNumber }}_{{ $json.invoice.seller.name }}.xml |
| Binary Data | aktiviert |
Die Rechnungen werden automatisch in Monatsordner sortiert – perfekt für die GoBD-konforme Archivierung.
Fehler: Slack Alert
Wenn die Validierung fehlschlägt, wird ein Slack-Alert gesendet.
Füge einen Slack Node hinzu:
| Einstellung | Wert |
|---|---|
| Operation | Send Message |
| Channel | #rechnungseingang |
Nachricht:
1:warning: Ungültige E-Rechnung erkannt!2 3Rechnung: {{ $json.invoice.invoiceNumber }}4Lieferant: {{ $json.invoice.seller.name }}5Format: {{ $json.detection.format }}6 7Fehler:8{{ $json.errors.map(e => `• [${e.code}] ${e.message}`).join('\n') }}9 10Bitte manuell prüfen.So wird das zuständige Team sofort informiert – mit allen relevanten Details und konkreten Fehlercodes.

Häufige Validierungsfehler
Diese Fehler tauchen in der Praxis am häufigsten auf:
| Fehlercode | Regel | Beschreibung | Häufige Ursache |
|---|---|---|---|
| BR-DE-01 | Leitweg-ID Pflicht | Eine Rechnung muss eine Leitweg-ID (BT-10) enthalten | Fehlt bei Rechnungen an öffentliche Auftraggeber |
| BR-DE-15 | Zahlungsbedingungen | Das Element Zahlungsbedingungen (BT-20) sollte vorhanden sein | Zahlungsziel nicht angegeben |
| BR-CO-10 | Summenberechnung | Die Summe der Rechnungspositionen muss dem Gesamtbetrag entsprechen | Rundungsfehler bei Nettosumme |
| BR-S-08 | USt-Kategorie | Jede Rechnungsposition mit Standard-USt muss einen Steuersatz enthalten | Steuersatz fehlt bei Einzelpositionen |
Tipp: Nutze den Fehlercode als Suchbegriff in der n8n Integrations-Doku, um konkrete Lösungsvorschläge zu finden.
Workflow-Template herunterladen
Den kompletten Workflow kannst du als JSON-Template herunterladen und direkt in n8n importieren:
Workflow-Template herunterladen
Der Import funktioniert über Settings → Import Workflow in deiner n8n-Instanz. Du musst nur noch deine API-Credentials und Slack/Google-Drive-Zugänge hinterlegen.
Erweiterungsideen
Der Basis-Workflow lässt sich beliebig erweitern:
DATEV-Export
Füge nach der erfolgreichen Validierung einen weiteren HTTP Request Node hinzu, der die Rechnung über die Invoice-api.xhub API ins DATEV-Format konvertiert. So landen validierte Rechnungen automatisch in deiner Buchhaltung.
Duplikat-Erkennung
Speichere Rechnungsnummern und Lieferanten-IDs in einer Datenbank (z.B. Airtable oder PostgreSQL). Vor der Archivierung prüfst du per IF Node, ob eine Rechnung mit dieser Nummer bereits existiert – und verhinderst so doppelte Buchungen.
PDF-Vorschau generieren
Nutze die Generate-API von Invoice-api.xhub, um aus der validierten XML-Rechnung automatisch eine PDF-Vorschau zu erzeugen. Diese kann zusammen mit der XML-Datei archiviert werden – praktisch für Mitarbeiter, die kein XML lesen können.
Confidence-basierte Weiterleitung
Nutze das confidence-Feld aus der Auto-Detection: Bei einem Wert unter 90 wird die Rechnung zur manuellen Prüfung weitergeleitet, statt automatisch verarbeitet zu werden.
Fazit
Mit n8n und Invoice-api.xhub kannst du den gesamten Eingangsrechnungs-Prozess automatisieren – von der E-Mail bis zum Archiv. Der Workflow:
- Erkennt das Rechnungsformat automatisch
- Validiert gegen offizielle Standards und Business Rules
- Archiviert gültige Rechnungen GoBD-konform
- Eskaliert Fehler sofort an das zuständige Team
Das Beste: Du brauchst dafür keine einzige Zeile Code. Die gesamte Logik wird visuell in n8n zusammengeklickt.
Bereit loszulegen?

