List timepoint corrections for an employee (user)
Returns a paginated list of Tempus time point corrections belonging to a single employee within the given Pbx (tenant), optionally filtered by correction status and ordered by creation time (newest first).
Each item is serialized by the CorrectionResource. The response uses the
standard Laravel pagination envelope: a data array of corrections plus
links and meta objects.
HTTP:
bearerAuth
User bearer token. Default authentication for customer-facing endpoints.
Obtain a token by calling POST /login with your credentials, then send it
on every subsequent request as Authorization: Bearer <token>. The token
inherits the permissions and PBX scope of the authenticated user.
- HTTP Authorization Scheme
bearer- Bearer format
Bearer <token>
pbx_id
path · string · uuid
*
Identifier of the Pbx (tenant).
employee_id
path · string · uuid
*
Identifier of the Tempus employee whose corrections are listed.
filter[status]
query · array
Restrict results to corrections in the given lifecycle states. Accepts a
repeated array parameter or a single comma-separated string.
page
query · integer
Page number to retrieve.
per_page
query · integer
Number of items per page (1-100). Defaults to 15.
Responses
Paginated list of the employee's corrections.
Response schema
data*array<object>
Each item — A Tempus time-point correction request as serialized by the V1
`CorrectionResource`. A correction captures a requested change to an
employee's recorded time point (its time, status, or sub-status), the values
before and after the change, the approval workflow state, and a count of how
many validators have accepted or refused it.
This object documents the exact keys returned by the resource, not the raw
database columns. Two timestamp columns are renamed in the payload:
`created_at` is exposed as `create_time` and `updated_at` as `update_time`.
The `mxvp_user_id` key carries the owning Pbx (tenant) identifier (the
model's `pbx_id`). The `requester_ext_id` key is the requesting employee's
identifier.
The nested `timepoint` object is only present when the related time point is
loaded on the model; when present, its `status` and `substatuses` members are
themselves only included when those relations are loaded.
id*string · uuid
Unique identifier of the correction request.
read-only
example:
550e8400-e29b-41d4-a716-446655440000mxvp_user_id*string · uuid
Identifier of the Pbx (tenant) that owns this correction (the model's pbx_id).
example:
550e8400-e29b-41d4-a716-446655440001timepoint_id*string | null · uuid
Identifier of the time point this correction targets. Null when the
correction requests the creation of a brand new time point rather than a
change to an existing one.
example:
550e8400-e29b-41d4-a716-446655440002requester_ext_id*string | null · uuid
Identifier of the employee who requested the correction. Resolved from the
related requester employee when loaded, falling back to the stored
employee_id. Null when no requesting employee can be determined.
example:
550e8400-e29b-41d4-a716-446655440003new_status_id*string | null · uuid
Identifier of the Tempus status the time point should be changed to. Null
when the correction does not change the status.
example:
550e8400-e29b-41d4-a716-446655440004new_sub_status_id*string | null · uuid
Identifier of the Tempus sub-status the time point should be changed to.
Null when the correction does not change the sub-status.
example:
550e8400-e29b-41d4-a716-446655440005old_status_id*string | null · uuid
Identifier of the Tempus status the time point had before the correction.
Null when no prior status applies.
example:
550e8400-e29b-41d4-a716-446655440006old_sub_status_id*string | null · uuid
Identifier of the Tempus sub-status the time point had before the
correction. Null when no prior sub-status applies.
example:
550e8400-e29b-41d4-a716-446655440007new_location_idstring | null · uuid
Location the correction asks the time point to be recorded at. Null when
the correction does not touch the location, which is NOT the same as asking
for the location to be cleared: acceptance leaves the time point's current
location exactly as it is. Always null on corrections raised before this
field existed.
example:
550e8400-e29b-41d4-a716-446655440010old_location_idstring | null · uuid
The location the time point was pointed at when the correction was raised.
A snapshot, so the requested move reads as old -> new and so the reversal
created by cancelling an accepted correction can swap the pair. Null when
the time point had no location, or when the correction adds a new one.
example:
550e8400-e29b-41d4-a716-446655440011old_locationobject | null
The location the time point was pointed at when the correction was raised,
resolved. Null when it had none.
idstring · uuid
example:
550e8400-e29b-41d4-a716-446655440011namestring
example:
HQ Luxembourglatitudenumber | null · double
example:
49.6008longitudenumber | null · double
example:
6.133geofence_radius_minteger | null
example:
150new_locationobject | null
The location the correction asks for, resolved. Null when the correction
does not touch the location.
idstring · uuid
example:
550e8400-e29b-41d4-a716-446655440010namestring
example:
Remote officelatitudenumber | null · double
example:
49.612longitudenumber | null · double
example:
6.13geofence_radius_minteger | null
example:
200new_time*string | null · date-time
Requested new timestamp for the time point, in ISO 8601 format. A null
value on a correction targeting an existing time point indicates a removal
(deletion) request.
example:
2024-03-01T09:00:00.000000Zold_time*string | null · date-time
Original timestamp of the time point before the correction, in ISO 8601
format. Null when no prior time applies.
example:
2024-03-01T08:30:00.000000Zcorrection_comment*string | null
Free-form justification supplied by the requester explaining why the
correction is needed. Null when no comment was given.
example:
Forgot to clock out at the end of the shift.new_comment*string | null
Comment to be applied to the time point when the correction is accepted
(used in particular when creating a new time point). Null when not set.
example:
Manual entry approved by supervisor.status*string | null
Workflow state of the correction request. `pending` awaits validator
review, `accepted` has been approved and applied to the time point,
`rejected` was refused, `canceled` was withdrawn, and `rejected_closed`
was refused and closed. Legacy stored values `refused` and `refused_closed`
are normalized to `rejected` and `rejected_closed` respectively.
enum:
pending accepted rejected canceled rejected_closedexample:
pendingcreate_time*string · date-time
Timestamp when the correction request was created, in ISO 8601 format (the model's created_at).
read-only
example:
2024-03-01T08:29:07.000000Zupdate_time*string · date-time
Timestamp when the correction request was last updated, in ISO 8601 format (the model's updated_at).
read-only
example:
2024-03-01T08:29:07.000000Zaccepted_validations_count*integer · int32
Number of validators who have accepted this correction request.
example:
1refused_validations_count*integer · int32
Number of validators who have refused this correction request.
example:
0accepted_by*array<object>
Every validator that must sign off on this correction, with their
individual decision. A correction may require multiple validators. One
entry per approval record; empty when no validators are assigned yet.
employee_id*string | null · uuid
Identifier of the Tempus employee acting as validator.
example:
550e8400-e29b-41d4-a716-446655440004status*string
This validator's decision. `pending` awaits their action; `accepted`
and `rejected` record the outcome.
enum:
pending accepted rejectedexample:
pendingtimepointobject
The time point this correction targets. Only present when the related
time point is loaded on the model; absent otherwise.
idstring · uuid
Unique identifier of the time point.
read-only
example:
550e8400-e29b-41d4-a716-446655440002mxvp_user_idstring · uuid
Identifier of the Pbx (tenant) that owns the time point.
example:
550e8400-e29b-41d4-a716-446655440001ext_idstring | null · uuid
Identifier of the employee the time point belongs to. Resolved from the
related employee when loaded, falling back to the time point's user
identifier. Null when neither is available.
example:
550e8400-e29b-41d4-a716-446655440003status_idstring | null · uuid
Identifier of the Tempus status currently assigned to the time point.
example:
550e8400-e29b-41d4-a716-446655440004timestring | null · date-time
Start timestamp of the time point, in ISO 8601 format. Null when not set.
example:
2024-03-01T08:30:00.000000Zmigration_idstring | null
Legacy migration identifier carried in the time point metadata, used to
trace records imported from a previous system. Null when not migrated.
example:
legacy-tp-10293delete_datestring | null · date-time
Soft-delete timestamp of the time point, in ISO 8601 format. Null when
the time point has not been deleted.
statusobject
The Tempus status assigned to the time point. Only present when the
status relation is loaded; absent otherwise.
idstring · uuid
Unique identifier of the status.
read-only
example:
550e8400-e29b-41d4-a716-446655440004mxvp_user_idstring · uuid
Identifier of the Pbx (tenant) that owns the status.
example:
550e8400-e29b-41d4-a716-446655440001namestring | null
Display name of the status.
example:
Workingiconstring | null
CSS icon class used to represent the status, from its style metadata. Null when not set.
example:
la la-briefcasefontcolorstring | null
Font color (CSS color value) for the status label, from its style metadata. Null when not set.
example:
#ffffffbackgroundcolorstring | null
Background color (CSS color value) for the status badge, from its style metadata. Null when not set.
example:
#2e7d32cssstring | null
Additional CSS class applied to the status badge, from its style metadata. Null when not set.
example:
status-workingcommentinteger · int32
Whether a comment is required when assigning this status, normalized
from the status metadata to an integer flag (0 = not required,
1 = required).
enum:
0 1example:
0payableboolean | null
Whether time recorded under this status is payable. Null when not configured.
example:
1actionstring | null
Optional action keyword associated with the status, from its metadata. Null when none.
example:
clock_inmigration_idstring | null
Legacy migration identifier for the status, from its metadata. Null when not migrated.
example:
legacy-status-7delete_datestring | null · date-time
Soft-delete timestamp of the status, in ISO 8601 format. Null when not deleted.
substatusesarray<object>
Sub-statuses attached to the time point. Only present when the
sub-status relation is loaded; may be empty.
idstring · uuid
Unique identifier of the sub-status.
read-only
example:
550e8400-e29b-41d4-a716-446655440005mxvp_user_idstring · uuid
Identifier of the Pbx (tenant) that owns the sub-status.
example:
550e8400-e29b-41d4-a716-446655440001namestring | null
Display name of the sub-status.
example:
Client meetingiconstring | null
CSS icon class used to represent the sub-status, from its style metadata. Null when not set.
example:
la la-usersfontcolorstring | null
Font color (CSS color value) for the sub-status label, from its style metadata. Null when not set.
example:
#000000backgroundcolorstring | null
Background color (CSS color value) for the sub-status badge, from its style metadata. Null when not set.
example:
#bbdefbcssstring | null
Additional CSS class applied to the sub-status badge, from its style metadata. Null when not set.
example:
substatus-meetingcommentinteger · int32
Whether a comment is required when assigning this sub-status,
normalized from the sub-status metadata to an integer flag
(0 = not required, 1 = required).
enum:
0 1example:
0actionstring | null
Optional action keyword associated with the sub-status, from its metadata. Null when none.
delete_datestring | null · date-time
Soft-delete timestamp of the sub-status, in ISO 8601 format. Null when not deleted.
links*object
firststring
The first page of the resource
example:
http://localhost/api/v1/resources?page=1laststring
The last page of the resource
example:
http://localhost/api/v1/resources?page=1prevnull | string
The previous page of the resource
nextnull | string
The next page of the resource
meta*object
current_pageinteger
The current page of the resource
≥ 1
example:
1fromnull | integer
The first item of the resource
≥ 1
example:
1last_pageinteger
The last page of the resource
≥ 1
example:
1linksarray<object>
urlstring | null
The url of the resource (null for the boundary prev/next links)
example:
http://localhost/api/v1/resources?page=1labelstring
The label of the resource
example:
firstactiveboolean
The status of the resource
example:
1pathstring
The path of the resource
example:
http://localhost/api/v1/resourcesper_pageinteger
The number of items per page of the resource
≥ 1
example:
15tonull | integer
The last item of the resource
≥ 1
example:
1totalinteger
The total number of items of the resource
≥ 0
example:
1Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example:
Authorization Token is missingThe authenticated user is not authorized for this employee or tenant
(the request fails the FormRequest authorization check).
Response schema
No response body.
Unprocessable Parameters. This error is returned when a parameter is not valid.
Response schema
messagestring
example:
The given data was invalid.errorsobject
filterarray<string>
[]string
sortarray<string>
[]string
pagearray<string>
[]string
per_pagearray<string>
[]string
get
https://cockpit.voxbi.com/api/v1/{pbx_id}/user/{employee_id}/corrections
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/{pbx_id}/user/{employee_id}/corrections' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/{pbx_id}/user/{employee_id}/corrections', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${YOUR_TOKEN}`,
},
});
const data = await response.json();
console.log(data);
import requests
response = requests.get('https://cockpit.voxbi.com/api/v1/{pbx_id}/user/{employee_id}/corrections',
headers={'Authorization': f'Bearer {YOUR_TOKEN}'}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
'http' => [
'method' => 'GET',
'header' => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
],
]);
$response = file_get_contents('https://cockpit.voxbi.com/api/v1/{pbx_id}/user/{employee_id}/corrections', false, $context);
$data = json_decode($response, true);
print_r($data);
No example for this status.
{ … }
"error": "Authorization Token is missing"
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57No example for this status.
{ … }
"errors": { … }
"filter": [ … ],
"The filter field must be an array."
],
"sort": [ … ],
"The sort field must be a string."
],
"page": [ … ],
"The page field must be an integer."
],
"per_page": [ … ]
"The per page field must be an integer."
]
}
}
Cache-Control
string
example:
private, must-revalidate
Connection
string
example:
keep-alive
Content-Type
string
example:
application/json
Vary
string
example:
Origin
X-RateLimit-Limit
integer
Max requests allowed in the current rate-limit window.
example:
60
X-RateLimit-Remaining
integer
Requests remaining in the current rate-limit window.
example:
57