Mappa del sito
Italiano
EUR €
NUOVO
Claude & ChatGPT — Potenziati al massimo.
Tutti i documenti · 409+ strumenti AI · Setup in 30 s
Claude· ChatGPT· Cursor· Gemini· +50
Connetti ora
Piattaforma
Oltre 50 moduli e strumenti AI
Soluzioni
Settori, processi, rischi
Sviluppatore
API, SDK, documentazione
Risorse
Tutorial, blog, supporto
Azienda
Team, partner, carriere
Prezzi
Webhook

Webhook Eventi in tempo reale

Callback firmati HMAC per ogni evento di documento, lavoro, spazio di lavoro e attività. 22 tipi di eventi, ritentativi esponenziali, HTTPS raccomandato.

22+
Tipi di eventi
<1s
Latenza
HMAC
Firmato SHA-256
POST /your-endpoint
Intestazioni richiesta
X-PaperOffice-Event: document.processed
X-PaperOffice-Event-ID: a3b7f9c1d4e8b2a6
X-PaperOffice-Signature: sha256=9f8a2c…
Corpo JSON
{
  "event_type": "document.processed",
  "event_id": "a3b7f9c1d4e8b2a6",
  "timestamp": "2026-04-17T14:23:11Z",
  "subscription_id": 42,
  "data": { "pofid": "doc_01HZY8K3…" }
}
Firma verificata HMAC-SHA256 · ID evento registrato

Scelto dalle aziende leader nel mondo

Eventi disponibili

22 tipi di eventi, raggruppati per entità

Iscriviti a singoli eventi o usa il jolly * per tutto.

Documenti

14
  • documento.caricato Nuovo documento caricato in uno spazio di lavoro
  • documento.creato Alias per document.uploaded (compatibilità)
  • documento.elaborato Pipeline OCR/IDP completata con successo
  • documento.modificato Metadati, tag o contenuto aggiornati
  • documento.eliminato Documento spostato nel cestino
  • documento.ripristinato Documento recuperato dal cestino
  • document.moved Documento spostato tra spazi di lavoro
  • documento.versione_creata Nuova versione aggiunta a un documento esistente
  • documento.ciclo_di_vita_modificato Stato di conservazione/archiviazione modificato
  • documento.commento_aggiunto Commento pubblicato su un documento
  • documento.nota_aggiunta Nota interna allegata
  • documento.etichetta_aggiunta Tag assegnato a un documento
  • documento.sequestro_legale_applicato Blocco legale attivato (immutabile)
  • documento.sequestro_legale_rimosso Blocco legale rilasciato

Lavori

3
  • lavoro.completato Lavoro asincrono completato con successo
  • lavoro.fallito Lavoro asincrono fallito definitivamente
  • lavoro.in_corso Aggiornamento progresso durante lavori di lunga durata

Spazi di lavoro

2
  • spazio_di_lavoro.condiviso Spazio di lavoro condiviso con un utente o team
  • spazio_di_lavoro.condivisione_annullata Accesso allo spazio di lavoro revocato

Attività

3
  • attività.creata Nuova attività creata
  • attività.completata Attività contrassegnata come completata
  • attività.scaduta Attività scaduta rispetto alla data limite

Iscriviti a ["*"] per ricevere ogni evento del tuo account.

Payload e intestazioni

Ogni consegna segue lo stesso schema

Corpo JSON prevedibile, cinque intestazioni HTTP firmate, timestamp ISO-8601 UTC.

Corpo richiesta (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
    }
  }
}
Intestazioni richiesta HTTP
Content-Type application/json Sempre JSON, codificato UTF-8
User-Agent PaperOffice-Webhook/1.0 Identificatore fisso per allowlist firewall
X-PaperOffice-Event documento.elaborato Tipo di evento consegnato
X-PaperOffice-Event-ID a3b7f9c1… ID univoco a 128 bit. Da utilizzare per l'idempotenza.
X-PaperOffice-Subscription-ID 42 ID della sottoscrizione che riceve l'evento
X-PaperOffice-Signature sha256=… HMAC-SHA256 del corpo grezzo, codificato in esadecimale
Verifica firma

Verificare ogni consegna con HMAC-SHA256

Calcolare l'HMAC-SHA256 sul corpo grezzo della richiesta utilizzando il segreto condiviso, quindi confrontarlo con X-PaperOffice-Signature usando un confronto a tempo costante (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');
});
Riprova e consegna

Tre strategie di riprova, fino a 10 tentativi

Scegliere una politica per sottoscrizione. Ogni tentativo viene registrato con codice di stato, corpo della risposta e tempistica.

linear

Lineare

Crescita fissa: 30s, 60s, 90s, 120s, 150s…

none

Nessuno

Fire-and-forget. Nessun nuovo tentativo anche in caso di errori 5xx. Utile per hook di test.

Successo HTTP 2xx entro la finestra di timeout
Max tentativi 0–10 tentativi (predefinito 5)
Timeout 1.000–30.000 ms per tentativo (predefinito 10.000)
Registro consegne Ogni tentativo archiviato in webhook_deliveries per audit
API di gestione

9 endpoint sotto /latest/webhooks/

CRUD completo per sottoscrizioni, registri di consegna, sottoscrizioni job one-time e un endpoint di test — tutto OAuth2 Bearer, tutto pronto per MCP.

POST /webhooks/subscribe Creare una nuova sottoscrizione (illimitate per account) po_webhooks_subscribe
GET /webhooks/list Elencare tutte le sottoscrizioni dell'account po_webhooks_list
POST /webhooks/update Aggiornare una sottoscrizione esistente po_webhooks_update
POST /webhooks/delete Eliminazione soft di una sottoscrizione (registro consegne preservato) po_webhooks_delete
GET /webhooks/deliveries Recuperare il registro delle consegne con filtri (event_type, success_only) po_webhooks_deliveries
POST /webhooks/test Inviare un evento test.ping per verificare la consegna po_webhooks_test
POST /webhooks/subscribe-job Webhook one-time per uno specifico job_id po_webhooks_subscribe_job
GET /webhooks/job-subscriptions Elencare le sottoscrizioni scoped per job po_webhooks_job_subscriptions
GET /webhooks/info Eventi disponibili, endpoint, politiche di riprova, informazioni sulla firma po_webhooks_info
Sicurezza Enterprise

Progettato per essere blindato

HMAC-SHA256

Ogni payload firmato con il tuo segreto. Confronto a tempo costante obbligatorio.

Protezione SSRF

IP privati/interni, localhost ed endpoint metadati cloud bloccati in fase di sottoscrizione e dispatch.

Sicuro contro DNS rebinding

IP rivalidato al momento del dispatch, fissato tramite CURLOPT_RESOLVE.

HTTPS fortemente preferito

Accettati http e https. HTTPS raccomandato per la produzione.

Idempotenza Event-ID

Ogni consegna include un X-PaperOffice-Event-ID univoco. Effettuare dedupe lato utente.

Traccia di audit completa

Tutti i tentativi registrati: codice di stato, corpo della risposta, tempistica, messaggio di errore.

Limiti

Sottoscrizioni illimitate, comportamento di consegna completamente configurabile

Sottoscrizioni / account
Sottoscrizioni job attive
10.000 ms
Timeout predefinito
5
Max tentativi predefiniti

Disponibile su tutti i piani. Pay-per-use: 1 credito per consegna riuscita (HTTP 2xx). Riprove, eventi di test e consegne fallite sono gratuiti.

Inizia ora

Il tuo primo webhook in 60 secondi

Crea un endpoint, sottoscrivi via API, genera un evento di test. Tutto qui.

HMAC-SHA256 Back-off esponenziale Traccia di audit completa