POST
/api/public/v1/time-clock-entries/{entryId}/clock-outClock out
Closes an open entry, stamping `clockOutAt` with now. Only the employee it belongs to may close it — a timesheet somebody else can end is not a timesheet.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Settings → Company → API, and to a teammate under Employee → Permissions.
hr:write
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
entryId | string | Required | Entry ID. |
POSTExample request
curl
curl -X POST "https://www.pxb.app/api/public/v1/time-clock-entries/{entryId}/clock-out" \
-H "Authorization: Bearer your_access_token"200Example response
json
{
"message": "Clocked out.",
"content": {
"entry": {
"id": "tce_5a2b",
"employeeId": "emp_44f1",
"locationId": "loc_abc123",
"shiftId": "shf_9911",
"clockInAt": "2026-08-29T13:02:00.000Z",
"clockOutAt": "2026-08-29T21:04:00.000Z",
"createdAt": "2026-08-29T13:02:00.000Z",
"updatedAt": "2026-08-29T13:02:00.000Z"
}
}
}409Example response
json
{
"message": "That entry is already closed."
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.