Webhookid Reaalaegsed sündmused
HMAC-allkirjastatud tagasihelistamised iga dokumendi, töö, tööruumi ja ülesande sündmuse kohta. 22 sündmustüüpi, eksponentsed korduskatsed, HTTPS soovitatav.
{
"event_type": "document.processed",
"event_id": "a3b7f9c1d4e8b2a6",
"timestamp": "2026-04-17T14:23:11Z",
"subscription_id": 42,
"data": { "pofid": "doc_01HZY8K3…" }
} Usaldatud juhtivate ettevõtete poolt üle maailma
22 sündmustüüpi, grupeeritud üksuse järgi
Tellige üksikuid sündmusi või kasutage kõige jaoks wildkaarti *.
Dokumendid
14-
document.uploadedUus dokument laaditud tööruumi -
dokument.loodudAlias dokumendi üleslaadimisele (ühilduvus) -
dokument.töödeldudOCR/IDP torustik lõpetas edukalt -
dokument.muudetudMetaandmed, sildid või sisu uuendatud -
dokument.kustutatudDokument viidud prügikasti -
dokument.taastatudDokument taastatud prügikastist -
dokument.teisaldatudDokument viidud tööruumide vahel -
dokument.verioon_loodudUus versioon lisatud olemasolevale dokumendile -
dokument.elutsükkel_muudetudSäilitamise/arhiveerimise staatus muutunud -
dokument.kommentaar_lisatudKommentaar postitatud dokumendile -
dokument.märkus_lisatudSisemine märkus lisatud -
dokument.silt_lisatudSilt omistatud dokumendile -
dokument.õiguslik_kinne_paigutatudJuriidiline hoidmine aktiveeritud (muutumatu) -
dokument.õiguslik_kinne_vabastatudJuriidiline hoidmine vabastatud
Tööd
3-
töö.valminudAsünkroonne töö lõpetas edukalt -
töö.ebaõnnestunudAsünkroonne töö ebaõnnestus lõplikult -
töö.edenemineEdenemise värskendus pikaajaliste tööde ajal
Tööruumid
2-
tööruum.jagatudTööruum jagatud kasutaja või meeskonnaga -
tööruum.jagamine_tühistatudTööruumi juurdepääs tühistatud
Ülesanded
3-
ülesanne.loodudUus ülesanne loodud -
ülesanne.valminudÜlesanne märgitud lõpetatuks -
ülesanne.tähtaeg_ületatudÜlesanne ületas tähtaja
Tellige ["*"], et saada kõiki oma konto sündmusi.
Iga kohaletoimetamine järgib sama skeemi
Ennustatav JSON-i keha, viis allkirjastatud HTTP päist, ISO-8601 UTC ajatemplid.
{
"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
}
}
} Sisutüüp application/json Alati JSON, UTF-8 kodeeringus Kasutaja-agent PaperOffice-Webhook/1.0 Fikseeritud identifikaator tulemüüri lubaloendite jaoks X-PaperOffice-Sündmus dokument.töödeldud Kohaletoimetatav sündmustüüp X-PaperOffice-Sündmuse-ID a3b7f9c1… 128-bitine unikaalne ID. Kasutage idempotentsuse jaoks. X-PaperOffice-Tellimuse-ID 42 Sündmust vastuvõtva tellimuse ID X-PaperOffice-Signature sha256=… Toore keha HMAC-SHA256, kuueteistkümnendsüsteemis kodeeritud Kontrollige iga kohaletoimetamist HMAC-SHA256-ga
Arvutage HMAC-SHA256 toore päringu keha üle, kasutades oma jagatud saladust, ja võrrelge seda X-PaperOffice-Signature-ga, kasutades konstantse aja võrdlust (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');
}); Kolm kordusstrateegiat, kuni 10 katset
Valige poliitika tellimuse kohta. Iga katse logitakse olekukoodi, vastuse keha ja ajastusega.
exponential Eksponentne (vaikimisi)
Taandumine kahekordistub pärast iga katset: 30s, 60s, 120s, 240s, 480s…
linear Lineaarne
Fikseeritud kasv: 30s, 60s, 90s, 120s, 150s…
none Puudub
Saada ja unusta. Ühtegi korduskatset isegi 5xx korral. Kasulik test-webhookide jaoks.
9 lõpp-punkti aadressil /latest/webhooks/
Täielik CRUD tellimuste, kohaletoimetamise logide, ühekordsete töötellimuste ja testi lõpp-punkti jaoks – kõik OAuth2 Bearer, kõik MCP-valmis.
/webhooks/subscribe Loo uus tellimus (piiramatu konto kohta) po_webhooks_subscribe /webhooks/list Loetlege kõik konto tellimused po_webhooks_list /webhooks/update Uuendage olemasolevat tellimust po_webhooks_update /webhooks/delete Peitke tellimus (kohaletoimetamise logi säilitatakse) po_webhooks_delete /webhooks/deliveries Tooge kohaletoimetamise logi filtritega (sündmustüüp, ainult_edukas) po_webhooks_deliveries /webhooks/test Saatke test.ping sündmus kohaletoimetamise kontrollimiseks po_webhooks_test /webhooks/subscribe-job Ühekordne webhook kindla job_id jaoks po_webhooks_subscribe_job /webhooks/job-subscriptions Loetlege tööle spetsiifilised tellimused po_webhooks_job_subscriptions /webhooks/info Saadaolevad sündmused, lõpp-punktid, korduspoliitikad, allkirja info po_webhooks_info Disaini järgi kõvenenud
HMAC-SHA256
Iga kasulik koorem allkirjastatud teie saladusega. Konstantse aja võrdlus on kohustuslik.
SSRF-kaitse
Privaatsed/sisesed IP-d, localhost ja pilve metaandmete lõpp-punktid blokeeritud tellimisel ja saatmisel.
DNS-i ümbersidumise ohutu
IP uuesti valideeritud saatmise ajal, kinnitatud CURLOPT_RESOLVE kaudu.
HTTPS tungivalt eelistatud
http ja https aktsepteeritud. HTTPS soovitatav tootmiseks.
Sündmuse-ID idempotentsus
Iga kohaletoimetamine kannab unikaalset X-PaperOffice-Event-ID-d. Dedubleerige oma poolel.
Täielik auditeerimise jälg
Kõik katsed logitud: olekukood, vastuse keha, ajastus, veateade.
Piiramatu tellimused, kohaletoimetamise käitumine täielikult konfigureeritav
Saadaval kõigil plaanidel. Tasu kasutuse järgi: 1 krediit iga eduka kohaletoimetamise eest (HTTP 2xx). Korduskatsed, test-sündmused ja ebaõnnestunud kohaletoimetamised on tasuta.
Teie esimene webhook 60 sekundiga
Loo lõpp-punkt, telli API kaudu, käivita test-sündmus. See ongi kõik.