Update an attendance
Use this endpoint to change an existing attendance. The booking rules are checked before writing; violations come back as 422 with per-field messages.
Request
PATCH /api/v1/attendances/:id
curl --request PATCH \
--url 'https://www.zep-online.de/zepinstanz/next/api/v1/attendances/1234' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"employee_id": "max.mustermann",
"date": "2026-07-24",
"from": "09:00:00",
"to": "12:30:00",
"project_id": 16,
"project_task_id": 7,
"activity_id": "im",
"note": "Konzept überarbeitet"
}'Parameters
- id (integer, required): The ID of the attendance to change
Required fields
- employee_id (string): The employee’s username
- date (date | Y-m-d): The day of the booking
- from (time | H:i:s): Start
- to (time | H:i:s): End.
00:00:00means end of day and counts towards the following day - project_id (integer): The project
- project_task_id (integer): The project task
- activity_id (string): The activity
Common reasons for rejection
The check matches the one in the ZEP core that the web interface, SOAP and Clock also pass through:
- day in a closed month, past the approval date, or outside the recording period
- non-working day or full-day holiday for that employee
- day outside the employment period
- day outside the runtime of the project, task or ticket
- planned hours exceeded
Response
{
"data": {
"id": 1234,
"date": "2026-07-24T00:00:00.000000Z",
"from": "09:00:00",
"to": "12:30:00",
"end_date": "2026-07-24",
"employee_id": "max.mustermann",
"duration": 3.5,
"note": "Konzept überarbeitet",
"billable": true,
"project_id": 16,
"project_task_id": 7,
"activity_id": "im",
"created": "2026-07-24T12:31:00.000000Z",
"modified": "2026-07-24T12:31:00.000000Z"
}
}