Zum Inhalt springen
Läuft in Claude · Von Anthropic verifiziert
Übersicht Übersicht News News
Teilen

Webhooks & Events

Echtzeit-Events. HMAC-signiert zugestellt.

PaperOffice ruft Ihren Endpunkt auf, sobald sich ein Dokument, Job, Workspace oder eine Aufgabe ändert. Kein Polling.

22 Event-Typen, HMAC-SHA256-Signatur, drei Retry-Strategien und ein Zustellprotokoll je Versuch.

HMAC-SHA256 bei jeder Zustellung Bis zu 10 Wiederholungen (Standard 5) Idempotent per Event-ID
Echtzeit-Events. HMAC-signiert zugestellt.

Verfügbare Events

22 Event-Typen, gruppiert nach Entität

Abonnieren Sie einzelne Events oder verwenden Sie den Platzhalter * für alle.

Dokumente

14
  • document.uploaded Neues Dokument in einen Workspace hochgeladen
  • document.created Alias für document.uploaded (Kompatibilität)
  • document.processed OCR-/AI-IDP-Pipeline erfolgreich abgeschlossen
  • document.edited Dokument bearbeitet: Metadaten, Tags oder Inhalt aktualisiert
  • document.deleted Dokument gelöscht; delete_mode zeigt trash (Papierkorb in Business und Compliance) oder instant (endgültig in Standard)
  • document.restored Dokument aus dem Papierkorb wiederhergestellt (Business und Compliance)
  • document.moved Dokument zwischen Workspaces verschoben
  • document.version_created Neue Version eines bestehenden Dokuments
  • document.lifecycle_changed Aufbewahrungs-/Archivierungsstatus geändert
  • document.comment_added Kommentar zu einem Dokument erstellt
  • document.note_added Interne Notiz angehängt
  • document.tag_added Tag einem Dokument zugewiesen
  • document.legal_hold_placed Legal Hold aktiviert (unveränderlich)
  • document.legal_hold_released Legal Hold aufgehoben

Jobs

3
  • job.completed Async-Job erfolgreich beendet
  • job.failed Async-Job endgültig fehlgeschlagen
  • job.progress Fortschritts-Update bei längeren Jobs

Workspaces

2
  • workspace.shared Workspace mit Benutzer oder Team geteilt
  • workspace.unshared Workspace-Zugriff entzogen

Aufgaben

3
  • task.created Neue Aufgabe erstellt
  • task.completed Aufgabe als erledigt markiert
  • task.overdue Aufgabe hat ihr Fälligkeitsdatum überschritten

Payload und Header

Jede Zustellung folgt demselben Schema

Vorhersagbarer JSON-Body, feste 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-Request-Header

Header Beispielwert Bedeutung
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 Idempotenz-Schlüssel.
X-PaperOffice-Subscription-ID 42 ID des Abonnements, das das Event empfängt
X-PaperOffice-Signature sha256=… HMAC-SHA256 des Raw-Bodys, hex-kodiert
cURL
curl -X POST "https://api.paperoffice.ai/latest/webhooks/subscribe" \  -H "Authorization: Bearer po_ut_YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "My Production Webhook",    "url": "https://yourdomain.com/webhooks/paperoffice",    "events": ["document.processed", "job.completed", "job.failed"],    "retry_policy": "exponential",    "max_retries": 5,    "timeout_ms": 10000  }'

Signatur-Verifizierung

Verifizieren Sie jede Zustellung mit HMAC-SHA256

Berechnen Sie HMAC-SHA256 über den rohen Request-Body mit Ihrem gemeinsamen Secret und vergleichen Sie das Ergebnis mit X-PaperOffice-Signature — zwingend mit konstanter Laufzeit.

  • Vergleich in konstanter Laufzeit

    hash_equals, hmac.compare_digest oder crypto.timingSafeEqual: Der Vergleich darf keine Laufzeitunterschiede verraten.

  • Rohen Body signieren

    Die Signatur gilt für den unveränderten Request-Body. Parsen Sie JSON erst nach der Prüfung, sonst weicht der Hash ab.

  • Abonnieren per API

    POST /latest/webhooks/subscribe mit name, url und events. Bleibt secret leer, erzeugt PaperOffice es und gibt es einmalig zurück.

Retry und Zustellung

Drei Retry-Strategien, bis zu 10 Wiederholungen

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

  • Standard exponential

    Exponential (Standard)

    Der Abstand zwischen den Versuchen verdoppelt sich nach jedem Fehlversuch.

  • linear

    Linear

    Der Abstand zwischen den Versuchen wächst um einen festen Schritt.

  • none

    Keine

    Keine Wiederholung, auch nicht bei 5xx (senden und vergessen). Nützlich für Test-Hooks.

  • Erfolg HTTP 2xx innerhalb des Timeout-Fensters
  • Max. Wiederholungen Bis zu 10 Wiederholungen (Standard 5)
  • Zeitüberschreitung 1.000–30.000 ms je Versuch (Standard 10.000). Der erste Zustellversuch ist je nach Ereignis auf 2 bzw. 5 Sekunden begrenzt, Wiederholungen nutzen den vollen Wert.
  • Zustellprotokoll Jeder Versuch wird protokolliert; das Protokoll bleibt auch nach dem Löschen des Abonnements erhalten.

Management-API

Fünf Endpunkte unter /latest/webhooks/

Abonnements anlegen, auflisten, aktualisieren und löschen — dazu ein Test-Endpunkt. Jeder Aufruf trägt ein Bearer-Token.

  • POST /webhooks/subscribe Abonnement anlegen; Payloads werden mit HMAC-SHA256 signiert MCP-Toolpo-webhooks-subscribe
  • GET /webhooks/list Alle Webhook-Abonnements des Kontos auflisten MCP-Toolpo-webhooks-list
  • POST /webhooks/update URL, Events, Header, Retry-Policy oder Aktiv-Status aktualisieren MCP-Toolpo-webhooks-update
  • POST /webhooks/delete Abonnement löschen; das Zustellprotokoll bleibt erhalten MCP-Toolpo-webhooks-delete
  • POST /webhooks/test Test-Event an ein Abonnement senden und die Zustellung prüfen MCP-Toolpo-webhooks-test

Sicherheit

Von Grund auf gehärtet

Sechs Mechanismen, die bei jeder Zustellung greifen — auf Seiten von PaperOffice und auf Ihrer.

  • HMAC-SHA256

    Jede Zustellung wird mit Ihrem Secret signiert. Der Vergleich muss zwingend in konstanter Laufzeit erfolgen.

  • SSRF-Schutz

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

  • DNS-Rebinding-sicher

    Die Zieladresse wird beim Zustellen erneut geprüft.

  • HTTPS empfohlen

    http und https werden akzeptiert. Für den Produktivbetrieb empfehlen wir HTTPS.

  • Idempotenz per Event-ID

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

  • Vollständiges Zustellprotokoll

    Alle Versuche werden geloggt: Statuscode, Response-Body, Zeitmessung, Fehlermeldung.

Limits

Zustellverhalten je Abonnement konfigurierbar

Alle Werte setzen Sie beim Anlegen oder später über /webhooks/update — je Abonnement, nicht je Konto.

  • 0–10 Wiederholungen je Zustellung (Standard 5)
  • 1.000–30.000 ms Timeout je Versuch (Standard 10.000, erster Versuch 2–5 s)
  • 3 Retry-Policies: none, linear, exponential
  • HMAC-SHA256 Signatur bei jeder Zustellung

Webhooks stehen ab dem Plan Professional zur Verfügung. Welcher Plan zu Ihrem Setup passt, zeigt die Preisübersicht.

Fragen

Häufige Fragen zu Webhooks

Wie verifiziere ich eine Zustellung?

Berechnen Sie HMAC-SHA256 über den rohen Request-Body mit dem Secret Ihres Abonnements und vergleichen Sie das Ergebnis in konstanter Laufzeit mit dem Header X-PaperOffice-Signature (Format sha256=<hex>). Stimmt die Signatur nicht, antworten Sie mit HTTP 401 und verarbeiten den Body nicht.

Woher kommt das Secret?

Beim Anlegen des Abonnements über POST /latest/webhooks/subscribe. Lassen Sie das Feld secret leer, erzeugt PaperOffice ein Secret und gibt es einmalig in der Antwort zurück. Über POST /latest/webhooks/update können Sie es jederzeit ersetzen.

Was passiert, wenn mein Endpunkt nicht antwortet?

Jede Antwort außerhalb von HTTP 2xx oder ein Timeout zählt als Fehlversuch. Je nach Retry-Policy (exponential, linear, none) wiederholt PaperOffice die Zustellung bis zur eingestellten Zahl von Wiederholungen (0–10, Standard 5). Jeder Versuch steht mit Statuscode, Antwort und Zeitmessung im Zustellprotokoll.

Kann dieselbe Zustellung zweimal ankommen?

Ja, bei Wiederholungen nach einem Timeout ist das möglich. Deduplizieren Sie deshalb über X-PaperOffice-Event-ID: Die ID ist je Event eindeutig und eignet sich als Idempotenz-Schlüssel in Ihrer Datenbank.

Welche Events kann ich abonnieren?

22 Event-Typen aus vier Gruppen: Dokumente, Jobs, Workspaces und Aufgaben. Sie abonnieren einzelne Events oder mit dem Platzhalter * alle. Über filters (etwa workspace_id oder pofid) grenzen Sie ein Abonnement zusätzlich ein.

In welchem Plan sind Webhooks enthalten?

Webhooks stehen ab dem Plan Professional zur Verfügung. Welcher Plan zu Ihrem Setup passt, zeigt die Preisübersicht.

PaperOffice AI · Problem Solver

Erzählen Sie uns, was Sie täglich Zeit kostet.

Einfach beschreiben. Keine Fachbegriffe nötig.

Oder starten Sie mit einem Beispiel

Wie möchten Sie PaperOffice nutzen?

Computer und Smartphone sind verbunden: Workspace am Rechner, Erfassen am Telefon.

Wo möchten Sie starten?

Der volle Workspace ist für den Computer optimiert. Die Mobile-Version eignet sich zum Erfassen, Prüfen und Freigeben von Dokumenten.

Kostenlos registrieren app.paperoffice.ai

Am Computer starten

Wir senden Ihren persönlichen Zugangslink an Ihre E-Mail-Adresse.