Appearance
Attendance
List Attendance
Available on: NEXT.
Get all attendance records. By default, it will return all attendance records. Attendance records can be filtered by date range or by month and year. month and year are mutually exclusive with date_from and date_to. When user_id is provided it will return attendance records for that user.
If you need to get the attendance record of the current user, you can use the Get My Attendance endpoint.
http
GET /v2/attendance
GET /v2/attendance?date_from=2024-01-01&date_to=2024-02-31
GET /v2/attendance?month=4&year=2024
GET /v2/attendance?user_id=a6c374ee-17d6-4acf-ae2a-0b7eb09a38fdURL Query Params:
| Name | Type | Description |
|---|---|---|
date_from | string | Date in YYYY-MM-DD format. Will not proceed when month or year is provided. |
date_to | string | Date in YYYY-MM-DD format. Will not proceed when month or year is provided. |
month | number | Month number. (1-12). Can't be used with date_from and date_to. |
year | number | Year in YYYY format. Defaults to current year when month is not provided. Can't be used with date_from and date_to. |
user_id | string | The ID (Node ID) of the user to list attendance for. |
sort | string | asc or desc. Default desc. |
order_by | string | Field to order by. Default date (In conjugation with sort). Values are date, updatedAt |
Get My Attendance
Available on: NEXT.
Similar to the List Attendance endpoint but will return the attendance records of the current user.
This endpoint accepts the same query parameters as the List Attendance endpoint.
http
GET /v2/attendance/me
GET /v2/attendance/me?date_from=2024-01-01&date_to=2024-02-31
GET /v2/attendance/me?month=4&year=2024Get Attendance Status
Available on: NEXT.
Get the current attendance status of the current user. This endpoint returns the current and previous attendance record of the user. The current field will be null if the user has no attendance record for the current day.
http
GET /v2/attendance/statusExample Response:
json
{
"current": null,
"previous": {
"id": 127,
"node_id": "G6vvRPxJMjiLbLkF",
"EmployeeNo": "1",
"Date": "2024-10-29T16:00:00.000Z",
"Day": "Wednesday",
"time_in": "14:45",
"time_out": null,
"break_in": "14:59",
"break_out": "14:50",
"total_work": "",
"total_overtime": "Break Out@14:59",
"createdAt": "2024-10-30T06:45:26.000Z",
"updatedAt": "2024-10-30T06:59:43.000Z",
"user_id": 1,
"user_node_id": "a6c374ee-17d6-4acf-ae2a-0b7eb09a38fd",
"member_id": 1,
"member_node_id": "a6c374ee-17d6-4acf-ae2a-0b7eb09a38fd",
"last_check_in_time": "14:50",
"last_check_in_status": "break_start"
}
}Clock In
Available on: NEXT.
Create a new attendance record for the current user.
http
POST /v2/attendance/clock-inClock Out
Available on: NEXT.
Updates the attendance record of the current user to clock out.
When user did not clock in, it will create a new attendance record with empty clock in.
http
PATCH /v2/attendance/clock-outBreak Start
Available on: NEXT.
"Break Start" means that the user is taking a break (lunch break).
Updates the break attendance record of the current user.
http
PATCH /v2/attendance/break-startBreak End
Available on: NEXT.
"Break End" means that the user is back from the break.
Updates the break attendance record of the current user.
http
PATCH /v2/attendance/break-endGet Entries
Returns attendance record for specific user. Grouped by date.
Available on: NEXT.
This endpoint accepts pagination parameters in the "request body".
http
POST /v2/attendance/entriesRequest Body:
| Name | Type | Description |
|---|---|---|
user_id | string | Required. The ID (Node ID) of the user to get attendance entries for. |
date_from | string | Date in YYYY-MM-DD format. Optional. If not provided will query from existing dates. |
date_to | string | Date in YYYY-MM-DD format. Optional. If not provided will query from existing dates. |
Example
ts
"method": "POST",
"body": {
"date_from": "2024-04-01",
"date_to": "2025-08-01",
"per_page": 20,
"user_id": "a6c374ee-17d6-4acf-ae2a-0b7eb09a38fd",
"count": 0
}json
{
"page": 1,
"per_page": 20,
"from": 0,
"to": 18,
"result": [
{
"date": "2025-06-26",
"attendances": [
{
"EmployeeNo": "1",
"Date": "2025-06-25T16:00:00.000Z",
"Day": "Thursday",
"time_in": "20:10",
"time_out": "20:11",
"break_out": "20:10",
"break_in": "20:10",
"total_work": "",
"ubreak_b": "",
"total_overtime": "Time Out@20:11",
"id": 155,
"node_id": "W2V9HfLcRA2bViIh",
"user_id": 1,
"member_id": 1,
"member_node_id": "a6c374ee-17d6-4acf-ae2a-0b7eb09a38fd",
"user_node_id": "a6c374ee-17d6-4acf-ae2a-0b7eb09a38fd",
"createdAt": "2025-06-26T12:10:23.000Z",
"updatedAt": "2025-06-26T12:11:04.000Z",
"deletedAt": null,
"is_deleted": 0,
"totalHoursNum": null
}
]
}
]
}Validation Matrix for Attendance Actions
Break Start Request Validation Matrix
| Condition | Action | Reason |
|---|---|---|
| User has already clocked out | Reject Break Start | "Rejecting break-start request because user has already clocked out." |
| User has already started a break | Reject Break Start | "Rejecting break-start request because user has already break-start." |
| User has already ended a break | Reject Break Start | "Rejecting break-start request because user has already break-end." |
| User is checked in and no break started | Accept Break Start | "Accepting break-start request." |
| User is not checked in, no break started, no break ended, and not clocked out | Create Break Start | "No attendance record for today." |
| Any other state | Reject Request | "Unhandled case: Request cannot be processed. User status does not permit a break-start request." |
Break Out Request Validation Matrix
| Condition | Action | Reason |
|---|---|---|
| User is not on a break | Reject Break Out | "Rejecting break-out request because the user is not on a break." |
| User has already clocked out | Reject Break Out | "Rejecting break-out request because the user has already clocked out." |
| User has already ended a break | Reject Break Out | "Rejecting break-out request because the user has already ended the break." |
| User is checked in and on a break | Accept Break Out | "Accepting break-out request." |
| Any other state | Reject Request | "Unhandled case: Request cannot be processed." |
Clock Out Request Validation Matrix
| Condition | Action | Reason |
|---|---|---|
| User is already clocked out | No Action | "No action needed: User is already clocked out." |
| User is not checked in | Reject Clock Out | "Rejecting clock-out request because the user is not checked in." |
| User is checked in and on a break | Reject Clock Out | "Rejecting clock-out request because the user is currently on a break." |
| User is checked in and not on a break | Accept Clock Out | "Accepting clock-out request." |
| Any other state | Reject Request | "Unhandled case: Request cannot be processed." |
Clock In Request Validation Matrix
| Condition | Action | Reason |
|---|---|---|
| User is already checked in | Reject Clock In | "Rejecting clock-in request because the user is already checked in." |
| User is clocked out | Accept Clock In | "Accepting clock-in request." |
| User has a pending break | Reject Clock In | "Rejecting clock-in request due to pending break." |
| Any other state | Reject Request | "Unhandled case: Request cannot be processed." |