Skip to main content

Attendance Shifts API

Summary

Four direct operations list, create, update, and deactivate shifts. No scheduling or default-shift API exists.

Audience

Frontend/backend developers, QA engineers, implementation partners, and support engineers.

Reference Content

Authentication: Bearer and Time Office administration context expected; exact direct-route authorization requires confirmation. Tenant: required. Response: direct envelope. Maturity: Direct/Shadow, Foundation/Transitional.

OperationMethod and public routeContractResponses and behaviorSafe example
List shiftsGET /attendance/shiftsOptional includeInactive200 ApiResponse<ShiftDto[]>; read-onlyGET …?includeInactive=false → data:[]; handled tenant failure → 400.
Create shiftPOST /attendance/shiftsShiftSaveRequest200 ApiResponse<ShiftDto>; 400 invalid; 409 duplicate active name; creates audit/timeline, no Attendance eventFictional body {"name":"Example Shift","startTime":"08:30","endTime":"17:00","graceMinutes":0,"standardHours":7.5,"overtimeAfterHours":9} → 200; duplicate → 409.
Update shiftPUT /attendance/shifts/{id:int}Integer id; ShiftSaveRequest200; 400 invalid; 404 missing; 409 duplicate; audit/timelineFictional id/body → 200; unknown id → 404.
Deactivate shiftDELETE /attendance/shifts/{id:int}Integer id; no body200 ApiResponse<ShiftDto>; 404 missing; 409 active assignments; soft deactivation plus audit/timelineDELETE …/9001 → 200; assigned shift → 409.

Request fields: name, startTime, endTime, graceMinutes, standardHours, overtimeAfterHours, optional isNightShift, optional update-only isActive. Times accept confirmed time-of-day formats. Create is active; overnight can be derived when the window crosses midnight. Domain validation covers name, time, grace, and hour constraints without publishing customer values.

Response fields: id, compatibility identity, name, start/end, grace, standard/overtime hours, night-shift flag, active flag, and scheduled hours. Delete is not physical deletion. No get-by-id, search text, pagination, default shift, rotation, roster publication, or break endpoint exists.

Source References

  • microservices/src/attendance-service/Api/AttendanceShiftPolicyEndpoints.cs
  • microservices/src/attendance-service/Application/TimeOffice/ShiftPolicyDtos.cs
  • microservices/src/attendance-service/Application/Services/ShiftPolicyCommands.cs
  • microservices/src/attendance-service/Application/Services/ShiftPolicyQueries.cs

See Also

Keywords

  • Attendance API
  • Attendance Shifts API

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-15
  • Review cycle: Quarterly