---
title: "Register hours for 1 or more shift-worker combinations."
method: POST
path: "/public/hours-and-expenses/hirer/register-hours-for-shift-and-worker-simple-v1"
tags: ["Hours and expenses, for hirers"]
---

# Register hours for 1 or more shift-worker combinations.

`POST /public/hours-and-expenses/hirer/register-hours-for-shift-and-worker-simple-v1`

Register hours for 1 or more combinations of a shift and a worker. The hours will still have to be approved on the Maqqie platform by the hirer.

The type of the registered hours is based on the collective agreement (collectieve arbeidsovereenkomst, CAO) that applies to the worker and the shift. A single period being registered may contain multiple types, in which case the hours will be split into multiple periods.

All shifts must belong to the hirer that invokes this API, and a shift signup for each combination of shift and worker must exist.

## Request body

- SimpleHoursRegistrationForShiftAndWorkerRequestV1
  - `hoursRegistrations` SimpleHoursRegistrationForShiftAndWorkerV1[], required — The hours to be registered for shift-worker combinations (shift signups). Both shifts and workers may occur multiple times. Multiple combinations for the same shift and worker are also allowed.
    - `shiftId` integer, required — The ID of the shift for which to register hours. This shift must belong to the hirer that invokes this API. There must be a shift signup for this shift and the worker.
    - `workerId` integer, required — The ID of the worker for which to register hours. There must be a shift signup for the shift and this worker.
    - `deduplicationId` string, nullable — Clients (a specific account) are allowed to generate a unique ID for each worked period, and send this ID with the period. If the ID already exists in the database (implying that the period has already been registered), the period will not be registered again. Note that there is no check to see if the data sent with a deduplication ID matches the data already in our database. If the ID matches, it is assumed that the data sent with the ID is the same as the data already in the database.
    - `startTimestamp` string, date-time, required — The start timestamp must be earlier than the end timestamp. This field, the end timestamp and the break duration are used to calculate the actual hours that the worker worked: end timestamp - start timestamp - break duration.
    - `endTimestamp` string, date-time, required — The end timestamp must be later than the start timestamp. This field, the start timestamp and the break duration are used to calculate the actual hours that the worker worked: end timestamp - start timestamp - break duration.
    - `breakDurationInMinutes` integer, nullable — The total number of minutes the worker had breaks between the start and end timestamps. This duration must be less than the number of minutes between the start and end timestamps. This field, the start timestamp and the end timestamp are used to calculate the actual hours that the worker worked: end timestamp - start timestamp - break duration.

## Response `204`

The operation completed successfully.

## Other responses

- `400` — The request could not be processed. This could be due to a number of reasons: * The request does not have all required data. * Data in the request is invalid. * Data in the request is inconsistent. * The operation is not allowed given the current state of the data.
- `401` — The request did not contain credentials identifying the caller, or the provided credentials were invalid.
- `403` — The data that the request referred to is inaccessible to the caller.

---

[API](https://skmtc.net/maqqie/apis/maqqie-platform-public-api.md) · [All operations](https://skmtc.net/maqqie/apis/maqqie-platform-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maqqie/maqqie-platform-public-api/revisions/5cb82e369b70/schema)
