Webhooks
shift.approved event
The payload is the resource's current state at delivery time, rebuilt per attempt. The POST body is a signed envelope { id, event, data }, where data is the schema below. Verify the X-HireArt-Signature header before trusting the body — see the Webhooks section overview for how.
postWebhookshift.approved
Payload
Example payload
{
"id": "d47e1f8a-3c2b-4a90-9f6d-8b21c4e5f0a1:42",
"event": "shift.approved",
"data": {
"id": "97811bd6-539f-4a58-8be3-6bbe3acfdae0",
"worker_id": "1ccf6e61-376c-47d3-8a63-a8ee112e83a2",
"assignment_id": "1aecf7c8-9d70-433a-9bb5-473cf4907a86",
"pay_cycle_id": "1aecf7c8-9d70-433a-9bb5-473cf4907a86",
"status": "draft",
"description": "Handle inbound customer inquiries via phone, email, and chat.",
"reference_number": "PO-12345",
"submission": {
"submitted_at": "2024-06-15T14:30:00Z"
},
"hours": {
"total_hours": 7.5,
"payable_hours": 15.5,
"reported_by_employee": {
"break": 0.5,
"holiday_non_worked": 8,
"starts_at": "2024-06-15T14:30:00Z",
"ends_at": "2024-06-15T14:30:00Z"
},
"reported_by_employer": {
"break_override": 0.5,
"holiday_non_worked_override": 8,
"total_hours_worked_override": 7.5
}
},
"approval": {
"approved_at": "2024-06-15T14:30:00Z",
"approved_by": {
"id": "97811bd6-539f-4a58-8be3-6bbe3acfdae0",
"full_name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@example.com",
"phone": "+1 (555) 555-5555"
}
}
}
}Response
Return any 2xx to acknowledge receipt; non-2xx or a timeout is retried.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.