Delivery

Each event is delivered as a separate signed HTTPS POST. Deliveries are asynchronous — they arrive within a short interval after the originating event, depending on platform load and the responsiveness of your endpoint.

Headers

Header Description
X-Webhook-Event Event name.
X-Webhook-Timestamp Unix seconds, used in the signature.
X-Webhook-Signature Lowercase hex HMAC-SHA256. See Security.
X-Webhook-Delivery-Id UUID, stable across retries — your idempotency key.
Content-Type Always application/json.

Expected response

Respond with any 2xx status (200–299). The body is ignored. Anything else is treated as a failed delivery and retried.

Request timeout

HI Platform waits up to 5 seconds for your response.

Acknowledge, then process. If your receiver does anything slow, return 2xx first and handle the event asynchronously. A timeout forces a retry, which can lead to double processing.

Retry policy

Failed deliveries are retried up to 10 total attempts (the initial delivery plus 9 retries) with exponential backoff and a small random offset.

Attempt Approximate delay since previous attempt
1 (initial delivery)
2 ~5 min
3 ~10 min
4 ~20 min
5 ~40 min
6 ~1 h 20 min
7 ~2 h 40 min
8 ~5 h 20 min
9 ~10 h 40 min
10 ~21 h 20 min

The total retry budget is roughly 42 hours. After the 10th attempt the delivery is marked failed and is not retried.

Any non-2xx response (including 4xx) and any transport error triggers a retry. If you want to drop a delivery without retries, accept it with 2xx and discard internally. HTTP redirects are not followed — a 30x response is treated as a failure.

Idempotency

Every delivery carries an X-Webhook-Delivery-Id header. The same ID is sent on every retry of the same event — use it to dedupe if your processing isn't already idempotent.

Ordering

Deliveries are independent. assessment.completed events for a participation typically arrive before its participation.completed, but ordering across deliveries is not guaranteed.

Cancellation

Deleting the webhook integration cancels any pending deliveries — they're never sent.

What's next