Expenses API
Submit and manage expense claims and approvals through the CitoHR API.
Get Expenses
Retrieve expense claims with filtering and pagination.
GET /api/expenses Query parameters:
status- Filter by status: PENDING, APPROVED, REJECTED (optional)page- Page number (default: 1)pageSize- Items per page (default: 10)userId- Filter by user ID (optional, requires MANAGER or ADMIN role to access other users)
Authorization: Requires valid session. Users can view their own expenses. MANAGER and ADMIN roles can view team members' expenses.
Create Expense Claim
Submit a new expense claim.
POST /api/expenses Request body:
{
"amount": 50.00,
"categoryId": "category-id",
"date": "2024-01-15T00:00:00.000Z",
"description": "Business lunch",
"receiptUrl": "https://example.com/receipt.jpg"
} Get Expense by ID
Retrieve a specific expense claim by ID.
GET /api/expenses/{id} Update Expense
Update an expense claim (only if status is PENDING).
PUT /api/expenses/{id} Approve or Reject Expense
Approve or reject an expense claim. Requires MANAGER or ADMIN role.
POST /api/expenses/{id}/approve Request body:
{
"status": "APPROVED"
} Status values: APPROVED, REJECTED
Delete Expense
Delete an expense claim (only if status is PENDING).
DELETE /api/expenses/{id} Get Expense Categories
Retrieve available expense categories.
GET /api/expenses/categories Get Pending Approvals
Retrieve expense claims pending approval. Requires MANAGER or ADMIN role.
GET /api/expenses/approval 