Create an endpoint
secret. It is shown only once, so store it now.
employerIds and states narrow OSHA events
and are ignored for answers. Only events that happen after you create the endpoint are sent.
What you receive
data.path is the OSHA row behind the event, relative to /api/v2, as in the
employer guide.
Verify and respond
Each request has anEffective-Signature header like t=1761136867,v1=5257a8…. Compute an
HMAC-SHA256 of <t>.<raw body> with your secret and compare it to v1. Reject requests whose t
is more than five minutes old.
"disabledReason": "failing". An event can arrive more than
once or out of order, so skip IDs you have already handled.
To check your receiver, send a test event with
POST /api/v2/webhook-endpoints/{id}/test. Webhooks have no usage charge.