Webbplatskarta
Svenska
EUR €
NYTT
Claude & ChatGPT — Med full kraft.
Alla dokument · 409+ AI-verktyg · 30 sek setup
Claude· ChatGPT· Cursor· Gemini· +50
Anslut nu
Plattform
50+ AI-moduler och verktyg
Lösningar
Branscher, processer, risker
Utvecklare
API, SDK:er, dokumentation
Resurser
Guider, blogg, support
Företag
Team, partners, karriärer
Prissättning
Webbhookar

Webbhookar Händelser i realtid

HMAC-signerade återuppringningar för varje händelse gällande dokument, jobb, arbetsytor och uppgifter. 22 händelsetyper, exponentiella återförsök, HTTPS rekommenderas.

22+
Händelsetyper
<1s
Latens
HMAC
SHA-256 signerad
POST /din-slutpunkt
Begäran-headrar
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
JSON-brödtext
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Signatur verifierad HMAC-SHA256 · Händelse-ID loggad

Betrodd av ledande företag världen över

Tillgängliga händelser

22 händelsetyper, grupperade efter entitet

Prenumerera på enskilda händelser eller använd jokertecknet * för allt.

Dokument

14
  • dokument.uppladdat Nytt dokument uppladdat till en arbetsyta
  • dokument.skapat Alias för document.uploaded (kompatibilitet)
  • dokument.bearbetat OCR/IDP-pipeline slutförd framgångsrikt
  • dokument.redigerat Metadata, taggar eller innehåll uppdaterat
  • dokument.raderat Dokument flyttat till papperskorgen
  • dokument.återställt Dokument återställt från papperskorgen
  • document.moved Dokument flyttat mellan arbetsytor
  • dokument.version_skapad Ny version tillagd till ett befintligt dokument
  • dokument.livscykel_ändrad Status för lagring/archivering ändrad
  • dokument.kommentar_tillagd Kommentar postad på ett dokument
  • dokument.anteckning_tillagd Intern anteckning bifogad
  • dokument.tagg_tillagd Tagg tilldelad ett dokument
  • dokument.juridisk_sperre_placerad Juridisk spärr aktiverad (oföränderlig)
  • dokument.juridisk_sperre_upphävd Juridisk spärr hävd

Jobb

3
  • jobb.slutfört Asynkront jobb slutfört framgångsrikt
  • jobb.misslyckades Asynkront jobb misslyckades permanent
  • jobb.framsteg Uppdatering av förlopp under långvariga jobb

Arbetsytor

2
  • arbetsyta.delad Arbetsyta delad med en användare eller team
  • arbetsyta.delad_inte Åtkomst till arbetsyta återkallad

Uppgifter

3
  • uppgift.skapad Ny uppgift skapad
  • uppgift.slutförd Uppgift markerad som slutförd
  • uppgift.förfallen Uppgift passerat sitt förfallodatum

Prenumerera på ["*"] för att ta emot varje händelse på ditt konto.

Payload och headrar

Varje leverans följer samma schema

Förutsägbar JSON-brödtext, fem signerade HTTP-headrar, tidsstämplar i ISO-8601 UTC.

Begärans brödtext (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-begäran-headrar
Content-Type application/json Alltid JSON, UTF-8-kodad
User-Agent PaperOffice-Webhook/1.0 Fast identifierare för firewall-allowlistor
X-PaperOffice-Event document.processed Händelsetyp som levereras
X-PaperOffice-Event-ID a3b7f9c1… 128-bitars unikt ID. Använd för idempotens.
X-PaperOffice-Subscription-ID 42 ID för prenumerationen som tar emot händelsen
X-PaperOffice-Signature sha256=… HMAC-SHA256 av den råa brödtexten, hex-kodad
Signaturverifiering

Verifiera varje leverans med HMAC-SHA256

Beräkna HMAC-SHA256 över den råa begäransbrödtexten med din delade hemlighet, jämför sedan mot X-PaperOffice-Signature med hjälp av tidskonstant jämförelse (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');
});
Återförsök och leverans

Tre återförsöksstrategier, upp till 10 försök

Välj en policy per prenumeration. Varje försök loggas med statuskod, svarsbrödtext och tidtagning.

linear

Linjär

Fast tillväxt: 30s, 60s, 90s, 120s, 150s…

none

Ingen

Fire-and-forget. Inga återförsök även vid 5xx. Användbart för test-hookar.

Lyckades HTTP 2xx inom ditt tidsgränsfönster
Max antal återförsök 0–10 försök (standard 5)
Tidsgräns 1 000–30 000 ms per försök (standard 10 000)
Leveranslogg Varje försök lagras i webhook_deliveries för granskning
Hanterings-API

9 slutpunkter under /latest/webhooks/

Fullständig CRUD för prenumerationer, leveransloggar, engångsjobb-prenumerationer och en testslutpunkt — alla med OAuth2 Bearer, alla MCP-redo.

POST /webhooks/subscribe Skapa en ny prenumeration (obegränsat per konto) po_webhooks_subscribe
GET /webhooks/list Lista alla prenumerationer för kontot po_webhooks_list
POST /webhooks/update Uppdatera en befintlig prenumeration po_webhooks_update
POST /webhooks/delete Mjuk radering av en prenumeration (leveranslogg bevaras) po_webhooks_delete
GET /webhooks/deliveries Hämta leveranslogg med filter (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Skicka en test.ping-händelse för att verifiera leverans po_webhooks_test
POST /webhooks/subscribe-job Engångswebbhook för ett specifikt job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Lista jobb-specifika prenumerationer po_webhooks_job_subscriptions
GET /webhooks/info Tillgängliga händelser, slutpunkter, återförsökspolicyer, signaturinformation po_webhooks_info
Företagssäkerhet

Hårdnad genom design

HMAC-SHA256

Varje payload signerad med din hemlighet. Tidskonstant jämförelse är obligatorisk.

SSRF-skydd

Privata/interna IP-adresser, localhost och molnmetadata-slutpunkter blockeras vid prenumeration och distribution.

Säkert mot DNS-rebinding

IP valideras om vid distributionstillfället, fäst via CURLOPT_RESOLVE.

HTTPS starkt föredraget

http och https accepteras. HTTPS rekommenderas för produktion.

Idempotens för Event-ID

Varje leverans bär ett unikt X-PaperOffice-Event-ID. Deduplicera på din sida.

Fullständig granskningshistorik

Alla försök loggade: statuskod, svarsbrödtext, tidtagning, felmeddelande.

Gränser

Obegränsade prenumerationer, leveransbeteende helt konfigurerbart

Prenumerationer / konto
Aktiva jobb-prenumerationer
10 000 ms
Standard tidsgräns
5
Standard max antal återförsök

Tillgängligt på alla planer. Betala per användning: 1 kredit per lyckad leverans (HTTP 2xx). Återförsök, testhändelser och misslyckade leveranser är gratis.

Starta nu

Din första webbhook på 60 sekunder

Skapa en slutpunkt, prenumerera via API, utlös en testhändelse. Det var allt.

HMAC-SHA256 Exponentiell back-off Fullständig granskningshistorik