Tutorialn8nValidierung

E-Rechnungen automatisch validieren und archivieren mit n8n

Vollautomatischer n8n-Workflow: E-Rechnungen per E-Mail empfangen, Format erkennen, validieren, GoBD-konform archivieren — mit Slack-Alerts.

E-Rechnungen automatisch validieren und archivieren mit n8n
Patrick Jerominek

Patrick Jerominek

Cofounder xhub.io

11. Mai 2026
15 min Lesezeit

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:

  1. Mitarbeiter öffnet E-Mail mit Rechnungsanhang
  2. Datei herunterladen und manuell das Format identifizieren
  3. In einem Validierungstool hochladen und Ergebnis prüfen
  4. Bei Fehlern den Lieferanten kontaktieren
  5. 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:

text
1E-Mail (IMAP) Parse Auto-Detect Validate IF-Verzweigung
2 Erfolg Google Drive Upload
3 Fehler Slack Alert

Was 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

Validierungs-Pipeline: Email → Parse → Validate → Archive


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:

EinstellungWert
MailboxINBOX
FormatRAW
Options → Attachmentsaktiviert
Poll Interval5 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 Rechnungen verschiebt. 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:

text
1Method: POST
2URL: https://service.invoice-api.xhub.io/api/v1/invoice/parse
3Authentication: Header Auth
4 Header Name: x-api-key
5 Header Value: {{ $credentials.invoiceApiKey }}
6Body Type: Binary
7Content Type: auto
8Send Binary Data: aktiviert

Die 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:

json
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:

FeldBedeutung
formatErkanntes Format (XRechnung, ZUGFeRD, Factur-X, UBL, CII)
countryCodeLändercode des Formats (DE, FR, IT, etc.)
confidenceErkennungssicherheit (0–100)
formatMethodErkennungsmethode (schemaAnalysis, namespaceDetection, profileId)

Auto-Detect Ergebnis mit Confidence Score

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:

text
1Method: POST
2URL: https://service.invoice-api.xhub.io/api/v1/invoice/de/validate
3Authentication: Header Auth
4 Header Name: x-api-key
5 Header Value: {{ $credentials.invoiceApiKey }}
6Body Type: Binary
7Send Binary Data: aktiviert

Die 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:

json
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:

text
1{{ $json.valid }} equals true

Erfolg: Google Drive Upload

Wenn die Rechnung valide ist, wird sie automatisch in Google Drive archiviert.

Füge einen Google Drive Node hinzu:

EinstellungWert
OperationUpload File
Folder/E-Rechnungen/{{ $now.format('yyyy/MM') }}
File Name{{ $json.invoice.invoiceNumber }}_{{ $json.invoice.seller.name }}.xml
Binary Dataaktiviert

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:

EinstellungWert
OperationSend Message
Channel#rechnungseingang

Nachricht:

text
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.

Slack-Benachrichtigung bei Validierungsfehlern


Häufige Validierungsfehler

Diese Fehler tauchen in der Praxis am häufigsten auf:

FehlercodeRegelBeschreibungHäufige Ursache
BR-DE-01Leitweg-ID PflichtEine Rechnung muss eine Leitweg-ID (BT-10) enthaltenFehlt bei Rechnungen an öffentliche Auftraggeber
BR-DE-15ZahlungsbedingungenDas Element Zahlungsbedingungen (BT-20) sollte vorhanden seinZahlungsziel nicht angegeben
BR-CO-10SummenberechnungDie Summe der Rechnungspositionen muss dem Gesamtbetrag entsprechenRundungsfehler bei Nettosumme
BR-S-08USt-KategorieJede Rechnungsposition mit Standard-USt muss einen Steuersatz enthaltenSteuersatz 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?

  1. Kostenlosen API-Key holen
  2. n8n Integrations-Dokumentation lesen
  3. Workflow-Template importieren
Artikel teilen
Patrick Jerominek

Geschrieben von

Patrick Jerominek

Cofounder xhub.io

Baut APIs, die Entwickler lieben. Schreibt über E-Invoicing, TypeScript und alles dazwischen.

Ähnliche Artikel

Bereit, E-Rechnungen zu meistern?

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