Sitemap Updates
Nederlands
EUR €
Updates
NIEUW
Claude & ChatGPT — Supercharged.
Alle documenten · 409+ AI-tools · 30 sec setup
Claude· ChatGPT· Cursor· Gemini· +50
Nu verbinden
Platform
50+ AI modules & tools
Oplossingen
Branches, processen, risico's
Ontwikkelaar
API, SDK's, documentatie
Bronnen
Tutorials, blog, ondersteuning
Bedrijf
Team, partners, carrières
Prijzen
Webhooks

Webhooks Real-time gebeurtenissen

Ontvang real-time meldingen voor alle gebeurtenissen. Documenten verwerkt, OCR voltooid, classificatie afgerond.

20+
Event types
<1 s
Latentie
100%
Betrouwbaar
POST /uw-eindpunt
Verzoekheaders
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…" }
}
Handtekening geverifieerd HMAC-SHA256 · Gebeurtenis-ID gelogd

Vertrouwd door toonaangevende bedrijven wereldwijd

Beschikbare gebeurtenissen

22 gebeurtenistypen, gegroepeerd per entiteit

Abonneer u op individuele gebeurtenissen of gebruik het jokerteken * voor alles.

Documenten

14
  • document.geüpload Nieuw document geüpload naar een werkruimte
  • document.aangemaakt Alias voor document.uploaded (compatibiliteit)
  • document.verwerkt OCR/AI-IDP-pipeline succesvol afgerond
  • document.bewerkt Metadata, tags of inhoud bijgewerkt
  • document.verwijderd Document verplaatst naar prullenbak
  • document.hersteld Document hersteld vanuit prullenbak
  • document.verplaatst Document verplaatst tussen werkruimten
  • document.versie_aangemaakt Nieuwe versie toegevoegd aan een bestaand document
  • document.levenscyclus_gewijzigd Bewaar-/archiveringsstatus gewijzigd
  • document.opmerking_toegevoegd Reactie geplaatst op een document
  • document.notitie_toegevoegd Interne notitie bijgevoegd
  • document.label_toegevoegd Tag toegewezen aan een document
  • document.juridische_bevriezing_geplaatst Juridische vergrendeling geactiveerd (onveranderlijk)
  • document.juridische_bevriezing_opgeheven Juridische vergrendeling opgeheven

Taken

3
  • taak.voltooid Asynchrone taak succesvol voltooid
  • taak.mislukt Asynchrone taak definitief mislukt
  • taak.voortgang Voortgangsupdate tijdens langlopende taken

Workspaces

2
  • werkruimte.gedeeld Workspace gedeeld met een gebruiker of team
  • werkruimte.delen_opgeheven Toegang tot Workspace ingetrokken

Opdrachten

3
  • taak.aangemaakt Nieuwe opdracht aangemaakt
  • taak.voltooid Opdracht gemarkeerd als voltooid
  • taak.verlopen Opdracht heeft de vervaldatum overschreden
Payload en headers

Elke levering volgt hetzelfde schema

Voorspelbare JSON-body, vijf ondertekende HTTP-headers, ISO-8601 UTC-tijdstempels.

Verzoekbody (JSON)
{
  "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-verzoekheaders
Content-Type application/json Altijd JSON, UTF-8 gecodeerd
User-Agent PaperOffice-Webhook/1.0 Vaste identifier voor firewall-toestemmingslijsten
X-PaperOffice-Event document.verwerkt Gebeurtenistype dat wordt geleverd
X-PaperOffice-Event-ID a3b7f9c1… 128-bit unieke ID. Gebruik voor idempotentie.
X-PaperOffice-Subscription-ID 42 ID van het abonnement dat de gebeurtenis ontvangt
X-PaperOffice-Signature sha256=… HMAC-SHA256 van de ruwe body, hex-gecodeerd
Handtekeningverificatie

Verifieer elke levering met HMAC-SHA256

Bereken HMAC-SHA256 over de ruwe verzoekbody met uw gedeelde geheim en vergelijk dit vervolgens met X-PaperOffice-Signature met behulp van een constant-tijdvergelijking (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');
});
Opnieuw proberen en levering

Drie opnieuw proberen-strategieën, tot 10 pogingen

Kies een beleid per abonnement. Elke poging wordt gelogd met statuscode, antwoordbody en timing.

linear

Lineair

Vaste groei: 30s, 60s, 90s, 120s, 150s…

none

Geen

Fire-and-forget. Geen opnieuw proberen, zelfs niet bij 5xx. Handig voor test-webhooks.

Succes HTTP 2xx binnen uw time-outvenster
Max. opnieuw proberen 0–10 pogingen (standaard 5)
Time-out 1.000–30.000 ms per poging (standaard 10.000)
Leveringslogboek Elke poging opgeslagen in webhook_deliveries voor audit
Beheer-API

9 eindpunten onder /latest/webhooks/

Volledige CRUD voor abonnementen, leveringslogboeken, eenmalige taakabonnementen en een test-eindpunt — allemaal OAuth2 Bearer, allemaal MCP-gereed.

POST /webhooks/subscribe Maak een nieuw abonnement aan (onbeperkt per account) po_webhooks_subscribe
GET /webhooks/list Toon alle abonnementen van het account po_webhooks_list
POST /webhooks/update Werk een bestaand abonnement bij po_webhooks_update
POST /webhooks/delete Zacht verwijderen van een abonnement (leveringslogboek behouden) po_webhooks_delete
GET /webhooks/deliveries Haal leveringslogboek op met filters (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Verzend een test.ping-gebeurtenis om de levering te verifiëren po_webhooks_test
POST /webhooks/subscribe-job Eenmalige webhook voor een specifieke job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Toon taak-gebonden abonnementen po_webhooks_job_subscriptions
GET /webhooks/info Beschikbare gebeurtenissen, eindpunten, opnieuw proberen-beleidsregels, handtekeninginformatie po_webhooks_info
Enterprise-beveiliging

Ontworpen voor verharding

HMAC-SHA256

Elke payload ondertekend met uw geheim. Constant-tijdvergelijking verplicht.

SSRF-bescherming

Privé-/interne IP's, localhost en cloud-metadata-eindpunten geblokkeerd bij abonneren en verzenden.

Veilig tegen DNS-rebinding

IP opnieuw gevalideerd op verzendtijdstip, vastgezet via CURLOPT_RESOLVE.

HTTPS sterk aanbevolen

http en https geaccepteerd. HTTPS aanbevolen voor productie.

Event-ID idempotentie

Elke levering bevat een unieke X-PaperOffice-Event-ID. Dedupliceer aan uw kant.

Volledig audittrail

Alle pogingen gelogd: statuscode, antwoordbody, timing, foutmelding.

Limieten

Onbeperkte abonnementen, leveringsgedrag volledig configureerbaar

Abonnementen / account
Actieve taakabonnementen
10.000 ms
Standaard time-out
5
Standaard max. opnieuw proberen

Beschikbaar op alle abonnementen. Pay-per-use: 1 credit per succesvolle levering (HTTP 2xx). Opnieuw proberen, testgebeurtenissen en mislukte leveringen zijn gratis.

Nu beginnen

Gebeurtenissen ontvangen?

Configureer uw webhooks.

HMAC-SHA256 Exponentiële back-off Volledig audittrail