WEBHOOK

Flusso di eventi in tempo reale.

Facciamo una POST al tuo endpoint per ogni evento email. Verifica della firma, retry intelligente, garanzia di ordinamento.

Tipi di evento

  • message.sent Messaggio messo in coda.
  • message.delivered Messaggio consegnato al destinatario.
  • message.opened Il destinatario ha aperto il messaggio.
  • message.clicked Il destinatario ha cliccato un link nel messaggio.
  • message.bounced Messaggio respinto (hard/soft bounce).
  • message.complained Il destinatario ha segnalato il messaggio come spam.
  • message.unsubscribed Il destinatario si è disiscritto dalla lista.

Payload di esempio

{
  "id": "evt_01h5z...",
  "type": "message.delivered",
  "created_at": "2026-05-13T14:30:00Z",
  "data": {
    "message_id": "msg_01h5z...",
    "to": "[email protected]",
    "from": "[email protected]",
    "subject": "Welcome"
  },
  "signature": "v1,abc123..."
}

Verifica della firma

Ogni POST include un header X-SendNomi-Signature. HMAC-SHA256, firmato con body + timestamp. Verifica la firma con un confronto a tempo costante (crypto.timingSafeEqual).

Strategia di retry

Backoff esponenziale fino alla ricezione di un 2xx: 5s → 30s → 5m → 30m → 2h → 6h → 12h (8 tentativi in totale · 25 ore). Un 4xx viene trattato come errore permanente: nessun retry. 5xx e timeout sono soggetti a retry.