Ceyu

API webhooks

Webhooks sind signiert, werden begrenzt wiederholt, sind nachvollziehbar und vor jeder Zustellung erneut per DNS geprüft.

Öffentliches HTTPS-Ziel registrieren

Das Ziel muss HTTPS auf Port 443 verwenden und ausschließlich in öffentliche Adressen auflösen. Weiterleitungen, private Netze, Ceyu-eigene Hosts und unsichere CNAME-Ketten werden abgelehnt. Die URL muss auf die Prüfzustellung mit 2xx antworten.

Vor dem Parsen prüfen

Lies den exakten Rohinhalt, prüfe Ceyu-Signature mit dem einmal ausgegebenen Geheimnis, erzwinge das standardmäßige Fünf-Minuten-Fenster und parse erst danach JSON. Bewahre während der 24-stündigen Rotation beide Geheimnisse auf.

await verifyWebhookSignature({
  rawBody,
  signature: request.headers.get("Ceyu-Signature") ?? "",
  secret: process.env.CEYU_WEBHOOK_SECRET,
});

Wiederholungen und Fehlersuche

Antworte schnell mit 2xx und verschiebe langsame Arbeit in eine Warteschlange. Die Ereignisansicht und GET /v1/events/{id} zeigen begrenzte Antwortauszüge, Dauer und Fehlercodes jedes Versuchs. Sende ein aufbewahrtes Ereignis mit POST /v1/events/{id}/resend erneut.

Synchronisationsschleifen verhindern

Aktiviere exclude_own_events, wenn eine Integration Änderungen zu Ceyu zurückschreibt. Speichere Ereignis-IDs außerdem idempotent, damit eine wiederholte Zustellung dieselbe externe Änderung nie doppelt anwendet.