---
title: "shift.paid event"
method: POST
path: "shift.paid"
tags: ["Webhooks"]
---

# shift.paid event

`POST shift.paid` (webhook)

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.

## Payload

- object
  - `id` string, required: Stable id for this delivery; the same id repeats on every retry, so use it to dedupe.
  - `event` string, required: The event type, e.g. assignment.updated.
  - `data` Shift, required
    - `object` 'shift', required
    - `id` string, required
    - `worker_id` string, nullable
    - `assignment_id` string, nullable
    - `pay_cycle_id` string, nullable
    - `date` string, date, nullable
    - `status` 'draft' | 'submitted' | 'approved' | 'null', nullable
    - `description` string, nullable
    - `reference_number` string, nullable
    - `submission` ShiftSubmission
      - `object` 'shift_submission', required
      - `auto_submitted` boolean, nullable
      - `submitted_at` string, date-time, nullable
    - `hours` ShiftHours
      - `object` 'shift_hours', required
      - `total_hours` number, nullable
      - `payable_hours` number, nullable
      - `reported_by_employee` EmployeeReportedHours
        - `object` 'employee_reported_hours', required
        - `break` number, nullable
        - `holiday_non_worked` number, nullable
        - `starts_at` string, date-time, nullable
        - `ends_at` string, date-time, nullable
      - `reported_by_employer` EmployerReportedHours
        - `object` 'employer_reported_hours', required
        - `break_override` number, nullable
        - `holiday_non_worked_override` number, nullable
        - `total_hours_worked_override` number, nullable
    - `approval` ShiftApproval
      - `object` 'shift_approval', required
      - `approved_at` string, date-time, nullable
      - `auto_approved` boolean, nullable
      - `approved_by` PersonSummary
        - `object` 'person', required
        - `id` string, required
        - `full_name` string, nullable
        - `first_name` string, nullable
        - `last_name` string, nullable
        - `email` string, nullable
        - `phone` string, nullable

## Acknowledgement `200`

Return any 2xx to acknowledge receipt; non-2xx or a timeout is retried.

---

[API](https://skmtc.dev/hireart/apis/hireart-api.md) - [All operations](https://skmtc.dev/hireart/apis/hireart-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hireart/apis/hireart-api/revisions/41935c8fd584?raw)
