Clock In
Starts the user's active attendance timer.
/attendance-events/clock-in
Parameters
| Name |
Required |
Type/Format |
Description |
| userId |
yes |
"USER-ID" |
ID of the user |
| comment |
no |
String |
Optional comment for the event |
| officeId |
no |
"OFFICE-ID" |
ID of the office location |
Response
Sample response →
{
"id": "ATTENDANCE-EVENT-ID",
"linkedAttendanceEventId": "ATTENDANCE-EVENT-ID",
"userId": "USER-ID",
"createByUserId": "USER-ID"
"officeId": "OFFICE-ID",
"date": "2024-07-15",
"momentCreated": "2024-07-16T11:54:52.093993",
"timestamp": "2024-07-15T15:23:58.561027",
"ipAddress": "127.0.0.1",
"type": "CLOCK-IN",
"comment": "Some comment"
}
Clock Out
Stops the user's active attendance timer.
/attendance-events/clock-out
Parameters
| Name |
Required |
Type/Format |
Description |
| userId |
yes |
"USER-ID" |
ID of the user |
| comment |
no |
String |
Optional comment for the event |
| officeId |
no |
"OFFICE-ID" |
ID of the office location |
Response
Sample response →
{
"id": "ATTENDANCE-EVENT-ID",
"linkedAttendanceEventId": "ATTENDANCE-EVENT-ID",
"userId": "USER-ID",
"createByUserId": "USER-ID"
"officeId": "OFFICE-ID",
"date": "2024-07-15",
"momentCreated": "2024-07-16T11:54:52.093993",
"timestamp": "2024-07-15T15:23:58.561027",
"ipAddress": "127.0.0.1",
"type": "CLOCK-OUT",
"comment": "Some comment"
}
Create attendance records
Create both clock-in and clock-out attendance events for a user.
/attendance-events/create
Parameters
| Name |
Required |
Type/Format |
Description |
| date |
yes |
YYYY-MM-DD |
Date of the attendance events |
| clockInTimestampUtc |
yes |
ISO 8601 e.g. 2025-07-18T08:00:00 |
Clock-in timestamp (in UTC) |
| clockOutTimestampUtc |
yes |
ISO 8601 e.g. 2025-07-18T17:00:00 |
Clock-out timestamp (in UTC) |
| userId |
yes |
"USER-ID" |
ID of the user |
| officeId |
no |
"OFFICE-ID" |
ID of the office location |
| clockInComment |
no |
String |
Optional comment for clock-in |
| clockOutComment |
no |
String |
Optional comment for clock-out |
Response
Response
Sample response →
{
"clockIn": {
"id": "ATTENDANCE-EVENT-ID",
"userId": "USER-ID",
"createByUserId": "USER-ID",
"officeId": "OFFICE-ID",
"date": "2025-07-18",
"momentCreated": "2025-07-18T08:01:00.000000",
"timestamp": "2025-07-18T08:00:00.000000",
"ipAddress": "127.0.0.1",
"type": "CLOCK-IN",
"comment": "Started shift"
},
"clockOut": {
"id": "ATTENDANCE-EVENT-ID",
"linkedAttendanceEventId": "ATTENDANCE-EVENT-ID",
"userId": "USER-ID",
"createByUserId": "USER-ID",
"officeId": "OFFICE-ID",
"date": "2025-07-18",
"momentCreated": "2025-07-18T17:01:00.000000",
"timestamp": "2025-07-18T17:00:00.000000",
"ipAddress": "127.0.0.1",
"type": "CLOCK-OUT",
"comment": "Ended shift"
}
}
Delete Attendance Event
Delete attendance event and its pair.
/attendance-events/ATTENDANCE-EVENT-ID
Response
Sample response →
"Ok"
Query Attendance Events
Retrieve a list of attendance events within a specific date range.
/attendance-events
Parameters
| Name |
Required |
Type/Format |
Description |
| startDate |
yes |
YYYY-MM-DD |
Start date of the attendance event range |
| endDate |
yes |
YYYY-MM-DD |
End date of the attendance event range |
| userId |
no |
"USER-ID" |
Optional user ID to filter attendance events |
| userIds |
no |
A comma-separated string i.e ?userIds=abc123,def456 |
Optional user IDs to filter attendance events |
Response
Sample response →
[
{
"id": "ATTENDANCE-EVENT-ID",
"linkedAttendanceEventId": "ATTENDANCE-EVENT-ID",
"userId": "USER-ID",
"createByUserId": "USER-ID"
"officeId": "OFFICE-ID",
"date": "2024-07-15",
"momentCreated": "2024-07-16T11:54:52.093993",
"timestamp": "2024-07-15T15:23:58.561027",
"ipAddress": "127.0.0.1",
"type": "CLOCK-OUT",
"comment": "Some comment"
},
...
]