Attendance Policies API
Summary
Three direct operations list, create, and update attendance policies with embedded policy rules. There is no separate policy-rule API family.
Audience
Frontend/backend developers, QA engineers, architects, and implementation partners.
Reference Content
Authentication: Bearer and Time Office administration context expected; exact enforcement requires confirmation. Tenant: required. Maturity: Direct/Shadow, Foundation/Transitional.
| Operation | Method and public route | Contract | Responses and behavior | Safe example |
|---|---|---|---|---|
| List policies | GET /attendance/policies | Optional includeInactive | 200 ApiResponse<AttendancePolicyDto[]>; includes embedded rules; read-only | GET …?includeInactive=false → data:[]; handled tenant failure → 400. |
| Create policy | POST /attendance/policies | AttendancePolicySaveRequest | 200 ApiResponse<AttendancePolicyDto>; 400 invalid; 409 duplicate name; audit/timeline, no Attendance event | Fictional non-customer body with name, hour categories, flags, and optional rules → 200; duplicate → 409. |
| Update policy | PUT /attendance/policies/{id:int} | Integer id; AttendancePolicySaveRequest | 200; 400 invalid/inactive default; 404 missing; 409 duplicate; audit/timeline | Fictional id/body → 200; unknown id → 404. |
Policy request fields are name, standardDailyHours, halfDayThresholdHours, fullDayThresholdHours, lateGraceMinutes, overtimeAfterHours, shortfallEnabled, isDefault, optional update-only isActive, and optional rules. Null rules preserve existing rules; a supplied list replaces them.
Each embedded rule has ruleKey, ruleType, comparisonOperator, threshold, resultStatus, sequence, and isActive. Domain validation governs supported types/operators/statuses, unique keys/sequences, and numeric constraints. Exact tenant values are intentionally omitted. One active default is maintained; an inactive policy cannot become default.
Responses return the same policy categories plus identity, active/default state, and embedded rule identities. No delete, get-by-id, clone, effective-date, employee assignment, or independent rule CRUD operation 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.csmicroservices/src/attendance-service/Domain/TimeOffice/AttendancePolicy.cs
Related Articles
See Also
Keywords
- Attendance API
- Attendance Policies API
Revision Information
- Status: Draft
- Last reviewed: 2026-07-15
- Review cycle: Quarterly