Webhookok Valós idejű események
HMAC aláírással ellátott visszahívások minden dokumentum-, feladat-, munkaterület- és eseményhez. 22 eseménytípus, exponenciális újrapróbálkozások, HTTPS ajánlott.
{
"event_type": "document.processed",
"event_id": "a3b7f9c1d4e8b2a6",
"timestamp": "2026-04-17T14:23:11Z",
"subscription_id": 42,
"data": { "pofid": "doc_01HZY8K3…" }
} Vezető vállalatok bizalma világszerte
22 eseménytípus, entitás szerint csoportosítva
Iratkozzon fel egyes eseményekre, vagy használja a * helyettesítő karaktert mindenhez.
Dokumentumok
14-
Dokumentum feltöltveÚj dokumentum feltöltve egy munkaterületre -
Dokumentum létrehozvaÁlnév a document.uploaded számára (kompatibilitás) -
dokumentum.feldolgozvaOCR/IDP folyamat sikeresen befejeződött -
dokumentum.szerkesztveMetaadatok, címkék vagy tartalom frissítve -
dokumentum.törölveDokumentum kukába helyezve -
dokumentum.visszaállítvaDokumentum visszaállítva a kukából -
document.movedDokumentum áthelyezve munkaterületek között -
dokumentum.verzió_létrehozvaÚj verzió hozzáadva egy meglévő dokumentumhoz -
dokumentum.életciklus_megváltoztatvaMegőrzési/archiválási állapot megváltozott -
dokumentum.komment_hozzáadvaMegjegyzés közzétéve egy dokumentumon -
dokumentum.jegyzet_hozzáadvaBelső jegyzet csatolva -
dokumentum.címke_hozzáadvaCímke hozzárendelve egy dokumentumhoz -
dokumentum.jogi_zárolás_elrendelveJogi zárolás aktiválva (változtathatatlan) -
dokumentum.jogi_zárolás_feloldvaJogi zárolás feloldva
Feladatok
3-
munkafolyamat.befejezveAszinkron feladat sikeresen befejeződött -
munkafolyamat.sikertelenAszinkron feladat véglegesen meghiúsult -
munkafolyamat.folyamatbanFolyamatfrissítés hosszú ideig futó feladatok során
Munkaterületek
2-
munkaterület.megosztvaMunkaterület megosztva egy felhasználóval vagy csapattal -
munkaterület.megosztás_megszüntetveMunkaterület-hozzáférés visszavonva
Feladatok
3-
feladat.létrehozvaÚj feladat létrehozva -
feladat.befejezveFeladat teljesítettként megjelölve -
feladat.határidő_túllépveFeladat túllépte a határidőt
Iratkozzon fel a ["*"] elemre, hogy fiókjának minden eseményét megkapja.
Minden kézbesítés ugyanazt a sémát követi
Kiszámítható JSON törzs, öt aláírt HTTP fejléc, ISO-8601 UTC időbélyegek.
{
"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
}
}
} Content-Type application/json Mindig JSON, UTF-8 kódolással User-Agent PaperOffice-Webhook/1.0 Rögzített azonosító tűzfal-engedélylistákhoz X-PaperOffice-Event dokumentum.feldolgozva Kézbesített eseménytípus X-PaperOffice-Esemény-ID a3b7f9c1… 128 bites egyedi azonosító. Használja idempotenciához. X-PaperOffice-Előfizetés-ID 42 Az eseményt fogadó előfizetés azonosítója X-PaperOffice-Aláírás sha256=… A nyers törzs HMAC-SHA256 értéke, hexadecimális kódolással Minden kézbesítés ellenőrzése HMAC-SHA256-tal
Számítsa ki a HMAC-SHA256 értéket a nyers kérelem törzsére a megosztott titokkulcs segítségével, majd hasonlítsa össze az X-PaperOffice-Signature értékkel állandó idejű összehasonlítást használva (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');
}); Három újrapróbálkozási stratégia, legfeljebb 10 próbálkozás
Válasszon házirendet előfizetésenként. Minden próbálkozás naplózásra kerül az állapotkóddal, a válasz törzsével és az időzítéssel.
exponential Exponenciális (alapértelmezett)
A várakozási idő minden próbálkozás után megduplázódik: 30s, 60s, 120s, 240s, 480s…
linear Lineáris
Fix növekedés: 30s, 60s, 90s, 120s, 150s…
none Nincs
Tűzijáték-elv (fire-and-forget). Nincs újrapróbálkozás még 5xx hibák esetén sem. Teszt hookokhoz hasznos.
9 végpont a /latest/webhooks/ alatt
Teljes CRUD műveletek előfizetésekhez, kézbesítési naplókhoz, egyszeri munkafolyamat előfizetésekhez és egy teszt végponthoz – mindez OAuth2 Bearerrel, mind MCP-képes.
/webhooks/subscribe Új előfizetés létrehozása (fiókonként korlátlan) po_webhooks_subscribe /webhooks/list A fiók összes előfizetésének listázása po_webhooks_list /webhooks/update Meglévő előfizetés frissítése po_webhooks_update /webhooks/delete Előfizetés lágy törlése (a kézbesítési napló megmarad) po_webhooks_delete /webhooks/deliveries Kézbesítési napló lekérése szűrőkkel (event_type, success_only) po_webhooks_deliveries /webhooks/test Egy test.ping esemény küldése a kézbesítés ellenőrzésére po_webhooks_test /webhooks/subscribe-job Egyszeri webhook egy adott job_id-hoz po_webhooks_subscribe_job /webhooks/job-subscriptions Munkafolyamat-szintű előfizetések listázása po_webhooks_job_subscriptions /webhooks/info Elérhető események, végpontok, újrapróbálkozási házirendek, aláírás-információk po_webhooks_info Tervezésileg megerősítve
HMAC-SHA256
Minden hasznos adat aláírva van a titkos kulcsával. Az állandó idejű összehasonlítás kötelező.
SSRF védelem
Privát / belső IP-címek, localhost és felhő metaadat végpontok blokkolva vannak előfizetéskor és kézbesítéskor.
DNS rebinding biztonság
Az IP-cím újraellenőrzésre kerül kézbesítéskor, rögzítve a CURLOPT_RESOLVE segítségével.
HTTPS erősen ajánlott
A http és https elfogadott. HTTPS ajánlott éles környezetben.
Event-ID idempotencia
Minden kézbesítés tartalmaz egy egyedi X-PaperOffice-Event-ID-t. Deduplikálás az Ön oldalán.
Teljes auditálási nyomvonal
Minden próbálkozás naplózva: állapotkód, válasz törzse, időzítés, hibaüzenet.
Korlátlan előfizetések, a kézbesítési viselkedés teljesen konfigurálható
Elérhető minden csomagban. Használatalapú díjazás: 1 kredit sikeres kézbesítésenként (HTTP 2xx). Az újrapróbálkozások, teszt események és sikertelen kézbesítések ingyenesek.
Az első webhookja 60 másodperc alatt
Hozzon létre egy végpontot, iratkozzon fel az API-n keresztül, indítson egy teszt eseményt. Ennyi az egész.