Mapa witryny
Polski
EUR €
NOWOŚĆ
Claude & ChatGPT — Z pełną mocą.
Wszystkie dokumenty · 409+ narzędzi AI · Konfiguracja w 30 s
Claude· ChatGPT· Cursor· Gemini· +50
Połącz teraz
Platforma
50+ modułów i narzędzi AI
Rozwiązania
Branże, procesy, ryzyka
Deweloper
API, SDK, dokumentacja
Zasoby
Samouczki, blog, wsparcie
Firma
Zespół, partnerzy, kariera
Cennik
Webhooki

Webhooki Zdarzenia w czasie rzeczywistym

Wywołania zwrotne podpisane HMAC dla każdego zdarzenia dotyczącego dokumentu, zadania, obszaru roboczego i zadania. 22 typy zdarzeń, wykładnicze ponawianie, zalecany HTTPS.

22+
Typy zdarzeń
<1s
Opóźnienie
HMAC
Podpisane SHA-256
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

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 Potok OCR/IDP zakończony 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ń

Obszary robocze

2
  • workspace.shared Obszar roboczy udostępniony użytkownikowi lub zespołowi
  • workspace.unshared Cofnięto dostęp do obszaru roboczego

Zadania

3
  • task.created Utworzono nowe zadanie
  • task.completed Oznaczono zadanie jako ukończone
  • task.overdue Zadanie przekroczyło termin wykonania

Subskrybuj ["*"], aby otrzymywać każde zdarzenie swojego konta.

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';
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');
});
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
Bezpieczeństwo klasy enterprise

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

Twój pierwszy webhook w 60 sekund

Utwórz punkt końcowy, zasubskrybuj przez API, wywołaj zdarzenie testowe. To wszystko.

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