Sitemap
Dansk
EUR €
NYT
Claude & ChatGPT — Med fuld kraft.
Alle dokumenter · 409+ AI-værktøjer · 30 sek. opsætning
Claude· ChatGPT· Cursor· Gemini· +50
Tilslut nu
Platform
50+ AI-moduler og værktøjer
Løsninger
Brancher, processer, risici
Udvikler
API, SDK'er, dokumentation
Ressourcer
Tutorials, blog, support
Virksomhed
Team, partnere, karriere
Priser
Webhooks

Webhooks Realtidsbegivenheder

HMAC-signerede tilbagekald for hver begivenhed vedrørende dokumenter, job, arbejdsområder og opgaver. 22 begivenhedstyper, eksponentielle genforsøg, HTTPS anbefales.

22+
Begivenhedstyper
<1s
Ventetid
HMAC
SHA-256 signeret
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

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/IDP-pipeline fuldført 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

Arbejdsområder

2
  • arbejdsområde.delt Arbejdsområde delt med en bruger eller et team
  • arbejdsområde.ikke_delt Adgang til arbejdsområde trukket tilbage

Opgaver

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

Abonner på ["*"] for at modtage alle begivenheder på din konto.

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';
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');
});
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
Virksomhedssikkerhed

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

Din første webhook på 60 sekunder

Opret et endepunkt, abonner via API, affyr en testbegivenhed. Det var det.

HMAC-SHA256 Eksponentiel back-off Fuld revisionslog