Mapa witryny Mapa witryny Aktualności Aktualności
Udostępnij
NOWOŚĆ
Claude & ChatGPT — Supercharged.
Wszystkie dokumenty · 300+ narzędzi AI · Konfiguracja w 30 s
Claude· ChatGPT· Cursor· Gemini· +50
Połącz teraz
Aktualności
Webhooki

Webhooki Wydarzenia w czasie rzeczywistym

Otrzymuj powiadomienia w czasie rzeczywistym o wszystkich wydarzeniach. Dokumenty przetworzone, OCR zakończone, klasyfikacja wykonana.

20+
Typów wydarzeń
<1 s
Opóźnienie
100%
Niezawodne
POST /twój-punkt-końcowy
Nagłówki żądania
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
Treść JSON
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Podpis zweryfikowany HMAC-SHA256 · ID zdarzenia zarejestrowane

Zaufanie wiodących firm na całym świecie

OEM PARTNERSHIP

Sole official DMS partner for QNAP and ASUSTOR.

Dedicated landing pages, direct integration, data stays on your NAS.

ISO 27001
ISO 27001 i SOC 2 Type II w trakcie certyfikacji. Audyty pośrednie dostępne na żądanie pod NDA.
SOC 2 Type 2
ISO 27001 i SOC 2 Type II w trakcie certyfikacji. Audyty pośrednie dostępne na żądanie pod NDA.
Dostępne zdarzenia

22 typy zdarzeń, pogrupowane według encji

Subskrybuj poszczególne zdarzenia lub użyj symbolu wieloznacznego * dla wszystkich.

Dokumenty

14
  • dokument.przesłany Nowy dokument przesłany do obszaru roboczego
  • dokument.utworzony Alias dla document.uploaded (kompatybilność)
  • dokument.przetworzony Linia produkcyjna OCR/AI-IDP zakończona pomyślnie
  • dokument.edytowany Zaktualizowane metadane, tagi lub zawartość
  • dokument.usunięty Dokument przeniesiony do kosza
  • dokument.przywrócony Dokument przywrócony z kosza
  • document.moved Dokument przeniesiony między obszarami roboczymi
  • dokument.wersja_utworzona Dodano nową wersję do istniejącego dokumentu
  • dokument.cykl_życia_zmieniony Zmieniono status przechowywania/archiwizacji
  • dokument.komentarz_dodany Opublikowano komentarz na dokumencie
  • dokument.notatka_dodana Dołączono notatkę wewnętrzną
  • dokument.tag_dodany Przypisano tag do dokumentu
  • dokument.blokada_prawna_nałożona Aktywowano blokadę prawną (niemodyfikowalna)
  • dokument.blokada_prawna_zwolniona Zwolniono blokadę prawną

Zadania

3
  • zadanie.zakończone Zadanie asynchroniczne zakończone pomyślnie
  • zadanie.nieudane Zadanie asynchroniczne zakończone niepowodzeniem terminalnym
  • zadanie.postęp Aktualizacja postępu podczas długotrwałych zadań

Workspaces

2
  • obszar.roboczy.udostępniony Workspace udostępniony użytkownikowi lub zespołowi
  • obszar.roboczy.udział.cofnięty Workspace dostęp odebrany

Zadania

3
  • zadanie.utworzone Utworzono nowe zadanie
  • zadanie.zakończone Oznaczono zadanie jako ukończone
  • zadanie.przeterminowane Zadanie przekroczyło termin wykonania
Video

Webhooki w Działaniu

Zobacz, jak PaperOffice Webhooks działa w praktyce — w filmie.

Webhooki w Działaniu
Dane ładunku i nagłówki

Każda dostawa Followuje ten sam schemat

Przewidywalna treść JSON, pięć podpisanych nagłówków HTTP, znaczniki czasu UTC w formacie ISO-8601.

Treść żądania (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
    }
  }
}
Nagłówki żądania HTTP
Content-Type application/json Zawsze JSON, kodowanie UTF-8
User-Agent PaperOffice-Webhook/1.0 Stały identyfikator dla list dozwolonych zapory
X-PaperOffice-Event document.processed Typ dostarczanego zdarzenia
X-PaperOffice-Event-ID a3b7f9c1… Unikalny ID 128-bitowy. Użyj do idempotentności.
X-PaperOffice-Subscription-ID 42 ID subskrypcji otrzymującej zdarzenie
X-PaperOffice-Signature sha256=… HMAC-SHA256 surowej treści, zakodowane szesnastkowo
Weryfikacja podpisu

Zweryfikuj każdą dostawę za pomocą HMAC-SHA256

Oblicz HMAC-SHA256 na surowej treści żądania, używając swojego współdzielonego sekretu, a następnie porównaj z X-PaperOffice-Signature, używając porównania o stałym czasie (hash_equals, crypto.timingSafeEqual).

import crypto from 'crypto';

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');
});
Ponawianie i dostawa

Trzy strategie ponawiania, do 10 prób

Wybierz politykę dla każdej subskrypcji. Każda próba jest rejestrowana z kodem statusu, treścią odpowiedzi i czasem.

linear

Liniowa

Stały wzrost: 30s, 60s, 90s, 120s, 150s…

none

Brak

Fire-and-forget. Brak ponowień nawet przy błędach 5xx. Przydatne do testowych webhooków.

Sukces HTTP 2xx w oknie czasowym limitu
Maksymalna liczba ponowień 0–10 prób (domyślnie 5)
Limit czasu 1 000–30 000 ms na próbę (domyślnie 10 000)
Dziennik dostaw Każda próba przechowywana w webhook_deliveries do celów audytowych
API zarządzania

9 punktów końcowych pod /latest/webhooks/

Pełne CRUD dla subskrypcji, dzienników dostaw, jednorazowych subskrypcji zadań i punkt końcowy testowy — wszystkie z OAuth2 Bearer, wszystkie gotowe do MCP.

POST /webhooks/subscribe Utwórz nową subskrypcję (nielimitowana na konto) po_webhooks_subscribe
GET /webhooks/list Wyświetl wszystkie subskrypcje konta po_webhooks_list
POST /webhooks/update Zaktualizuj istniejącą subskrypcję po_webhooks_update
POST /webhooks/delete Miękkie usunięcie subskrypcji (dziennik dostaw zachowany) po_webhooks_delete
GET /webhooks/deliveries Pobierz dziennik dostaw z filtrami (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Wyślij zdarzenie test.ping, aby zweryfikować dostawę po_webhooks_test
POST /webhooks/subscribe-job Jednorazowy webhook dla konkretnego job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Wyświetl subskrypcje dotyczące zadań po_webhooks_job_subscriptions
GET /webhooks/info Dostępne zdarzenia, punkty końcowe, polityki ponawiania, informacje o podpisie po_webhooks_info
Enterprise bezpieczeństwo

Utwardzone przez projekt

HMAC-SHA256

Każda ładunek podpisany Twoim sekretem. Porównanie o stałym czasie jest obowiązkowe.

Ochrona przed SSRF

Prywatne/internalne adresy IP, localhost i punkty końcowe metadanych chmury zablokowane podczas subskrypcji i wysyłki.

Bezpieczne przed rebindingiem DNS

IP ponownie walidowane w czasie wysyłki, przypięte przez CURLOPT_RESOLVE.

HTTPS mocno preferowane

http i https akceptowane. HTTPS zalecane dla środowiska produkcyjnego.

Idempotentność Event-ID

Każda dostawa zawiera unikalny X-PaperOffice-Event-ID. Deduplikacja po Twojej stronie.

Pełny ślad audytowy

Wszystkie próby rejestrowane: kod statusu, treść odpowiedzi, czas, komunikat o błędzie.

Limity

Nielimitowane subskrypcje, zachowanie dostawy w pełni konfigurowalne

Subskrypcje / konto
Aktywne subskrypcje zadań
10 000 ms
Domyślny limit czasu
5
Domyślna maksymalna liczba ponowień

Dostępne we wszystkich planach. Płatność za użycie: 1 kredyt za udaną dostawę (HTTP 2xx). Ponowienia, zdarzenia testowe i nieudane dostawy są darmowe.

Rozpocznij teraz

Otrzymuj wydarzenia?

Skonfiguruj swoje webhooks.

HMAC-SHA256 Wykładnicze opóźnienie Pełny ślad audytowy