Mapa stranice
Hrvatski
EUR €
NOVO
Claude & ChatGPT — Maksimalna snaga.
Svi dokumenti · 409+ AI alata · 30 sek postavljanje
Claude· ChatGPT· Cursor· Gemini· +50
Poveži sada
Platforma
50+ AI modula i alata
Rješenja
Industrije, procesi, rizici
Programer
API, SDK-ovi, dokumentacija
Resursi
Vodiči, blog, podrška
Tvrtka
Tim, partneri, karijere
Cijene
Webhookovi

Webhookovi Događaji u stvarnom vremenu

Povratni pozivi potpisani s HMAC za svaki događaj dokumenta, posla, radnog prostora i zadatka. 22 vrste događaja, eksponencijalni ponovni pokušaji, preporučuje se HTTPS.

22+
Vrste događaja
<1s
Latencija
HMAC
Potpisano sa SHA-256
POST /vaša-krajnja-točka
Zaglavlja zahtjeva
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
JSON tijelo
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Potpis verificiran HMAC-SHA256 · ID događaja zabilježen

Povjerenje vodećih tvrtki širom svijeta

Dostupni događaji

22 vrste događaja, grupirano po entitetu

Pretplatite se na pojedinačne događaje ili koristite zamjenski znak * za sve.

Dokumenti

14
  • document.uploaded Novi dokument učitan u radni prostor
  • document.created Alias za document.uploaded (kompatibilnost)
  • document.processed OCR/IDP pipeline uspješno završen
  • document.edited Metapodaci, oznake ili sadržaj ažurirani
  • document.deleted Dokument premješten u smeće
  • document.restored Dokument oporavljen iz smeća
  • document.moved Dokument premješten između radnih prostora
  • document.version_created Nova verzija dodana postojećem dokumentu
  • document.lifecycle_changed Status zadržavanja / arhiviranja promijenjen
  • document.comment_added Komentar objavljen na dokumentu
  • document.note_added Interna bilješka priložena
  • document.tag_added Oznaka dodijeljena dokumentu
  • document.legal_hold_placed Pravno zadržavanje aktivirano (nepromjenjivo)
  • document.legal_hold_released Pravno zadržavanje oslobođeno

Poslovi

3
  • job.completed Asinkroni posao uspješno završen
  • posao.neuspjelo Asinkroni posao trajno neuspješan
  • posao.napredak Ažuriranje napretka tijekom dugotrajnih poslova

Radni prostori

2
  • radni-prostor.dijeljeno Radni prostor podijeljen s korisnikom ili timom
  • radni-prostor.nije-dijeljeno Pristup radnom prostoru opozvan

Zadaci

3
  • zadatak.stvoreno Novi zadatak stvoren
  • zadatak.dovršeno Zadatak označen kao dovršen
  • zadatak.prošlo-rok Zadatak je prošao svoj rok

Pretplatite se na ["*"] za primanje svakog događaja vašeg računa.

Payload i zaglavlja

Svaka isporuka slijedi istu shemu

Predvidljivo JSON tijelo, pet potpisanih HTTP zaglavlja, ISO-8601 UTC vremenske oznake.

Tijelo zahtjeva (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 zaglavlja zahtjeva
Content-Type application/json Uvijek JSON, UTF-8 kodiran
User-Agent PaperOffice-Webhook/1.0 Fiksni identifikator za popise dopuštenih vatrozida
X-PaperOffice-Event document.processed Vrsta događaja koji se isporučuje
X-PaperOffice-Event-ID a3b7f9c1… 128-bitni jedinstveni ID. Koristiti za idempotentnost.
X-PaperOffice-Subscription-ID 42 ID pretplate koja prima događaj
X-PaperOffice-Signature sha256=… HMAC-SHA256 sirovog tijela, heksadecimalno kodirano
Verifikacija potpisa

Verificirajte svaku isporuku s HMAC-SHA256

Izračunajte HMAC-SHA256 nad sirovim tijelom zahtjeva koristeći svoju dijeljenu tajnu, zatim usporedite s X-PaperOffice-Signature koristeći usporedbu konstantnog vremena (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');
});
Ponovni pokušaj i isporuka

Tri strategije ponovnog pokušaja, do 10 pokušaja

Odaberite politiku po pretplati. Svaki pokušaj se bilježi sa status kodom, tijelom odgovora i vremenskim označavanjem.

linear

Linearno

Fiksni rast: 30s, 60s, 90s, 120s, 150s…

none

Nijedan

Pošalji i zaboravi. Nema ponovnih pokušaja čak ni kod 5xx. Korisno za testne web-kuke.

Uspjeh HTTP 2xx unutar vašeg vremenskog prozora
Maks. ponovnih pokušaja 0–10 pokušaja (zadano 5)
Vremensko ograničenje 1.000–30.000 ms po pokušaju (zadano 10.000)
Dnevnik isporuke Svaki pokušaj pohranjen u webhook_deliveries za reviziju
Upravljački API

9 krajnjih točaka pod /latest/webhooks/

Potpuni CRUD za pretplate, dnevnike isporuke, jednokratne pretplate na poslove i testnu krajnju točku — sve OAuth2 Bearer, sve spremno za MCP.

POST /webhooks/subscribe Stvorite novu pretplatu (neograničeno po računu) po_webhooks_subscribe
GET /webhooks/list Popis svih pretplata računa po_webhooks_list
POST /webhooks/update Ažurirajte postojeću pretplatu po_webhooks_update
POST /webhooks/delete Brisanje pretplate uz zadržavanje podataka (dnevnik isporuke sačuvan) po_webhooks_delete
GET /webhooks/deliveries Dohvati dnevnik isporuke s filtrima (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Pošaljite događaj test.ping za verifikaciju isporuke po_webhooks_test
POST /webhooks/subscribe-job Jednokratna web-kuka za specifični job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Popis pretplata vezanih uz posao po_webhooks_job_subscriptions
GET /webhooks/info Dostupni događaji, krajnje točke, politike ponovnog pokušaja, informacije o potpisu po_webhooks_info
Enterprise sigurnost

Ojačano po dizajnu

HMAC-SHA256

Svaki potpisan payload s vašom tajnom. Usporedba konstantnog vremena je obavezna.

SSRF zaštita

Privatni / interni IP-ovi, localhost i krajnje točke metapodataka u oblaku blokirani su pri pretplati i slanju.

Sigurno od DNS rebindinga

IP se ponovno validira u vrijeme slanja, fiksiran putem CURLOPT_RESOLVE.

HTTPS snažno preferiran

http i https prihvaćeni. HTTPS preporučen za produkciju.

Event-ID idempotentnost

Svaka isporuka nosi jedinstveni X-PaperOffice-Event-ID. Deduplicirajte na svojoj strani.

Potpuni revizijski trag

Svi pokušaji zabilježeni: status kod, tijelo odgovora, vrijeme, poruka o grešci.

Ograničenja

Neograničene pretplate, ponašanje isporuke potpuno konfigurabilno

Pretplate / račun
Aktivne pretplate na poslove
10.000 ms
Zadano vremensko ograničenje
5
Zadani maks. ponovni pokušaji

Dostupno na svim planovima. Plaćanje po korištenju: 1 kredit po uspješnoj isporuci (HTTP 2xx). Ponovni pokušaji, testni događaji i neuspjele isporuke su besplatni.

Započnite odmah

Vaša prva web-kuka u 60 sekundi

Stvorite krajnju točku, pretplatite se putem API-ja, okinite testni događaj. To je to.

HMAC-SHA256 Eksponencijalno odgađanje Potpuni revizijski trag