Seitenübersicht Updates
Deutsch
EUR €
Updates
NEU
Claude & ChatGPT — Supercharged.
Alle Dokumente · 409+ AI-Tools · 30s Setup
Claude· ChatGPT· Cursor· Gemini· +50
Jetzt verbinden
Plattform
50+ AI-Module & Tools
Lösungen
Branchen, Prozesse, Risiken
Entwickler
API, SDKs, Dokumentation
Ressourcen
Anleitungen, Blog, Support
Unternehmen
Team, Partner, Karriere
Preise
Webhooks

Webhooks Echtzeit-Events

Erhalten Sie Echtzeit-Benachrichtigungen über alle Ereignisse. Dokumente verarbeitet, OCR abgeschlossen, Klassifizierung fertig.

20+
Event-Typen
<1 Sek.
Latenz
100%
Zuverlässig
POST /ihr-endpoint
Request Headers
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
JSON Body
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Signatur verifiziert HMAC-SHA256 · Event-ID geloggt

Vertraut von führenden Unternehmen weltweit

Verfügbare Events

22 Event-Typen, gruppiert nach Entität

Abonniere einzelne Events oder nutze den Platzhalter * für alle.

Dokumente

14
  • Dokument hochgeladen Neues Dokument in einen Workspace hochgeladen
  • Dokument erstellt Alias für document.uploaded (Kompatibilität)
  • Dokument verarbeitet OCR/AI-IDP-Pipeline erfolgreich abgeschlossen
  • Dokument bearbeitet Metadaten, Tags oder Inhalt aktualisiert
  • Dokument gelöscht Dokument in Papierkorb verschoben
  • Dokument wiederhergestellt Dokument aus Papierkorb wiederhergestellt
  • document.moved Dokument zwischen Workspaces verschoben
  • Dokument.Version_erstellt Neue Version eines bestehenden Dokuments
  • Dokument.Lebenszyklus_geändert Aufbewahrungs-/Archivierungsstatus geändert
  • Dokument.Kommentar_hinzugefügt Kommentar zu einem Dokument erstellt
  • Dokument.Notiz_hinzugefügt Interne Notiz angehängt
  • Dokument.Tag_hinzugefügt Tag einem Dokument zugewiesen
  • Dokument.Legal_Hold_gesetzt Legal Hold aktiviert (unveränderlich)
  • Dokument.Legal_Hold_aufgehoben Legal Hold freigegeben

Aufträge

3
  • Auftrag.abgeschlossen Async-Job erfolgreich beendet
  • Auftrag.fehlgeschlagen Async-Job endgültig fehlgeschlagen
  • Auftrag.Fortschritt Fortschritts-Update bei längeren Jobs

Workspaces

2
  • Arbeitsbereich.geteilt Workspace mit Benutzer oder Team geteilt
  • Arbeitsbereich.Freigabe_aufgehoben Workspace-Zugriff entzogen

Aufgaben

3
  • Aufgabe.erstellt Neue Aufgabe erstellt
  • Aufgabe.abgeschlossen Aufgabe als erledigt markiert
  • Aufgabe.überfällig Aufgabe hat ihr Fälligkeitsdatum überschritten
Payload & Headers

Jede Zustellung folgt demselben Schema

Vorhersagbarer JSON-Body, fünf signierte HTTP-Header, ISO-8601-UTC-Zeitstempel.

Request body
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6c9f1d4e7b2a5c8f1",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": {
    "pofid": "doc_01HZY8K3M7P2Q9R5T1V6W4X2Y8",
    "workspace_id": 17,
    "filename": "invoice-2026-04-17.pdf",
    "mime_type": "application/pdf",
    "size_bytes": 284521,
    "processing_result": {
      "ocr_done": true,
      "classification": "invoice",
      "confidence": 0.98
    }
  }
}
HTTP Anforderungs-Header
Content-Type application/json Immer JSON, UTF-8-kodiert
User-Agent PaperOffice-Webhook/1.0 Fester Identifier für Firewall-Allowlists
X-PaperOffice-Event document.processed Zugestellter Event-Typ
X-PaperOffice-Event-ID a3b7f9c1… 128-Bit-eindeutige ID. Nutzen Sie sie als Idempotency-Key.
X-PaperOffice-Subscription-ID 42 ID des Abonnements, das das Event empfängt
X-PaperOffice-Signature sha256=… HMAC-SHA256 des Raw-Bodys, hex-kodiert
Signatur-Verifizierung

Verifiziere jede Zustellung mit HMAC-SHA256

Berechnen Sie HMAC-SHA256 über den rohen Request-Body mit Ihrem gemeinsamen Secret und vergleiche dann gegen X-PaperOffice-Signature — zwingend mit konstanter Laufzeit (hash_equals, crypto.timingSafeEqual).

import crypto from 'crypto';
import express from 'express';
const app = express();

const WEBHOOK_SECRET = process.env.PAPEROFFICE_WEBHOOK_SECRET;

app.post('/webhooks/paperoffice', express.raw({ type: 'application/json' }), (req, res) => {
  const signature = req.header('X-PaperOffice-Signature'); // "sha256=..."
  const eventId   = req.header('X-PaperOffice-Event-ID');
  const eventType = req.header('X-PaperOffice-Event');

  const expected = 'sha256=' + crypto
    .createHmac('sha256', WEBHOOK_SECRET)
    .update(req.body)
    .digest('hex');

  if (!signature || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
    return res.status(401).send('invalid signature');
  }

  const event = JSON.parse(req.body.toString());
  // eventId als Idempotency-Key speichern -> gleiche ID nicht zweimal verarbeiten
  console.log(eventType, event.data);
  res.status(200).send('ok');
});
Retry & Zustellung

Drei Retry-Strategien, bis zu 10 Versuche

Wählen Sie die Policy pro Abonnement. Jeder Versuch wird mit Statuscode, Response-Body und Zeitmessung geloggt.

linear

Linear

Festes Wachstum: 30s, 60s, 90s, 120s, 150s…

none

Keine

Fire-and-forget. Keine Retries, auch nicht bei 5xx. Nützlich für Test-Hooks.

Erfolg HTTP 2xx innerhalb deines Timeout-Fensters
Max Retries 0–10 Versuche (Default 5)
Zeitüberschreitung 1.000–30.000 ms pro Versuch (Default 10.000)
Delivery-Log Jeder Versuch liegt in webhook_deliveries für die Revision
Management-API

9 Endpoints unter /latest/webhooks/

Voller CRUD für Abonnements, Zustell-Logs, einmalige Job-Abonnements und ein Test-Endpoint — alles OAuth2 Bearer, alles MCP-bereit.

POST /webhooks/subscribe Neues Abonnement erstellen (unbegrenzte Anzahl pro Account) po_webhooks_subscribe
GET /webhooks/list Alle Abonnements des Accounts auflisten po_webhooks_list
POST /webhooks/update Bestehendes Abonnement aktualisieren po_webhooks_update
POST /webhooks/delete Abonnement soft-löschen (Delivery-Log bleibt erhalten) po_webhooks_delete
GET /webhooks/deliveries Delivery-Log mit Filtern abrufen (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Test-Event (test.ping) zur Zustell-Verifizierung senden po_webhooks_test
POST /webhooks/subscribe-job Einmaliger Webhook für eine spezifische job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Job-gebundene Abonnements auflisten po_webhooks_job_subscriptions
GET /webhooks/info Verfügbare Events, Endpoints, Retry-Policies, Signatur-Infos po_webhooks_info
Enterprise-Sicherheit

Von Grund auf gehärtet

HMAC-SHA256

Jedes Payload wird mit Ihrem Secret signiert. Vergleich muss zwingend konstante Laufzeit haben.

SSRF-Schutz

Private/interne IPs, Localhost und Cloud-Metadata-Endpoints werden beim Abonnieren und Dispatch blockiert.

DNS-Rebinding-sicher

IP wird beim Dispatch erneut validiert und per CURLOPT_RESOLVE gepinnt.

HTTPS dringend empfohlen

http und https werden akzeptiert. HTTPS für Produktion dringend empfohlen.

Event-ID-Idempotenz

Jede Zustellung bringt eine eindeutige X-PaperOffice-Event-ID mit. Dedupliziere auf Ihrer Seite.

Voller Audit-Trail

Alle Versuche werden geloggt: Statuscode, Response-Body, Timing, Error-Message.

Limits

Unbegrenzte Abonnements, Zustellverhalten flexibel konfigurierbar

Abonnements / Account
Aktive Job-Abonnements
10.000 ms
Default-Timeout
5
Standardmaximale Anzahl der Wiederholungsversuche

Verfügbar in allen Plänen. Pay-per-Use: 1 Credit pro erfolgreich zugestellter Auslösung (HTTP 2xx). Retries, Test-Events und fehlgeschlagene Zustellungen sind kostenlos.

Jetzt starten

Events empfangen?

Konfigurieren Sie Ihre Webhooks.

HMAC-SHA256 Exponentielles Back-off Voller Audit-Trail