job.succeeded, job.failed and inspection-stage events so you do not need to poll every job.
Verify every request
Compute HMAC-SHA256 over the exact string
<timestamp>.<raw request body> with the webhook endpoint secret. Compare signatures in constant time and reject timestamps older than five minutes.
Respond and deduplicate
Return any2xx only after durably recording or processing the event. CarHub retries non-2xx deliveries. Use Carhub-Event-Id as your idempotency key because retries represent the same event.
The endpoint secret is returned only when the destination is created. Store it as securely as your API key.