List everything waiting on you to decide (user)
Every pending request this employee is asked to decide, of every type, in one date-ordered feed: absence, illness and special leave, home office day-rows, time-point corrections, and requests to remove already approved days. The inbox view, for a client that pages one list rather than one list per type.
Read off the approval rows addressed to them, so approval chains are honoured
exactly as the decision endpoints honour them: which step holds the request,
supervisors, self-approval grants, and restarts. Requests at a step below theirs
are included with can_decide_now: false, so a validator further up a chain sees
what is coming rather than having it appear from nowhere.
Two payload shapes share the feed, so each entry names its own with kind and
carries the request nested under request. Paging is across the merged feed, so
per_page: 10 returns the ten newest entries whatever their types, rather than ten
of each.
Your own employee record only: another employee's id returns 403, since a queue is built from rows addressed to one person.
Narrow it with filter[kind][] when a screen shows one type. There used to be three
sibling paths as well (/absences, /home-office, /time-point-corrections); they were
dropped because the filter is applied server-side before pagination, so they only offered
a second way to ask the same question. GET /v2/{pbx}/employee/{employee}/validator
reports how many are waiting in each type.
Note the entry shape if you used those siblings: they returned the request's fields at
the top level, while this nests them under request alongside kind. There were no v2
consumers, so there is no compatibility shim.
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>
application/jsonResponses
data*array<object>
pagination*object
143710Authorization Token is missingYou do not have access to this PBX.User not found.The given data was invalid.errorsobject
filterarray<string>
sortarray<string>
pagearray<string>
per_pagearray<string>
https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/validator/queue
curl -X GET 'https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/validator/queue' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/v2/{pbx}/employee/{employee}/validator/queue', {
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/v2/{pbx}/employee/{employee}/validator/queue',
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/v2/{pbx}/employee/{employee}/validator/queue', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … },
"request": { … },
"employee": { … },
"dates": [ … ],
"requested_time": { … },
"step": { … },
{ … },
"request": { … },
"employee": { … },
"old_status": { … },
"new_status": { … },
"step": { … },
"awaiting": [ … ]
{ … }
{ … }
"request": { … },
"dates": [ … ],
"requested_time": { … },
"pagination": { … }
{ … }
private, must-revalidatekeep-aliveapplication/jsonOrigin6057{ … }
"errors": { … }
"filter": [ … ],
"sort": [ … ],
"page": [ … ],
"per_page": [ … ]
private, must-revalidatekeep-aliveapplication/jsonOrigin6057