Zum Inhalt springen

RatgeberKI einrichten

n8n und Buchhaltung: Rechnungen an bimetrics übertragen

Übertrage eine vorhandene PDF aus n8n und frag den Status ab.

Das Wichtigste

  • Die Vorlage überträgt eine vorhandene PDF per API und fragt den Status ab.
  • Du brauchst einen API-Schlüssel mit der Vorlage „Belege einreichen“.
  • Angenommen heißt nicht verarbeitet: Entscheidend ist der Status am Beleg.
Auf dieser Seitebimetrics Redaktion ·

Was die Vorlage Schritt für Schritt tut

Eine Spur führt von deiner ID bis zum Status am Beleg.

JSONbimetrics-rechnung-uebertragen.json15,8 KB
  • NODEManuell starten
  • JSUpload konfigurierenKonfiguration
  • NODEVorhandene PDF lesenPDF lesen
  • JSDatei prüfen
  • HTTPPDF hochladenUpload
  • JSUploadantwort prüfenAntwort
  • HTTPVerarbeitungsstatus lesenStatus lesen
  • JSStatus einordnenEinordnen
  • NODEWeitere Abfrage nötig?
  • NODE20 Sekunden warten
  • JSErgebnis
Upload konfigurierenAuszug
const input = {filePath: '',fileName: '',sourceDocumentId: '',};…return [{json: {baseUrl: 'https://app.bimetrics.de',…uploadRequestId: sourceDocumentId,maxStatusRequests: 6,pollIntervalSeconds: 20,}}];
Vorhandene PDF lesenAuszug
{"operation": "read","fileSelector": "={{ $json.filePath }}","options": {"dataPropertyName": "data","fileName": "={{ $json.fileName }}","mimeType": "application/pdf"}}
PDF hochladenAuszug
{"method": "POST",…"genericAuthType": "httpHeaderAuth",…"name": "X-Upload-Request-Id","value": "={{ $('Upload konfigurieren').first().json.uploadRequestId }}"…"contentType": "multipart-form-data",…"name": "receipt[]","inputDataFieldName": "data"…}
Uploadantwort prüfenAuszug
const document = response.body[0];return [{json: {documentId: document.id,uploadStatus: document.uploadDocument?.ocrStatus ?? null,duplicate: document.duplicate === true,…
Verarbeitungsstatus lesenAuszug
{"method": "GET",…"genericAuthType": "httpHeaderAuth",…}
Status einordnenAuszug
const statusValue = response.body.uploadDocument?.ocrStatus;if (!['pending', 'processing', 'success', 'failed', 'quota_paused'].includes(statusValue)) {…const outcome = statusValue === 'success' ? 'processed': statusValue === 'failed' ? 'processing_failed': statusValue === 'quota_paused' ? 'quota_paused': shouldPoll ? 'pending' : 'poll_limit_reached';
  1. sourceDocumentIddeine feste ID aus dem Quellsystem
  2. X-Upload-Request-Idgeht als Upload-ID mit der PDF
  3. documentIddie Antwort bringt die Beleg-ID
  4. ocrStatusder Status am Beleg

Die Vorlage selbst, 11 Schritte. Wähle einen Schritt, die markierte Zeile gehört zur Spur.

Den Ablauf einrichten

Das brauchst du

  • n8n und eine PDF, die es lesen kann
  • Die Rolle Inhaber für den Schlüssel
  • Das geht auch in der Testphase, mit Tagesgrenzen.
  1. Vorlage importieren

    Importiere die Datei und trag Pfad, Dateiname und Quell-ID ein.

  2. Schlüssel erstellen

    Wähl unter Einstellungen › API die Vorlage „Belege einreichen“.

  3. Testlauf starten

    Leg den Schlüssel als Header Auth an und starte mit einer Testdatei.

So prüfst du es Geklappt, wenn der Beleg unter Dokumente steht, mit seiner Originaldatei.

Felder der Vorlage

Im Node „Upload konfigurieren“ trägst du bei filePath den absoluten Pfad zur PDF ein, bei fileName ihren Dateinamen und bei sourceDocumentId eine feste ID aus deinem Quellsystem, etwa eingangsrechnung-2026-0042. Die ID darf 1 bis 128 druckbare ASCII-Zeichen ohne Leerzeichen enthalten. Für jede neue Datei eine neue ID, für jede Wiederholung dieselbe.

Das Header-Auth-Credential bekommt den Namen Authorization und den Wert Bearer, gefolgt von deinem Schlüssel. Wähle es in „PDF hochladen“ und „Verarbeitungsstatus lesen“. So bleibt der Schlüssel außerhalb der exportierten Workflow-Datei.

Bei Docker muss die Datei im Container liegen. Der Datei-Node liest nur freigegebene Verzeichnisse, seit n8n 2.0 standardmäßig ~/.n8n-files (N8N_RESTRICT_FILE_ACCESS_TO). In n8n Cloud liest er nur Pfade unter /home/node/. Die Vorlage ist für selbst gehostetes n8n eingerichtet und dort geprüft.

Dein erster Beleg aus dem eigenen Workflow.

Was das Ergebnis bedeutet

pendingprocessing
Die Verarbeitung steht an oder läuft. Die Vorlage fragt mit Abstand erneut ab.
success
Die API meldet die Verarbeitung als abgeschlossen. Öffne den Beleg und prüfe die Angaben.
failed
Die Verarbeitung ist fehlgeschlagen. Öffne den gespeicherten Beleg in bimetrics.
quota_paused
Die Verarbeitung wartet auf freies Kontingent an verarbeiteten Dokumenten. Prüfe dein Kontingent, statt neu hochzuladen.

success ist der gemeldete API-Zustand, keine Buchungsfreigabe.

Was im letzten Schritt steht

Solange die Verarbeitung läuft, fragt die Vorlage höchstens sechsmal mit 20 Sekunden Abstand ab. Danach behältst du die Beleg-ID und fragst später erneut ab. Bei großen Stapeln kann die Verarbeitung bis zu einer halben Stunde dauern. Die erfolgreiche Übertragung allein bestätigt noch keine abgeschlossene Verarbeitung.

Im letzten Node steht zusätzlich outcome: processed, processing_failed, quota_paused oder poll_limit_reached. Ein grüner n8n-Lauf kann auch einen korrekt behandelten Fehlerzustand bedeuten.

Wenn der Ablauf stoppt

Die Vorlage stoppt bei HTTP-Fehlern und wiederholt Uploads nicht selbst.

400, 409 und 403
400 · BadRequest
Prüfe das Upload-Feld: genau eine Datei als receipt[], keine zusätzlichen Formularfelder.
409 · UploadRequestConflict
Die Upload-ID wurde bereits anders verwendet oder der ursprüngliche Beleg ist nicht mehr verfügbar. Prüfe Datei, Dateiname und Feld. Eine neue ID ist für einen tatsächlich neuen Beleg vorgesehen.
403 · Zugriff fehlt
APIKeyPermissionDenied betrifft die erforderlichen Rechte, APIUnavailable den API-Zugang der Firma. Scheitert erst die Statusabfrage, kann der Beleg bereits gespeichert sein. Prüfe, ob der Schlüssel das Recht „Daten lesen“ hat, und verwende die erhaltene Beleg-ID.
Wiederholen, ohne einen zweiten Beleg anzulegen

Nach einem Verbindungsabbruch verwendest du dieselbe Upload-ID, dieselben Dateibytes, denselben Dateinamen und dasselbe Feld. Auch Firma und API-Schlüssel müssen gleich bleiben. Ein anderer Schlüssel eröffnet einen eigenen Bereich für Upload-IDs.

Die Vorlage stoppt bei HTTP-Fehlern. Sie wiederholt Uploads nicht automatisch. Warte bei 429 mindestens die Sekunden aus Retry-After ab; wiederhole vorübergehende Serverfehler nur begrenzt und mit wachsendem Abstand. Liegt bereits eine Beleg-ID vor, frage zuerst deren Status ab.

Was wir mit der Vorlage geprüft haben

Geprüft mit n8n 2.40.7 am 28. September 2026 gegen eine lokale bimetrics-Instanz: PDF-Upload, unveränderte Originaldatei in der App, identische Beleg-ID bei Wiederholung und Statusabfrage. Zusätzliche Formularfelder wurden mit 400 abgelehnt, ein geänderter Dateiname bei gleicher Upload-ID mit 409.

Die lokale Instanz verwendete einen OCR-Testadapter. Dieser Test belegt die Übertragung und Statusbehandlung, nicht die Qualität ausgelesener Rechnungsdaten.

GrundlageEntwickler-Doku: Beleg-Uploadn8n-Doku zu HTTP-Request-Credentialsn8n-Doku zum Node Read/Write Files from Disk

n8n-Doku zu HTTP-Request-Credentials, abgerufen am 01.11.2026

n8n-Doku zum Node Read/Write Files from Disk, abgerufen am 01.11.2026

Richte deinen ersten Ablauf ein

7 Tage kostenlos testen, keine Zahlungsdaten nötig.

Kostenlos testen