Dokumente kommen nicht nur per E-Mail, Upload oder Connector zu scanJUMP – auch per Schnittstelle (API). Damit lassen sich n8n, eigene Skripte oder ein Dokumenten-Export an ein Postfach anschließen. Die API ist in jedem Paket enthalten.
Token anlegen
- In scanJUMP unter Einstellungen → Entwickler einen API-Token anlegen und sicher speichern – er wird nur einmal angezeigt.
- Tokens gelten 365 Tage und lassen sich jederzeit widerrufen.
- Die Postfach-Nummer (
channel_id) findest du in der Adresszeile der Postfach-Einstellungen oder überGET /api/v1/mail-ingest/channels.
Basis-Adresse: https://api.scanjump.de. Jede Anfrage trägt Authorization: Bearer <Token>. Den Mail-Webhook (/api/v1/mail-ingest/webhook/…) bitte nicht für Automatisierungen nutzen – das Token stünde in der URL.
PDFs einliefern
POST /api/v1/ingest, ausschließlich als multipart/form-data: Feld channel_id (Ziel-Postfach) und ein oder mehrere Felder files (PDF). Optional der Header Idempotency-Key – ein wiederholter Aufruf mit demselben Schlüssel legt keinen zweiten Vorgang an.
curl -X POST "https://api.scanjump.de/api/v1/ingest" \
-H "Authorization: Bearer $SCANJUMP_TOKEN" \
-H "Idempotency-Key: gmail-msg-18c2f4a7" \
-F "channel_id=12" \
-F "files=@rechnung.pdf;type=application/pdf"
Antwort 200: {"status": "queued", "history_id": 1234, "tasks": [...]}. Das Dokument läuft dann wie eine E-Mail durch das Postfach: Trennen, Benennen, Ablegen oder Weiterleiten.
Grenzen
| Grenze | Wert |
|---|---|
| Dateityp | nur PDF (sonst 415) |
| Größe je Datei | 25 MB (sonst 413) |
| Gesamtgröße je Anfrage | 50 MB |
| Dateien je Anfrage | 5 |
| Anfragen je Token | 30 pro Minute (sonst 429, Retry-After: 60) |
Besondere Antworten
202mit"status": "held": Kontingent aufgebraucht oder Konto noch nicht freigeschaltet. Das Dokument ist sicher gespeichert und wird nach Freischaltung automatisch verarbeitet – kein erneuter Aufruf nötig.503mitRetry-After: Zwischenspeicher nicht erreichbar, nichts angenommen – die Anfrage unverändert wiederholen.200mit"replayed": true: derselbeIdempotency-Keywurde schon einmal mit derselben Anfrage benutzt; es wurde nichts erneut eingeliefert.409: Postfach deaktiviert oderIdempotency-Keymit anderem Inhalt wiederverwendet.
Status abfragen
GET /api/v1/ingest/{history_id} liefert Status (queued, processed, forwarded, held, error), Ein- und Ausgabedateien mit Links in deine Ablage, Ordnerpfad und Fehler. Bei mehreren Dateien bleibt der Gesamtstatus queued, bis alle Dokumente fertig sind; documents nennt erwartete, fertige und fehlgeschlagene.
Webhook statt Abfragen
Je Postfach kannst du eine callback_url hinterlegen (PATCH /api/v1/mail-ingest/channels/{id} mit {"callback_url": "https://…"}). Die Antwort enthält beim ersten Setzen einmalig das callback_secret. scanJUMP ruft die Adresse dann je Dokument ("event": "document") und einmal am Ende ("event": "completed") mit den Dateinamen und dem Ordnerpfad auf. Jeder Aufruf trägt X-Scanjump-Signature: sha256=…, ein HMAC-SHA256 über den Anfragetext mit dem Secret als Schlüssel – bitte prüfen und ungültige Aufrufe verwerfen. Zustellung: 10 s Zeitlimit, bis zu drei Wiederholungen.
In n8n: HTTP-Request-Node mit Multipart/Form-Data für das Einliefern, Webhook-Node als callback_url, und im Code-Node die Signatur mit crypto.createHmac("sha256", secret) über den rohen Body prüfen.
Noch nicht in dieser Version
- Bilder (Handyfotos) einliefern – kommt mit der Capture-App.
- Webhook für Postfächer mit reiner Weiterleitung – dort bitte den Status abfragen.
- Token nur zum Einliefern (Scopes).
