Hartă site Actualizări
Română
RON lei
Actualizări
NOU
Claude & ChatGPT — Supercharged.
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

Primește notificări în timp real pentru toate evenimentele. Documente procesate, OCR finalizat, clasificare efectuată.

20+
Tipuri de evenimente
<1s
Latență
100%
Fiabil
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-ul OCR/<a href="/ro/">AI-IDP</a> 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ă

Workspaces

2
  • spațiu_lucru.partajat Workspace partajat cu un utilizator sau o echipă
  • spațiu_lucru.nepartajat Accesul la Workspace revocat

Sarcini

3
  • sarcină.creată Sarcină nouă creată
  • sarcină.finalizată Sarcină marcată ca finalizată
  • sarcină.întârziată Sarcină depășită termenul limită
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)
Timp de așteptare 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

Primești evenimente?

Configurează-ți webhook-urile.

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