HR & Payroll
Manage employees, departments, leave requests, and payroll processing. Maintain comprehensive employee records and automate HR workflows.
List employees
Retrieve a paginated list of all employees.
Optional parameters
- Name
department_id- Type
- string
- Description
Filter by department.
- Name
status- Type
- string
- Description
Filter by status:
active,inactive,on_leave.
- Name
limit- Type
- integer
- Description
Maximum number of records to return.
Request
curl https://api.umbraerp.com/v1/hr/employees \
-H "Authorization: Bearer <your_access_token>"
Response
{
"result": "success",
"employees": [
{
"id": "emp_001",
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@company.com",
"department": "Engineering",
"position": "Software Engineer",
"status": "active",
"hire_date": "2025-06-01",
"created_at": "2025-06-01T09:00:00Z"
}
],
"total_count": 1
}
Create employee
Add a new employee to the system.
Required attributes
- Name
first_name- Type
- string
- Description
Employee's first name.
- Name
last_name- Type
- string
- Description
Employee's last name.
- Name
email- Type
- string
- Description
Employee's email address.
- Name
department_id- Type
- string
- Description
Department ID.
- Name
position- Type
- string
- Description
Job title/position.
- Name
hire_date- Type
- string
- Description
Start date (
YYYY-MM-DD).
Optional attributes
- Name
phone- Type
- string
- Description
Phone number.
- Name
salary- Type
- integer
- Description
Monthly salary in the smallest currency unit.
- Name
currency- Type
- string
- Description
Salary currency (default:
USD).
Request
curl -X POST https://api.umbraerp.com/v1/hr/employees \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@company.com",
"department_id": "dept_eng",
"position": "Software Engineer",
"hire_date": "2026-04-01",
"salary": 500000,
"currency": "USD"
}'
Response
{
"result": "success",
"employee_id": "emp_001",
"message": "Employee created successfully."
}
Get employee
Retrieve details of a specific employee.
Request
curl https://api.umbraerp.com/v1/hr/employees/emp_001 \
-H "Authorization: Bearer <your_access_token>"
Update employee
Update an existing employee's information.
Optional attributes
- Name
position- Type
- string
- Description
Updated job title.
- Name
department_id- Type
- string
- Description
Updated department.
- Name
salary- Type
- integer
- Description
Updated monthly salary.
- Name
status- Type
- string
- Description
Updated status:
active,inactive,on_leave.
Request
curl -X PUT https://api.umbraerp.com/v1/hr/employees/emp_001 \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"position": "Senior Software Engineer",
"salary": 650000
}'
Response
{
"result": "success",
"message": "Employee updated successfully."
}
List departments
Retrieve all departments in the organization.
Request
curl https://api.umbraerp.com/v1/hr/departments \
-H "Authorization: Bearer <your_access_token>"
Response
{
"result": "success",
"departments": [
{
"id": "dept_eng",
"name": "Engineering",
"head": "emp_001",
"employee_count": 12
},
{
"id": "dept_sales",
"name": "Sales",
"head": "emp_002",
"employee_count": 8
}
]
}

