Riferimento Webhook
Schemi dei payload degli eventi e configurazione dei Webhook
Riferimento Webhook
I Webhook inviano richieste HTTP POST al tuo endpoint quando si verificano eventi in Umbrella, così non devi interrogare periodicamente l’API per rilevare le modifiche.
Configurazione
- Vai su Dashboard > Impostazioni > Integrazioni > Webhook
- Fai clic su Aggiungi endpoint Webhook
- Inserisci l’URL HTTPS del tuo endpoint
- Seleziona gli eventi che vuoi ricevere
- Salva e conserva il segreto di firma (viene mostrato una sola volta)
Il tuo endpoint deve accettare richieste POST, restituire uno stato 2xx entro 30 secondi e accettare application/json.
Tipi di evento
Eventi delle polizze
| Evento | Descrizione |
|---|---|
policy.created | Il cliente ha acquistato una garanzia |
policy.activated | Lo stato della polizza è passato ad attivo |
policy.expired | La polizza ha raggiunto la data di scadenza |
policy.cancelled | Polizza annullata (rimborso o azione del commerciante) |
policy.voided | Polizza invalidata (annullamento dell’ordine o chargeback) |
Eventi dei sinistri
| Evento | Descrizione |
|---|---|
claim.submitted | Il cliente ha aperto un sinistro |
claim.approved | Il commerciante ha approvato un sinistro |
claim.denied | Il commerciante ha respinto un sinistro |
claim.resolved | Sinistro completamente risolto |
claim.evidence_uploaded | Prove allegate a un sinistro |
Eventi di registrazione
| Evento | Descrizione |
|---|---|
registration.submitted | Registrazione del prodotto inviata |
registration.approved | Registrazione approvata |
registration.denied | Registrazione respinta |
Eventi delle garanzie
| Evento | Descrizione |
|---|---|
warranty.created | Nuovo piano di garanzia creato |
warranty.updated | Piano di garanzia modificato |
warranty.activated | Piano di garanzia attivato |
warranty.deactivated | Piano di garanzia disattivato |
Struttura del payload
Ogni Webhook segue questo involucro:
{
"id": "evt_a1b2c3d4e5f6",
"type": "claim.submitted",
"timestamp": "2025-03-15T14:30:00.000Z",
"apiVersion": "1.3.9",
"orgId": "org_xyz789",
"data": { ... }
}
id— ID univoco dell’evento (usalo per la deduplicazione)type— tipo di eventotimestamp— quando si è verificato l’eventodata— payload specifico dell’evento con i dettagli della risorsa interessata (polizza, sinistro, registrazione e così via)
Verifica della firma
Ogni richiesta include un’intestazione X-Umbrella-Signature con un hash HMAC-SHA256 del corpo della richiesta. Verificala prima di elaborare gli eventi.
const crypto = require('crypto');
function verifyWebhookSignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload, 'utf8')
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
Criteri di ripetizione
Le consegne non riuscite (risposta non 2xx, timeout, errore di connessione) vengono ritentate con backoff esponenziale:
| Tentativo | Ritardo |
|---|---|
| 2° | 1 minuto |
| 3° | 5 minuti |
| 4° | 30 minuti |
| 5° | 2 ore |
| 6° | 6 ore |
| 7° (ultimo) | 12 ore |
Dopo 7 tentativi falliti, la consegna viene contrassegnata come non riuscita. Una risposta 410 Gone disattiva l’endpoint in modo permanente.
Test
- Vai su Dashboard > Impostazioni > Integrazioni > Webhook
- Fai clic sul tuo endpoint, poi su Invia test
- Seleziona un tipo di evento ed esamina il risultato della consegna
La pagina di dettaglio del Webhook mostra anche un registro delle consegne recenti, con codici di stato e tempi.
id dell'evento per la deduplicazione, perché i nuovi tentativi possono consegnare lo stesso evento più di una volta.
Correlati
- Autenticazione — Sicurezza e credenziali dell’API
- API Sinistri — Endpoint per la gestione dei sinistri
- API Polizze — Endpoint per la gestione delle polizze


