Hartă site
Română
EUR €
NOU
Claude & ChatGPT — Supraalimentat.
Toate documentele · 409+ instrumente AI · Configurare în 30 s
Claude· ChatGPT· Cursor· Gemini· +50
Conectați acum
Platformă
50+ module și instrumente AI
Soluții
Industrii, procese, riscuri
Dezvoltator
API, SDK-uri, documentație
Resurse
Tutoriale, blog, suport
Companie
Echipă, parteneri, cariere
Prețuri
Webhook-uri

Webhook-uri Evenimente în timp real

Callback-uri semnate HMAC pentru fiecare eveniment legat de documente, joburi, spații de lucru și sarcini. 22 de tipuri de evenimente, reîncercări exponențiale, HTTPS recomandat.

22+
Tipuri de evenimente
<1s
Latentă
HMAC
Semnat SHA-256
POST /endpointul-tău
Antete cerere
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
Corp JSON
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Semnătură verificată HMAC-SHA256 · ID eveniment înregistrat

Încrederea companiilor de top din întreaga lume

Evenimente disponibile

22 de tipuri de evenimente, grupate după entitate

Abonează-te la evenimente individuale sau folosește wildcard-ul * pentru toate.

Documente

14
  • document.încărcat Document nou încărcat într-un spațiu de lucru
  • document.creat Alias pentru document.uploaded (compatibilitate)
  • document.procesat Pipeline OCR/IDP finalizat cu succes
  • document.editat Metadate, etichete sau conținut actualizate
  • document.șters Document mutat la coșul de gunoi
  • document.restaurat Document recuperat din coșul de gunoi
  • document.mutat Document mutat între spații de lucru
  • document.versiune_creată Versiune nouă adăugată unui document existent
  • document.ciclu_de_viață_modificat Statut de retenție / arhivare modificat
  • document.comentariu_adăugat Comentariu postat pe un document
  • document.notă_adăugată Notă internă atașată
  • document.etichetă_adăugată Etichetă atribuită unui document
  • document.reținere_legală_activată Blocaj legal activat (imutabil)
  • document.reținere_legală_eliberată Blocaj legal eliberat

Joburi

3
  • job.finalizat Job asincron finalizat cu succes
  • job.eșuat Job asincron eșuat terminal
  • job.progres Actualizare progres în timpul joburilor de lungă durată

Spații de lucru

2
  • spațiu_lucru.partajat Spațiu de lucru partajat cu un utilizator sau echipă
  • spațiu_lucru.nepartajat Acces la spațiul de lucru revocat

Sarcini

3
  • sarcină.creată Sarcină nouă creată
  • sarcină.finalizată Sarcină marcată ca finalizată
  • sarcină.întârziată Sarcină depășită termenul limită

Abonează-te la ["*"] pentru a primi fiecare eveniment din contul tău.

Payload și antete

Fiecare livrare urmează aceeași schemă

Corp JSON predictibil, cinci antete HTTP semnate, timestamp-uri ISO-8601 UTC.

Corp cerere (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
    }
  }
}
Anteturi cerere HTTP
Content-Type application/json Întotdeauna JSON, codificat UTF-8
User-Agent PaperOffice-Webhook/1.0 Identificator fix pentru listele de permisiuni firewall
X-PaperOffice-Event document.processed Tipul evenimentului livrat
X-PaperOffice-Event-ID a3b7f9c1… ID unic pe 128 biți. Utilizați-l pentru idempotență.
X-PaperOffice-Subscription-ID 42 ID-ul abonamentului care primește evenimentul
X-PaperOffice-Signature sha256=… HMAC-SHA256 al corpului brut, codificat hexazecimal
Verificarea semnăturii

Verificați fiecare livrare cu HMAC-SHA256

Calculați HMAC-SHA256 peste corpul brut al cererii folosind secretul dvs. partajat, apoi comparați-l cu X-PaperOffice-Signature utilizând o comparare cu timp constant (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');
});
Reîncercare și livrare

Trei strategii de reîncercare, până la 10 încercări

Alegeți o politică per abonament. Fiecare încercare este jurnalizată cu codul de stare, corpul răspunsului și timing-ul.

linear

Liniară

Creștere fixă: 30s, 60s, 90s, 120s, 150s…

none

Niciuna

Fire-and-forget. Fără reîncercări chiar și la erori 5xx. Util pentru hook-uri de test.

Succes HTTP 2xx în fereastra de timeout
Maxim reîncercări 0–10 încercări (implicit 5)
Timeout 1.000–30.000 ms per încercare (implicit 10.000)
Jurnal livrare Fiecare încercare stocată în webhook_deliveries pentru audit
API de Management

9 endpoint-uri sub /latest/webhooks/

CRUD complet pentru abonamente, jurnale de livrare, abonamente pentru joburi unice și un endpoint de test — toate OAuth2 Bearer, toate compatibile MCP.

POST /webhooks/subscribe Creează un nou abonament (nelimitat per cont) po_webhooks_subscribe
GET /webhooks/list Listează toate abonamentele contului po_webhooks_list
POST /webhooks/update Actualizează un abonament existent po_webhooks_update
POST /webhooks/delete Ștergere soft a unui abonament (jurnalul de livrare este păstrat) po_webhooks_delete
GET /webhooks/deliveries Preluare jurnal livrare cu filtre (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Trimite un eveniment test.ping pentru a verifica livrarea po_webhooks_test
POST /webhooks/subscribe-job Webhook unic pentru un job_id specific po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Listează abonamentele limitate la joburi po_webhooks_job_subscriptions
GET /webhooks/info Evenimente disponibile, endpoint-uri, politici de reîncercare, informații despre semnătură po_webhooks_info
Securitate Enterprise

Consolidat prin design

HMAC-SHA256

Fiecare payload semnat cu secretul dvs. Compararea cu timp constant este obligatorie.

Protecție SSRF

IP-uri private/internale, localhost și endpoint-uri de metadate cloud blocate la abonare și dispatch.

Sigur împotriva DNS rebinding

IP re-validat la momentul dispatch-ului, fixat via CURLOPT_RESOLVE.

HTTPS puternic preferat

http și https acceptate. HTTPS recomandat pentru producție.

Idempotență Event-ID

Fiecare livrare conține un X-PaperOffice-Event-ID unic. Deduplicați în partea dvs.

Jurnal de audit complet

Toate încercările jurnalizate: cod stare, corp răspuns, timing, mesaj eroare.

Limite

Abonamente nelimitate, comportament livrare complet configurabil

Abonamente / cont
Abonamente job active
10.000 ms
Timeout implicit
5
Maxim reîncercări implicit

Disponibil în toate planurile. Pay-per-use: 1 credit per livrare reușită (HTTP 2xx). Reîncercările, evenimentele de test și livrările eșuate sunt gratuite.

Începeți acum

Primul dvs. webhook în 60 de secunde

Creați un endpoint, abonați-vă via API, declanșați un eveniment de test. Asta e tot.

HMAC-SHA256 Back-off exponențial Jurnal de audit complet