Skip to content

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

FieldTypePresenceDescription and constraints
$objectRootShift 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_hoursnumberOptionalBreak hours that are payable. Part of the hours-based summary group (see `shift_duration_hours`).
Greater than: 0
Format: double
shift_duration_hoursnumberOptionalTotal 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_idstringOptionalExternal 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_amountnumberOptionalThe 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_unitstringOptionalThe 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_hoursnumberOptionalTotal break duration in hours. Part of the hours-based summary group (see `shift_duration_hours`).
Greater than: 0
Format: double
total_payable_hoursnumberOptionalTotal payable working hours after break deductions. Part of the hours-based summary group (see `shift_duration_hours`).
Greater than: 0
Format: double

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.