Come Exoid firma le richieste
- Exoid firma il corpo della richiesta non parsato (il raw body, byte per byte) con HMAC-SHA256, usando il Webhook Secret della campagna.
- La firma viaggia nell’header
X-Signaturenel formatosha256=<hex>. - Il tuo endpoint deve ricreare la firma e confrontarla con quella ricevuta. Se non corrisponde, rifiuta la richiesta.
Procedura di verifica
1
Leggi il raw body
Ricevi il corpo come Buffer non parsato, senza applicare alcun middleware JSON.
2
Estrai l'header
Prendi il valore di
X-Signature dalla richiesta in ingresso.3
Ricalcola l'HMAC
Calcola
HMAC-SHA256 del raw body con il Webhook Secret della campagna e formatta il risultato come sha256=<hex>.4
Confronta
Se la firma calcolata non coincide con quella ricevuta, rispondi
401 e interrompi l’elaborazione.5
Elabora il payload
Solo a questo punto esegui
JSON.parse sul corpo e usa i dati.Esempio in Node.js (Express)
verifica-firma.js
Un endpoint che risponde
401 non riceve ritentativi: 401 è un errore permanente. Assicurati che la verifica sia corretta prima di andare in produzione, altrimenti perdi gli eventi.Prossimi passi
Struttura del payload
Il modello dati TypeScript, i tipi di risposta e un payload di esempio.
Configurazione
Dove imposti il secret e come lanci una richiesta di test.

