Sitemap Opdateringer
Dansk
DKK kr
NYT
Claude & ChatGPT — Supercharged.
Alle dokumenter · 350+ AI-værktøjer · 30 sek. opsætning
Claude· ChatGPT· Cursor· Gemini· +50
Tilslut nu
AI-DMS
50+ AI-moduler og værktøjer
Løsninger
Brancher, processer, risici
Ressourcer
Tutorials, blog, support
Developer
API, SDK'er, dokumentation
Integratorer
Indbyg, OEM, n8n & program
Partnere
Henvisning, Influencer, Kanal
Virksomhed
Team, careers, contact
Priser
Webhooks

Webhooks Realtidsbegivenheder

Modtag realtidsnotifikationer for alle begivenheder. Dokumenter behandlet, OCR fuldført, klassificering færdig.

20+
Begivenhedstyper
<1s
Latenstid
100%
Pålidelig
POST /dit-endepunkt
Anmodningsheadere
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 verificeret HMAC-SHA256 · Begivenheds-ID logget

Betroet af førende virksomheder verden over

Eksklusiv DMS Partner

Eneste officielle DMS

Tilgængelige begivenheder

22 begivenhedstyper, grupperet efter enhed

Abonner på individuelle begivenheder eller brug jokertegnet * for alt.

Dokumenter

14
  • dokument.uploadet Nyt dokument uploadet til et arbejdsområde
  • dokument.oprettet Alias for document.uploaded (kompatibilitet)
  • dokument.behandlet OCR/AI-IDP pipeline afsluttet succesfuldt
  • dokument.redigeret Metadata, tags eller indhold opdateret
  • dokument.slettet Dokument flyttet til papirkurv
  • dokument.gendannet Dokument gendannet fra papirkurv
  • dokument.flyttet Dokument flyttet mellem arbejdsområder
  • dokument.version_oprettet Ny version tilføjet til et eksisterende dokument
  • dokument.livscyklus_ændret Status for opbevaring/archivering ændret
  • dokument.kommentar_tilføjet Kommentar posted på et dokument
  • dokument.note_tilføjet Intern note vedhæftet
  • dokument.mærke_tilføjet Tag tildelt til et dokument
  • dokument.juridisk_sikring_aktiveret Juridisk sperre aktiveret (uforanderlig)
  • dokument.juridisk_sikring_frigivet Juridisk sperre ophævet

Job

3
  • job.afsluttet Asynkront job fuldført succesfuldt
  • job.mislykkedes Asynkront job fejlede terminalt
  • job.fremskridt Fremskridtsopdatering under langvarige job

Workspaces

2
  • arbejdsområde.delt Workspace delt med en bruger eller et team
  • arbejdsområde.ikke_delt Workspace adgang tilbagekaldt

Opgaver

3
  • opgave.oprettet Ny opgave oprettet
  • opgave.afsluttet Opgave markeret som fuldført
  • opgave.forfalden Opgave har passeret sin forfaldsdato
Video

Webhooks i aktion

Se, hvordan PaperOffice Webhooks fungerer i praksis — i video.

Webhooks i aktion
Payload og headers

Hver levering følger samme skema

Forudsigelig JSON-body, fem signerede HTTP-headere, ISO-8601 UTC-tidsstempler.

Anmodningsbody (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-anmodningsheadere
Content-Type application/json Altid JSON, UTF-8 kodet
User-Agent PaperOffice-Webhook/1.0 Fast identifikator til firewall-allowlists
X-PaperOffice-Event dokument.behandlet Begivenhedstype der leveres
X-PaperOffice-Event-ID a3b7f9c1… 128-bit unik ID. Brug til idempotens.
X-PaperOffice-Abonnements-ID 42 ID for abonnementet der modtager begivenheden
X-PaperOffice-Signatur sha256=… HMAC-SHA256 af den rå body, hex-kodet
Signaturverifikation

Verificér hver levering med HMAC-SHA256

Beregn HMAC-SHA256 over den rå anmodningsbody ved hjælp af din delte hemmelighed, og sammenlign derefter med X-PaperOffice-Signature ved brug af tidskonstant sammenligning (hash_equals, crypto.timingSafeEqual).

import crypto from 'crypto';

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');
});
Genforsøg og levering

Tre genforsøgsstrategier, op til 10 forsøg

Vælg en politik pr. abonnement. Hvert forsøg logges med statuskode, responsbody og timing.

linear

Lineær

Fast vækst: 30s, 60s, 90s, 120s, 150s…

none

Ingen

Fire-and-forget. Ingen genforsøg selv ved 5xx. Nyttigt til test-webhooks.

Succes HTTP 2xx inden for dit tidsvindue
Maks. genforsøg 0–10 forsøg (standard 5)
Tidsudløb 1.000–30.000 ms pr. forsøg (standard 10.000)
Leveringslog Hvert forsøg gemmes i webhook_deliveries til revision
Administrations-API

9 endepunkter under /latest/webhooks/

Fuld CRUD for abonnementer, leveringslogs, engangsjob-abonnementer og et test-endepunkt — alt OAuth2 Bearer, alt MCP-klart.

POST /webhooks/subscribe Opret et nyt abonnement (ubegrænset pr. konto) po_webhooks_subscribe
GET /webhooks/list List alle abonnementer på kontoen po_webhooks_list
POST /webhooks/update Opdater et eksisterende abonnement po_webhooks_update
POST /webhooks/delete Blød sletning af et abonnement (leveringslog bevares) po_webhooks_delete
GET /webhooks/deliveries Hent leveringslog med filtre (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Send en test.ping-begivenhed for at verificere levering po_webhooks_test
POST /webhooks/subscribe-job Engangs-webhook for et specifikt job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions List job-specifikke abonnementer po_webhooks_job_subscriptions
GET /webhooks/info Tilgængelige begivenheder, endepunkter, genforsøgspolitikker, signaturinfo po_webhooks_info
Enterprise sikkerhed

Hærdet ved design

HMAC-SHA256

Hver payload signeret med din hemmelighed. Tidskonstant sammenligning er obligatorisk.

SSRF-beskyttelse

Private / interne IP'er, localhost og cloud-metadata-endepunkter blokeres ved abonnement og dispatch.

DNS-rebinding sikker

IP genvalideres ved dispatch-tidspunktet, fastlåst via CURLOPT_RESOLVE.

HTTPS stærkt foretrukket

http og https accepteres. HTTPS anbefales til produktion.

Event-ID idempotens

Hver levering indeholder en unik X-PaperOffice-Event-ID. Dedublér på din side.

Fuld revisionslog

Alle forsøg logget: statuskode, responsbody, timing, fejlmeddelelse.

Grænser

Ubegrænsede abonnementer, leveringsadfærd fuldt konfigurerbar

Abonnementer / konto
Aktive job-abonnementer
10.000 ms
Standard timeout
5
Standard maks. genforsøg

Tilgængelig på alle planer. Pay-per-use: 1 kredit pr. succesfuld levering (HTTP 2xx). Genforsøg, testbegivenheder og mislykkede leveringer er gratis.

Start nu

Modtage begivenheder?

Konfigurer dine webhooks.

HMAC-SHA256 Eksponentiel back-off Fuld revisionslog