WEBHOOK

Echtzeit-Ereignis-Stream.

Wir senden für jedes E-Mail-Ereignis ein POST an Ihren eigenen Endpunkt. Signaturprüfung, smartes Retry, Reihenfolge-Garantie.

Ereignistypen

  • message.sent Nachricht in die Warteschlange gestellt.
  • message.delivered Nachricht an den Empfänger zugestellt.
  • message.opened Empfänger hat die Nachricht geöffnet.
  • message.clicked Empfänger hat auf einen Link in der Nachricht geklickt.
  • message.bounced Nachricht ist zurückgekommen (Hard/Soft Bounce).
  • message.complained Empfänger hat eine Spam-Beschwerde eingereicht.
  • message.unsubscribed Empfänger hat die Liste verlassen.

Beispiel-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": "Willkommen"
  },
  "signature": "v1,abc123..."
}

Signaturprüfung

Jedes POST trägt einen X-SendNomi-Signature-Header. HMAC-SHA256, signiert mit dem Body + Zeitstempel. Verifizieren Sie die Signatur mit einem konstantzeitigen Vergleich (crypto.timingSafeEqual).

Retry-Strategie

Exponentielles Backoff, bis ein 2xx empfangen wird: 5s → 30s → 5m → 30m → 2h → 6h → 12h (insgesamt 8 Versuche · 25 Stunden). Ein 4xx gilt als permanenter Fehler; kein Retry. 5xx und Timeouts sind dem Retry unterworfen.