Drei n8n-Nodes, ein compliancefähiges Archiv
Das Schwierigste an Compliance-Automatisierung sind selten die Regeln. Es ist die Klempnerei, die die Regeln mit den Systemen verbindet, die Ihr Unternehmen bereits betreibt. Die Regeln verlangen, dass jede B2B-Rechnung in einem strukturierten elektronischen Format vorliegt, zehn Jahre archiviert wird und auf eine manipulationssichere Chain of Custody zurückführbar ist. Ihre Buchhaltungssoftware sagt “Sie haben einen neuen Anhang im gemeinsamen Postfach”. Diese beiden Welten zu verbinden, ist die Stelle, an der die meisten Teams steckenbleiben.
Dieser Beitrag führt durch den kleinsten Workflow, der diese Lücke tatsächlich schließt, gebaut mit n8n und dem n8n-nodes-sealdoc Community Node. Drei verbundene Nodes. Ungefähr 200 Zeilen JSON, wenn Sie den Workflow exportieren. Kein eigener Code.
Was wir bauen
Einen Workflow, der bei jedem eingehenden PDF Folgendes tut:
- Holt die Datei über einen Trigger Ihrer Wahl ab (Postfach, Watch Folder, Slack-Upload, ein externer Webhook, alles, was n8n abhören kann).
- Übergibt sie an SealDoc, das sie in PDF/A-3 konvertiert, die Factur-X XML neben der gerenderten Rechnung einbettet, einen RFC 3161-Zeitstempel anhängt und das Ganze in ein herunterladbares Archiv bündelt.
- Speichert das Ergebnis dort, wo es Ihre Aufbewahrungsrichtlinie vorschreibt.
Was Sie nicht selbst bauen müssen: die PDF/A-3-Konvertierung, die Extraktion der Factur-X XML, die Zeitstempelung, das Audit Trail, den Manifest-Hash des Evidence Packs, die Retry-Logik für die Zeitstempelautorität. SealDocs API erledigt das hinter einem einzigen HTTP-Endpunkt.
Voraussetzungen
- Eine n8n-Instanz, entweder self-hosted oder n8n Cloud. Der Community Node funktioniert auf beiden.
- Ein SealDoc-Konto mit mindestens dem Starter-Plan (die Moat-Features, auf die dieser Workflow angewiesen ist, Custody, Zeitstempel und Evidence Packs, sind ab Starter dabei).
- Ein SealDoc API-Schlüssel. Erzeugen Sie einen im Dashboard unter API keys, kopieren Sie das Secret einmalig (wir zeigen es nie wieder an).
Installieren Sie den Community Node:
npm i n8n-nodes-sealdoc
Starten Sie n8n neu. Der SealDoc-Node erscheint jetzt unter Nodes mit drei Ressourcen: Job, Validator und Peppol.
Node 1, der Trigger
Wählen Sie den Trigger, der zu dem Ort passt, an dem Ihre Rechnungen heute landen. Wir verwenden für dieses Walkthrough den Gmail Trigger, weil es die häufigste Form ist, die wir sehen, aber das Muster ist identisch für IMAP, OneDrive, SharePoint, eine n8n-Webhook-URL oder einen überwachten Ordner.
Konfigurieren Sie den Gmail Trigger so, dass er bei neuen Nachrichten mit PDF-Anhang in einem bestimmten Label feuert, z. B. incoming-invoices. Die Ausgabe dieses Nodes ist das binäre PDF in attachments[0].data.
Node 2, SealDoc Job · Create
Ziehen Sie einen SealDoc-Node auf das Canvas, setzen Sie Resource auf Job und Operation auf Create. Konfigurieren Sie:
- File: an
{{ $binary.attachments_0 }}binden (das PDF aus Node 1). - Embed Factur-X: AN. SealDoc erkennt die Rechnungsfelder automatisch und erzeugt die strukturierte XML; enthält das Quell-PDF bereits einen XML-Anhang, respektiert SealDoc diesen und validiert, statt zu überschreiben.
- Timestamp: AN. Das Ausgabe-PDF/A-3 trägt einen RFC 3161-Zeitstempel einer von uns betriebenen TSA, später als Nachweis abrufbar, wann das Dokument existierte.
- Retention category: wählen Sie die Kategorie, die Ihr Steuerrecht vorschreibt (die deutsche GoBD-Kategorie ist im Dropdown).
Der Node liefert sofort eine jobId und einen status von pending zurück. Warten Sie hier nicht synchron. Eine Factur-X-Konvertierung samt Zeitstempel ist für eine normale Rechnung in der Regel in unter fünf Sekunden erledigt, aber PDF-Verarbeitung ist nicht deterministisch, und Sie wollen nicht, dass ein langsames Steuererklärungs-PDF Ihre gesamte Queue blockiert.
Node 3, SealDoc Job · Get
Fügen Sie einen weiteren SealDoc-Node hinzu. Setzen Sie Resource auf Job und Operation auf Get. Binden Sie Job ID an {{ $node["SealDoc Create"].json.jobId }}. Wickeln Sie den Node in n8ns Wait-Primitive mit 2 Sekunden Verzögerung und maximal 10 Iterationen ein, mit Polling, bis status completed oder failed ist.
Bei completed enthält die Antwort eine downloadUrl, fünf Minuten gültig. Die URL zeigt auf das konvertierte PDF/A-3, das jetzt Factur-X-konform, zeitgestempelt und in unserer Chain of Custody registriert ist.
Sie erhalten zusätzlich eine evidencePackUrl, wenn Ihr Plan Evidence Packs umfasst. Dieses ZIP enthält das Original-PDF, das konvertierte PDF/A-3, die Factur-X XML, das RFC 3161-Token, die Manifest-Hash-Datei und eine JSON-Quittung, die jeden Schritt aufzählt. Auditoren lieben es, weil es in sich geschlossen und offline verifizierbar ist; Sie können einem Steuerprüfer eine Kopie überreichen, und er kann die Integrität ohne Anruf an unsere Server prüfen.
Was ist mit Fehlern
SealDoc gibt strukturierte Fehlerursachen im Feld failureReason zurück. Die vier, die Sie in der Praxis sehen werden:
validation_failed, das Quell-PDF ist fehlerhaft oder passwortgeschützt. An das Team weiterleiten, das es hochgeladen hat.unsupported_source, z. B. ein tatsächlich verschlüsseltes PDF, das wir nicht öffnen können. An den Absender zurückschicken.timestamp_unavailable, unsere TSA hatte einen Ausfall. Wir wiederholen automatisch; ist das Retry-Budget erschöpft, endet der Job mitfailedund Sie können ihn neu starten.quota_exceeded, das monatliche Job-Kontingent Ihres Plans ist erreicht. Entweder upgraden oder auf den Reset warten.
Routen Sie in n8n den failed-Zweig des Get-Nodes in eine Slack- oder E-Mail-Benachrichtigung, damit ein Mensch erfährt, wenn etwas wirklich feststeckt.
Warum drei Nodes ausreichen
Sie merken, dass dieser Workflow selbst keine Validierungs-, Signatur- oder Archivierungslogik enthält. Genau das ist der Punkt. SealDocs API ist die Grenze; Ihr n8n-Workflow ist das Bindegewebe zwischen dieser Grenze und Ihren Geschäftssystemen. Wenn das belgische B2B-Mandat live geht, müssen Sie diesen Workflow nicht neu bauen. Wenn Frankreichs Verpflichtung im September 2026 greift, müssen Sie ihn nicht neu bauen. Wenn der Regulator das Factur-X-Profil 2027 aktualisiert, aktualisieren Sie die Version des SealDoc-Nodes.
Das ist der Wert des Connector-Musters: Regulatorische Veränderungen leben in unserer Codebase, nicht in Ihrer.
Jenseits von n8n
Wenn Sie kein n8n verwenden, ist jede Operation aus diesem Tutorial auch direkt über die SealDoc REST API verfügbar oder via Webhooks, wenn Sie Push-Benachrichtigungen statt Polling bevorzugen. Das vollständige Menü finden Sie auf unserer Integrationsseite, mit kopierbaren Beispielen für jede Oberfläche. Make-, Zapier- und Exact Online-Konnektoren sind in aktiver Entwicklung; nutzt Ihr Stack einen davon, melden Sie sich für Early Access.
Die Compliance-Klempnerei ist gelöst. Was Sie mit der gewonnenen Zeit anfangen, bleibt Ihnen überlassen.