Voxbi Cockpit APIs
All endpoints

Get the time points behind a pending correction (user)

Returns the day's time points for the employee tied to a single pending correction, giving the validator the surrounding clock events for context. The correction must belong to an employee within the authenticated validator's correction scope; otherwise a 403 is returned. A 400 is returned when the correction has neither a new nor an old time, or its requester has no linked user.

The response is a bare array of time point objects (not wrapped in data), each serialized by the V1 PendingCorrectionDetailsResource.

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 *
UUID of the PBX tenant.
correction_id path · string · uuid *
UUID of the pending correction to inspect.
accept header · string
example: application/json

Responses

OK. Time points for the correction's day.
Response schema
Each item — Compact summary of a single Tempus time point (clock event) that is awaiting manual correction by a validator, as serialized by the V1 `PendingCorrectionDetailsResource`. It surfaces just enough context for a reviewer to identify the event in a pending-corrections list: when it occurred (split into a calendar date and a wall-clock time) and the presentation status it carries. The underlying `start_time` of the time point is a single timestamp; this resource deliberately splits it into separate `date` and `time` strings (both derived from the same moment) rather than returning a combined date-time value. The nested `status` object describes the Tempus status assigned to the time point along with the styling hints (colours and icon) the UI uses to render it. When the time point has no associated status, the status fields fall back to null identifiers and empty-string styling values.
id*string · uuid
Unique identifier of the time point awaiting correction.
read-only
example: 550e8400-e29b-41d4-a716-446655440000
date*string | null · date
Calendar date of the time point's start, formatted as `YYYY-MM-DD`. Null when the time point has no recorded start time.
example: 2024-03-01
time*string | null
Wall-clock time of the time point's start, formatted as `HH:MM:SS` (24-hour). Null when the time point has no recorded start time.
example: 08:29:07
status*object
The Tempus status assigned to this time point, together with the styling hints used to render it. Always present as an object; its `id` and `name` are null and the styling values are empty strings when no status is linked to the time point.
id*string | null · uuid
Unique identifier of the linked Tempus status, or null when the time point has no associated status.
example: 550e8400-e29b-41d4-a716-446655440001
name*string | null
Human-readable name of the status (for example a work, break, or absence label). Null when no status is linked.
example: Working
font_color*string
Foreground (text) colour used to render the status, as a CSS colour value (typically a hex code). Empty string when no styling is defined.
example: #FFFFFF
background_color*string
Background colour used to render the status, as a CSS colour value (typically a hex code). Empty string when no styling is defined.
example: #2E7D32
icon*string
Icon CSS class used to represent the status in the UI. Empty string when no styling is defined.
example: la la-briefcase
Bad request. The correction has no usable date, or its requester has no linked user account.
Response schema
messagestring
example: Something went wrong.
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example: Authorization Token is missing
Forbidden. The authenticated user is not part of the PBX, is not a Tempus employee in this tenant, or the correction is outside their validation scope.
Response schema
messagestring
example: This action is unauthorized.
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}/validator/pending-corrections/{correction_id}/details
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/{pbx_id}/validator/pending-corrections/{correction_id}/details' \
  -H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/{pbx_id}/validator/pending-corrections/{correction_id}/details', {
  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}/validator/pending-corrections/{correction_id}/details',
    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}/validator/pending-corrections/{correction_id}/details', false, $context);
$data = json_decode($response, true);
print_r($data);
No example for this status.
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: 57
No 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