Tijd & aanwezigheid
Werktijd, verlof, roosters en vakantiedagen — registreer en lees aanwezigheid programmatisch.
Werktijd
Endpoints
| GET | /employee-working-hours | Haalt de verzameling WorkTime-resources op. |
| POST | /employee-working-hours | Maakt een WorkTime-resource aan. |
| GET | /employee-working-hours/{id} | Haalt een WorkTime-resource op. |
| PATCH | /employee-working-hours/{id} | Werkt de WorkTime-resource bij. |
| DELETE | /employee-working-hours/{id} | Verwijdert de WorkTime-resource. |
| GET | /work-times | Haalt de verzameling WorkTime-resources op. |
| POST | /work-times | Maakt een WorkTime-resource aan. |
| GET | /work-times/{id} | Haalt een WorkTime-resource op. |
| PATCH | /work-times/{id} | Werkt de WorkTime-resource bij. |
| DELETE | /work-times/{id} | Verwijdert de WorkTime-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| date* | string (date-time) | |
| seconds* | integer | |
| description | stringnull | |
| projectTask | string,null (iri-reference) | Optional link to a {@see ProjectTask}. Nullable; existing rows have no link. Set by the Surface 1 picker chip and by Surface 2's close-and-log panel. The validator {@see \App\Validator\WorkTime\WorkTimeProjectTaskConsistencyConstraint} enforces that projectTask.project === workTime.project when this FK is set. On ProjectTask deletion the column is SET NULL — the time logged is preserved, the link is forgotten. |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| deleted | boolean | Check if the entity has been soft deleted. |
Vakantiedag
Endpoints
| GET | /holidays | Haalt de verzameling Holiday-resources op. |
| POST | /holidays | Maakt een Holiday-resource aan. |
| GET | /holidays/{id} | Haalt een Holiday-resource op. |
| PATCH | /holidays/{id} | Werkt de Holiday-resource bij. |
| DELETE | /holidays/{id} | Verwijdert de Holiday-resource. |
| GET | /holidays/active | Haalt de verzameling Holiday-resources op. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | integer | |
| type* | string | #4548. `Holiday` is writable directly (`holiday:create`), so it carries the same unbounded-free-text defect the request did. `max` tracks `length`. |
| employee* | string (iri-reference) | |
| manager | string (iri-reference) | |
| description | stringnull | #4548, and it is reachable two ways: written directly through `holiday:create`, and copied from the accepted request by `HolidayRequestDecider:47`. Both columns are VARCHAR(255), so bounding the request at 255 keeps that copy safe — this bounds the direct path. |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | |
| requestedSeconds | integernull | |
| notify | boolean | Should this absence tell the employee it was created? (#4705) |
| payrollEligible | boolean | May payroll act on this absence? (#4017) |
| holidayRequests | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| employeeFullname | string | |
| employeeReversedFullname | string | |
| relatedEmployee | string,null (iri-reference) | |
| deleted | boolean | Check if the entity has been soft deleted. |
Rooster
Endpoints
| GET | /schedules | Haalt de verzameling Schedule-resources op. |
| POST | /schedules | Maakt een Schedule-resource aan. |
| GET | /schedules/{id} | Haalt een Schedule-resource op. |
| PATCH | /schedules/{id} | Werkt de Schedule-resource bij. |
| GET | /schedules/plan/{date} | Haalt de verzameling Schedule-resources op. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| name | string | |
| description | stringnull | |
| numberOfDays | integer | |
| regular | boolean | |
| overwriteBankHolidays | boolean | |
| scheduleRanges | array | |
| scheduleEmployees | array |
Feestdag
Endpoints
| GET | /bank-holidays | Haalt de verzameling BankHoliday-resources op. |
| POST | /bank-holidays | Maakt een BankHoliday-resource aan. |
| GET | /bank-holidays/{id} | Haalt een BankHoliday-resource op. |
| PATCH | /bank-holidays/{id} | Werkt de BankHoliday-resource bij. |
| DELETE | /bank-holidays/{id} | Verwijdert de BankHoliday-resource. |
| GET | /holiday-days-frees | Haalt de verzameling BankHoliday-resources op. |
| POST | /holiday-days-frees | Maakt een BankHoliday-resource aan. |
| GET | /holiday-days-frees/{id} | Haalt een BankHoliday-resource op. |
| PATCH | /holiday-days-frees/{id} | Werkt de BankHoliday-resource bij. |
| DELETE | /holiday-days-frees/{id} | Verwijdert de BankHoliday-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| date* | string | |
| publicNotes | stringnull | |
| yearFrom | integernull | |
| yearTo | integernull |
Verlofaanvraag
Endpoints
| GET | /holiday-requests | Haalt de verzameling HolidayRequest-resources op. |
| POST | /holiday-requests | Maakt een HolidayRequest-resource aan. |
| GET | /holiday-requests/{id} | Haalt een HolidayRequest-resource op. |
| PATCH | /holiday-requests/{id} | Werkt de HolidayRequest-resource bij. |
| DELETE | /holiday-requests/{id} | Verwijdert de HolidayRequest-resource. |
| POST | /holiday-requests/{id}/approve | Maakt een HolidayRequest-resource aan. |
| POST | /holiday-requests/{id}/reject | Maakt een HolidayRequest-resource aan. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | integer | |
| status | string | |
| employee | string (iri-reference) | |
| holiday | string,null (iri-reference) | |
| type* | string | Same defect, same processor, same flush (#4548). `type` is writable in the `holiday_request:create` group and nothing bounded it, so a 65-character value produced the identical SQLSTATE[22001]. Sentry only caught `description` because that is the one a user types freely. |
| description | stringnull | THE LENGTH IS THE COLUMN WIDTH, NOT A TASTE (#4548). Without it an over-long note travelled to MySQL and came back as `SQLSTATE[22001] … Data too long for column 'description'` — a fatal 500 from `HolidayRequestCreateProcessor:118`'s flush(), losing the request and telling the user nothing (Sentry PHP-SYMFONY-T7, prod). |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | |
| requestedSeconds | integernull | |
| holidayRequestLogs | array | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| requestedAt | datetime |
Verloftype
Endpoints
| GET | /holiday-types | Haalt de verzameling HolidayType-resources op. |
| POST | /holiday-types | Maakt een HolidayType-resource aan. |
| GET | /holiday-types/{id} | Haalt een HolidayType-resource op. |
| PATCH | /holiday-types/{id} | Werkt de HolidayType-resource bij. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| status | string | |
| name* | string | |
| color | string | THE API HAS TO ACCEPT ITS OWN OUTPUT (#4407). |
| descriptionRequired | boolean | |
| icon | stringnull | |
| reducesWorkingTime | boolean | Does an absence of this type reduce the month's expected working hours? |
| requiresApproval | boolean | Does an absence of this type have to be approved by somebody? (#5068) |
Verlofdagenlimiet
Endpoints
| GET | /holiday-days-limits | Haalt de verzameling HolidayDaysLimit-resources op. |
| POST | /holiday-days-limits | Maakt een HolidayDaysLimit-resource aan. |
| GET | /holiday-days-limits/{id} | Haalt een HolidayDaysLimit-resource op. |
| PATCH | /holiday-days-limits/{id} | Werkt de HolidayDaysLimit-resource bij. |
| DELETE | /holiday-days-limits/{id} | Verwijdert de HolidayDaysLimit-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| seconds* | integer | Leave allowance in SECONDS, not whole days (#3763). |
| holidayType | string,null (iri-reference) | |
| variant* | string | |
| allowRequestWhenUsed | boolean | NOT SERIALISED, AND THAT IS THE FIX (#4361). Do not re-add `#[Groups]`. |
| dateFrom | string (date-time) | |
| notes | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| notApplicableReason | stringnull | Why this entitlement will not take effect yet, or NULL if it will (#4443). |
| vacationLimit | boolean | Is this row the ANNUAL LEAVE entitlement, as opposed to a granted balance of some other type (#4165)? |
| relatedEmployee | string,null (iri-reference) |
Standaard verlofdagenlimiet
Endpoints
| GET | /holiday-days-limit-defaults | Haalt de verzameling HolidayDaysLimitDefault-resources op. |
| POST | /holiday-days-limit-defaults | Maakt een HolidayDaysLimitDefault-resource aan. |
| GET | /holiday-days-limit-defaults/{id} | Haalt een HolidayDaysLimitDefault-resource op. |
| PATCH | /holiday-days-limit-defaults/{id} | Werkt de HolidayDaysLimitDefault-resource bij. |
| DELETE | /holiday-days-limit-defaults/{id} | Verwijdert de HolidayDaysLimitDefault-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | string | |
| holidayType | string (iri-reference) | |
| seconds* | integer | Default leave allowance in SECONDS, not whole days (#3763). This entity moves with `HolidayDaysLimit` rather than after it: both are returned through the same line in `HolidaysHelper::getHolidayDaysLimit()`, so leaving one in days would put two units on one code path. |
| variant* | string | |
| allowRequestWhenUsed | boolean | NOT SERIALISED (#4361) — see the full reasoning on {@see HolidayDaysLimit::$allowRequestWhenUsed}. Do not re-add `#[Groups]`. |
| dateFrom | string (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Rooster medewerker
Endpoints
| GET | /schedule-employees | Haalt de verzameling ScheduleEmployee-resources op. |
| POST | /schedule-employees | Maakt een ScheduleEmployee-resource aan. |
| GET | /schedule-employees/{id} | Haalt een ScheduleEmployee-resource op. |
| PATCH | /schedule-employees/{id} | Werkt de ScheduleEmployee-resource bij. |
| DELETE | /schedule-employees/{id} | Verwijdert de ScheduleEmployee-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| employee | string (iri-reference) | |
| schedule | string (iri-reference) | |
| dateFrom | string (date-time) | |
| dateTo | string,null (date-time) | |
| type | string | |
| notifiedAt | string,null (date-time) |
Roosterperiode
Endpoints
| GET | /schedule-ranges | Haalt de verzameling ScheduleRange-resources op. |
| POST | /schedule-ranges | Maakt een ScheduleRange-resource aan. |
| GET | /schedule-ranges/{id} | Haalt een ScheduleRange-resource op. |
| PATCH | /schedule-ranges/{id} | Werkt de ScheduleRange-resource bij. |
| DELETE | /schedule-ranges/{id} | Verwijdert de ScheduleRange-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | string | |
| schedule | object | |
| day | integer | |
| timeFrom | integer | |
| timeTo | integer | |
| name | stringnull |
Dienstreis
Endpoints
| GET | /delegations | Haalt de verzameling Delegation-resources op. |
| POST | /delegations | Maakt een Delegation-resource aan. |
| GET | /delegations/{id} | Haalt een Delegation-resource op. |
| PATCH | /delegations/{id} | Werkt de Delegation-resource bij. |
| DELETE | /delegations/{id} | Verwijdert de Delegation-resource. |
Schema-velden
| Veld | Type | Beschrijving |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project | string,null (iri-reference) | Nullable: a historical trip may name no project, and it must still be recorded. |
| projectTask | string,null (iri-reference) | |
| dateFrom* | string (date-time) | |
| dateTo* | string (date-time) | |
| seconds | integernull | Optional: the source history carries days, not hours. |
| description | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| days | integer | Calendar days covered, INCLUSIVE — a trip that starts and ends on the same day is one day, not zero. This is the unit the travel analytics report, because the source history counts days rather than hours. |
| deleted | boolean | Check if the entity has been soft deleted. |