Skip to content

Signed webhooks

Emissary produces outbound events using a durable delivery/outbox boundary and records attempts. A delivery is at-least-once from the consumer’s perspective: the receiver must be idempotent and maintain durable event deduplication.

  • Read the original request-body bytes before parsing or reserializing JSON.
  • Verify the Webhook-Timestamp and Webhook-Signature using the endpoint secret and documented HMAC input.
  • Enforce the timestamp tolerance and constant-time signature comparison.
  • Store a durable event ID and processing result before acknowledging success.
  • Use delivery/attempt reads in the portal/API to diagnose delivery outcomes.

Each official SDK includes a webhook verification example. Signature verification authenticates the event body; it does not authorize your application’s business action by itself.