Skip to main content

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.

OperationMethod and public routeContractResponses and behaviorSafe example
List policiesGET /attendance/policiesOptional includeInactive200 ApiResponse<AttendancePolicyDto[]>; includes embedded rules; read-onlyGET …?includeInactive=false → data:[]; handled tenant failure → 400.
Create policyPOST /attendance/policiesAttendancePolicySaveRequest200 ApiResponse<AttendancePolicyDto>; 400 invalid; 409 duplicate name; audit/timeline, no Attendance eventFictional non-customer body with name, hour categories, flags, and optional rules → 200; duplicate → 409.
Update policyPUT /attendance/policies/{id:int}Integer id; AttendancePolicySaveRequest200; 400 invalid/inactive default; 404 missing; 409 duplicate; audit/timelineFictional 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.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
  • microservices/src/attendance-service/Domain/TimeOffice/AttendancePolicy.cs

See Also

Keywords

  • Attendance API
  • Attendance Policies API

Revision Information

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