Deel: Create shifts — request body — body data shifts item shift type: REGULAR summary
Create shifts: request body, field body / data / shifts / item / shift_type: REGULAR / summary. Complete fields and constraints for contract 2026-10-27.
API reference · Contract 2026-10-27
SDK schema: Create shifts — request body — body / data / shifts / item / shift_type: REGULAR summary
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Shift summary. The fields here form two mutually exclusive groups — hours-based (`shift_duration_hours`, `total_break_hours`, `payable_break_hours`, `total_payable_hours`) and unit-amount (`time_amount`, `time_unit`) — and the schema cannot express this as a strict either/or because which group is required depends on the shift rate (`shift_rate_external_id`) type, resolved server-side: PER_UNIT_FLAT_RATE requires the unit-amount group, PER_HOUR_FLAT_RATE requires the hours-based group, and MULTIPLIER_PERCENTAGE (or no shift rate) accepts either group but not a mix of both. Sending fields from both groups, or the wrong group for the rate type, is rejected. |
payable_break_hours | number | Optional | Break hours that are payable. Part of the hours-based summary group (see `shift_duration_hours`). Greater than: 0 Format: double |
shift_duration_hours | number | Optional | Total duration of the shift in hours. Part of the hours-based summary group, used when the shift rate is PER_HOUR_FLAT_RATE (or MULTIPLIER_PERCENTAGE/omitted, where either group is accepted). Mutually exclusive with `time_amount`/`time_unit` — do not send both groups. Greater than: 0 Format: double |
shift_rate_external_id | string | Optional | External ID of the shift rate associated with this shift. Its type (PER_UNIT_FLAT_RATE, PER_HOUR_FLAT_RATE, or MULTIPLIER_PERCENTAGE) determines which of the two field groups below is required — see the group descriptions. Maximum length: 48 Minimum length: 8 |
time_amount | number | Optional | The amount of time for the shift. Part of the unit-amount summary group, required when the shift rate is PER_UNIT_FLAT_RATE (or MULTIPLIER_PERCENTAGE/omitted, where either group is accepted). Mutually exclusive with `shift_duration_hours`/`total_break_hours`/`payable_break_hours`/`total_payable_hours` — do not send both groups. Greater than: 0 Format: double |
time_unit | string | Optional | The unit of time for the shift (DAY, HOUR, MONTH, WEEK). Part of the unit-amount summary group (see `time_amount`). One of: DAY, HOUR, MONTH, WEEK |
total_break_hours | number | Optional | Total break duration in hours. Part of the hours-based summary group (see `shift_duration_hours`). Greater than: 0 Format: double |
total_payable_hours | number | Optional | Total payable working hours after break deductions. Part of the hours-based summary group (see `shift_duration_hours`). Greater than: 0 Format: double |