Leave Management API
Manage leave requests, view calendars, and handle leave approvals through the CitoHR API.
Get Leave Requests
Retrieve leave requests for a user.
GET /api/leave Query parameters:
userId- Filter by user ID (optional, requires MANAGER or ADMIN role to access other users)
Authorization: Requires valid session. Users can view their own leave requests. MANAGER and ADMIN roles can view team members' requests.
Create Leave Request
Create a new leave request.
POST /api/leave Request body:
{
"startDate": "2024-01-15T00:00:00.000Z",
"endDate": "2024-01-20T00:00:00.000Z",
"type": "ANNUAL",
"notes": "Family vacation"
} Leave Types: ANNUAL, SICK, UNPAID, MATERNITY, PATERNITY, BEREAVEMENT, OTHER
Update Leave Request
Update an existing leave request (only if status is PENDING).
PUT /api/leave/{id} Request body (same as create):
{
"startDate": "2024-01-15T00:00:00.000Z",
"endDate": "2024-01-22T00:00:00.000Z",
"type": "ANNUAL",
"notes": "Updated vacation dates"
} Delete Leave Request
Delete a leave request (only if status is PENDING).
DELETE /api/leave/{id} Approve or Reject Leave Request
Approve or reject a leave request. Requires MANAGER or ADMIN role.
PUT /api/leave/{id}/status Request body:
{
"status": "APPROVED"
} Status values: APPROVED, REJECTED
Get Leave Calendar
Retrieve leave calendar with leave requests and public holidays for a date range.
GET /api/leave/calendar Query parameters:
startDate- Start date (required, ISO format)endDate- End date (required, ISO format)departmentId- Filter by department (optional)types- Comma-separated list of leave types (optional)
Returns leave requests and public holidays grouped by user, with country-specific holidays based on employee nationality.
Get Pending Approvals
Retrieve pending leave requests for the current user.
GET /api/leave/pending-approvals Get Upcoming Leave
Retrieve upcoming approved leave requests.
GET /api/leave/upcoming Query parameters:
page- Page number (default: 1)pageSize- Items per page (default: 10)sortBy- Sort field (default: createdAt)sortOrder- Sort order: asc or desc (default: desc)
Get Team Leave Requests
Retrieve leave requests for team members. Requires MANAGER or ADMIN role.
GET /api/leave/team Query parameters:
page- Page number (default: 1)
