WEBHOOK

Flux d'événements en temps réel.

Nous envoyons un POST vers votre propre endpoint à chaque événement e-mail. Vérification de signature, relance intelligente, garantie d'ordre.

Types d'événements

  • message.sent Message mis en file d’attente.
  • message.delivered Message remis au destinataire.
  • message.opened Le destinataire a ouvert le message.
  • message.clicked Le destinataire a cliqué sur un lien du message.
  • message.bounced Message rejeté (hard/soft bounce).
  • message.complained Le destinataire a signalé le message comme spam.
  • message.unsubscribed Le destinataire a quitté la liste.

Exemple de payload

{
  "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..."
}

Vérification de signature

Chaque POST comporte un en-tête X-SendNomi-Signature. HMAC-SHA256, signé avec le corps + l'horodatage. Vérifiez la signature par une comparaison à temps constant (crypto.timingSafeEqual).

Stratégie de relance

Backoff exponentiel jusqu'à réception d'un 2xx : 5 s → 30 s → 5 min → 30 min → 2 h → 6 h → 12 h (8 tentatives au total · 25 heures). Un 4xx est considéré comme une erreur permanente ; aucune relance. Les 5xx et les timeouts font l'objet d'une relance.