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.
| Operation | Method and public route | Contract | Responses and behavior | Safe example |
|---|---|---|---|---|
| List shifts | GET /attendance/shifts | Optional includeInactive | 200 ApiResponse<ShiftDto[]>; read-only | GET …?includeInactive=false → data:[]; handled tenant failure → 400. |
| Create shift | POST /attendance/shifts | ShiftSaveRequest | 200 ApiResponse<ShiftDto>; 400 invalid; 409 duplicate active name; creates audit/timeline, no Attendance event | Fictional body {"name":"Example Shift","startTime":"08:30","endTime":"17:00","graceMinutes":0,"standardHours":7.5,"overtimeAfterHours":9} → 200; duplicate → 409. |
| Update shift | PUT /attendance/shifts/{id:int} | Integer id; ShiftSaveRequest | 200; 400 invalid; 404 missing; 409 duplicate; audit/timeline | Fictional id/body → 200; unknown id → 404. |
| Deactivate shift | DELETE /attendance/shifts/{id:int} | Integer id; no body | 200 ApiResponse<ShiftDto>; 404 missing; 409 active assignments; soft deactivation plus audit/timeline | DELETE …/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.csmicroservices/src/attendance-service/Application/TimeOffice/ShiftPolicyDtos.csmicroservices/src/attendance-service/Application/Services/ShiftPolicyCommands.csmicroservices/src/attendance-service/Application/Services/ShiftPolicyQueries.cs
Related Articles
See Also
Keywords
- Attendance API
- Attendance Shifts API
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly