Содержание документации
HRM
Human resources — the employee master, org structure, attendance, leave and payroll runs. People data shared by projects, timesheets, expenses and finance. Sync an HRIS, a time clock or a payroll provider against these endpoints.
/v1/hrm/employeesScope: hrm:readList employees
Returns a cursor-paginated list of employees. Filter by department or employment status.
| limitoptional | integerPage size, 1–200 (default 50). |
| cursoroptional | stringPagination cursor from a previous response. |
| departmentoptional | stringFilter by department code. |
| statusoptional | stringFilter by status: active, on_leave or terminated. |
curl "https://api.apusplatform.com/v1/hrm/employees" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"id": "emp_1a2b",
"code": "EMP-000142",
"name": "Nguyen Van An",
"department": "production",
"title": "Line supervisor",
"email": "an.nv@apusplatform.com",
"status": "active",
"hired_at": "2024-03-01",
"updated_at": "2026-07-12T04:20:11Z"
}
],
"has_more": true,
"next_cursor": "crsr_9a10"
}/v1/hrm/employeesScope: hrm:writeCreate an employee
Creates an employee record. name and department are required.
| namerequired | stringFull name. |
| departmentrequired | stringDepartment code. |
| titleoptional | stringJob title. |
| emailoptional | stringWork email. |
curl -X POST "https://api.apusplatform.com/v1/hrm/employees" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Nguyen Van An",
"department": "production",
"title": "Line supervisor",
"email": "an.nv@apusplatform.com"
}'{
"id": "emp_1a2b",
"code": "EMP-000142",
"created_at": "2026-07-20T02:10:00Z"
}/v1/hrm/employees/{id}Scope: hrm:readRetrieve an employee
Returns a single employee by its id, or by code (prefix the value with code_).
| idrequired | stringEmployee id. |
curl "https://api.apusplatform.com/v1/hrm/employees/emp_1a2b" \
-H "Authorization: Bearer $APUS_TOKEN"{
"id": "emp_1a2b",
"code": "EMP-000142",
"name": "Nguyen Van An",
"department": "production",
"title": "Line supervisor",
"email": "an.nv@apusplatform.com",
"status": "active",
"hired_at": "2024-03-01",
"updated_at": "2026-07-12T04:20:11Z"
}/v1/hrm/employees/{id}Scope: hrm:writeUpdate an employee
Updates mutable fields of an employee. Only supplied fields change.
| idrequired | stringEmployee id. |
| nameoptional | stringFull name. |
| departmentoptional | stringDepartment code. |
| titleoptional | stringJob title. |
| emailoptional | stringWork email. |
curl -X PATCH "https://api.apusplatform.com/v1/hrm/employees/emp_1a2b" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"department": "quality",
"title": "QA lead"
}'{
"id": "emp_1a2b",
"code": "EMP-000142",
"updated_at": "2026-07-20T02:12:00Z"
}/v1/hrm/employees/{id}/terminateScope: hrm:writeTerminate an employee
Ends employment on the effective date and moves the employee to status terminated.
| idrequired | stringEmployee id. |
| effective_daterequired | stringLast working day (YYYY-MM-DD). |
| reasonoptional | stringReason for termination. |
curl -X POST "https://api.apusplatform.com/v1/hrm/employees/emp_1a2b/terminate" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"effective_date": "2026-08-31",
"reason": "Resignation"
}'{
"id": "emp_1a2b",
"status": "terminated",
"effective_date": "2026-08-31",
"updated_at": "2026-07-20T02:14:00Z"
}/v1/hrm/departmentsScope: hrm:readList departments
Returns the organization's department tree.
No parameters.
curl "https://api.apusplatform.com/v1/hrm/departments" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"code": "production",
"name": "Production",
"parent": null,
"manager": "emp_1a2b"
},
{
"code": "quality",
"name": "Quality",
"parent": "production",
"manager": null
}
]
}/v1/hrm/attendanceScope: hrm:readList attendance records
Returns clock-in/out records. Filter by employee and date range.
| limitoptional | integerPage size, 1–200 (default 50). |
| cursoroptional | stringPagination cursor from a previous response. |
| employee_idoptional | stringFilter by employee id. |
| fromoptional | stringStart date, inclusive (YYYY-MM-DD). |
| tooptional | stringEnd date, inclusive (YYYY-MM-DD). |
curl "https://api.apusplatform.com/v1/hrm/attendance" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"id": "att_3c4d",
"employee_id": "emp_1a2b",
"date": "2026-07-14",
"check_in": "08:02",
"check_out": "17:05",
"worked_hours": 8.05
}
],
"has_more": false,
"next_cursor": null
}/v1/hrm/attendanceScope: hrm:writeRecord attendance
Creates an attendance record for an employee on a given date.
| employee_idrequired | stringEmployee id. |
| daterequired | stringAttendance date (YYYY-MM-DD). |
| check_inoptional | stringClock-in time (HH:mm). |
| check_outoptional | stringClock-out time (HH:mm). |
curl -X POST "https://api.apusplatform.com/v1/hrm/attendance" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"employee_id": "emp_1a2b",
"date": "2026-07-14",
"check_in": "08:02",
"check_out": "17:05"
}'{
"id": "att_3c4d",
"employee_id": "emp_1a2b",
"date": "2026-07-14",
"created_at": "2026-07-20T02:16:00Z"
}/v1/hrm/leave-requestsScope: hrm:readList leave requests
Returns leave requests. Filter by employee or approval status.
| limitoptional | integerPage size, 1–200 (default 50). |
| cursoroptional | stringPagination cursor from a previous response. |
| employee_idoptional | stringFilter by employee id. |
| statusoptional | stringFilter by status: pending, approved or rejected. |
curl "https://api.apusplatform.com/v1/hrm/leave-requests" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"id": "lve_5f6g",
"employee_id": "emp_1a2b",
"type": "annual",
"from": "2026-08-04",
"to": "2026-08-08",
"days": 5,
"status": "pending",
"created_at": "2026-07-18T03:10:00Z"
}
],
"has_more": false,
"next_cursor": null
}/v1/hrm/leave-requestsScope: hrm:writeCreate a leave request
Submits a leave request for an employee. It starts in status pending.
| employee_idrequired | stringEmployee id. |
| typerequired | stringLeave type: annual, sick or unpaid. |
| fromrequired | stringFirst day of leave (YYYY-MM-DD). |
| torequired | stringLast day of leave (YYYY-MM-DD). |
curl -X POST "https://api.apusplatform.com/v1/hrm/leave-requests" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"employee_id": "emp_1a2b",
"type": "annual",
"from": "2026-08-04",
"to": "2026-08-08"
}'{
"id": "lve_5f6g",
"employee_id": "emp_1a2b",
"status": "pending",
"created_at": "2026-07-20T02:18:00Z"
}/v1/hrm/leave-requests/{id}/approvalsScope: hrm:writeApprove or reject a leave request
Records an approval decision on a pending leave request.
| idrequired | stringLeave request id. |
| decisionrequired | stringDecision: approve or reject. |
| commentoptional | stringOptional note recorded with the decision. |
curl -X POST "https://api.apusplatform.com/v1/hrm/leave-requests/lve_5f6g/approvals" \
-H "Authorization: Bearer $APUS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"decision": "approve",
"comment": "Coverage arranged."
}'{
"id": "lve_5f6g",
"status": "approved",
"decided_by": "emp_7h8i",
"decided_at": "2026-07-20T02:20:00Z"
}/v1/hrm/payroll-runsScope: hrm:readList payroll runs
Returns payroll runs. Filter by pay period.
| periodoptional | stringFilter by period (YYYY-MM). |
curl "https://api.apusplatform.com/v1/hrm/payroll-runs" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"id": "pay_9j0k",
"period": "2026-06",
"status": "closed",
"employee_count": 142,
"gross_total": {
"amount": 1842500000,
"currency": "VND"
},
"paid_at": "2026-07-05"
}
]
}/v1/hrm/payroll-runs/{id}Scope: hrm:readRetrieve a payroll run
Returns a payroll run with its per-employee payslip lines.
| idrequired | stringPayroll run id. |
curl "https://api.apusplatform.com/v1/hrm/payroll-runs/pay_9j0k" \
-H "Authorization: Bearer $APUS_TOKEN"{
"id": "pay_9j0k",
"period": "2026-06",
"status": "closed",
"gross_total": {
"amount": 1842500000,
"currency": "VND"
},
"payslips": [
{
"employee_id": "emp_1a2b",
"gross": {
"amount": 18500000,
"currency": "VND"
},
"net": {
"amount": 15980000,
"currency": "VND"
}
}
]
}/v1/hrm/positionsScope: hrm:readList positions
Returns the catalog of job positions and their pay grades.
No parameters.
curl "https://api.apusplatform.com/v1/hrm/positions" \
-H "Authorization: Bearer $APUS_TOKEN"{
"data": [
{
"code": "line-supervisor",
"title": "Line supervisor",
"grade": "G5",
"department": "production"
},
{
"code": "qa-lead",
"title": "QA lead",
"grade": "G6",
"department": "quality"
}
]
}Готовы к интеграции?
Создайте API-клиент в Консоли аккаунта, чтобы получить учётные данные, или обсудите ваш сценарий с инженером по интеграции.