List validations for a home office request (user)
Returns the paginated list of validation (approval) records for a single home office request. The home office request is resolved from the underlying Tempus transaction, scoped to the authenticated tenant. Each record represents one validator's decision on the request.
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
home_office_request_id
path · string · uuid
*
UUID of the home office request (Tempus transaction)
page
query · integer
Page number to retrieve.
per_page
query · integer
Number of records per page (defaults to 15).
accept
header · string
example:
application/jsonResponses
Response schema
dataarray<object>
Each item — Approval (validation) record for a Tempus absence request, as serialized by the
V1 `TempusTransactionApprovalResource`. Each record represents one validator's
decision on a single absence request (`tempus_transaction_id`): whether it is
still pending, accepted, or rejected, together with an optional comment.
This object documents the exact keys returned by the resource, not the raw
database columns. Several keys are renamed projections of model attributes:
`mxvp_user_id` is the tenant identifier (`pbx_id`), `absence_request_id` is the
related transaction id (`tempus_transaction_id`), and `comment` is the stored
`note`. The `ext_id` field is a computed extension identifier resolved from the
validator. The `validator` object is only present when the `validator` relation
is loaded on the model; when absent the key is omitted entirely. The
`holiday_id` key is always returned but currently always null (reserved for
future use).
id*string · uuid
Unique identifier of the approval record.
read-only
example:
550e8400-e29b-41d4-a716-446655440000mxvp_user_id*string | null · uuid
Identifier of the Pbx (tenant) that owns this approval record (the model's
`pbx_id`). May be null for records not bound to a specific tenant.
example:
550e8400-e29b-41d4-a716-446655440001absence_request_id*string · uuid
Identifier of the absence request this approval belongs to (the related
Tempus transaction id).
example:
550e8400-e29b-41d4-a716-446655440002ext_id*string | null
Extension identifier of the validating employee, computed from the
validator. Null when the validator has no associated extension.
example:
201validatorobject
Summary of the employee who is responsible for this validation. Only
present when the `validator` relation is loaded on the model; otherwise the
key is omitted from the response.
idstring · uuid
Unique identifier of the validating employee.
example:
550e8400-e29b-41d4-a716-446655440003namestring | null
Display name of the validating employee, falling back to the linked
user's name when the employee has no name of its own. May be null.
example:
Jane Smithstatus*string
Current decision on the absence request: `pending` while awaiting the
validator, `accepted` when approved, or `rejected` when declined.
enum:
pending accepted rejectedexample:
pendingcomment*string | null
Optional free-form note left by the validator explaining the decision (the
model's `note`). Null when no comment was provided.
example:
Approved, please coordinate handover with the team.create_time*string | null · date-time
ISO 8601 timestamp of when the approval record was created.
read-only
example:
2024-03-01T08:29:07+00:00modified*string | null · date-time
ISO 8601 timestamp of when the approval record was last updated.
read-only
example:
2024-03-01T09:15:42+00:00holiday_id*string | null · uuid
Reserved for a future link to a holiday record. Always returned but
currently always null.
linksobject
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
metaobject
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 missingForbidden: the authenticated user is not allowed to view validations for this home office request.
Response schema
messagestring
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
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}/home-office-requests/{home_office_request_id}/validations
Base URL
Request sample
curl -X GET 'https://cockpit.voxbi.com/api/v1/{pbx_id}/home-office-requests/{home_office_request_id}/validations' \
-H 'Authorization: Bearer YOUR_TOKEN'
const response = await fetch('https://cockpit.voxbi.com/api/v1/{pbx_id}/home-office-requests/{home_office_request_id}/validations', {
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}/home-office-requests/{home_office_request_id}/validations',
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}/home-office-requests/{home_office_request_id}/validations', false, $context);
$data = json_decode($response, true);
print_r($data);
{ … }
"data": [ … ],
{ … }
"id": "550e8400-e29b-41d4-a716-446655440040",
"mxvp_user_id": "550e8400-e29b-41d4-a716-446655440000",
"absence_request_id": "550e8400-e29b-41d4-a716-446655440030",
"ext_id": "201",
"validator": { … },
"id": "550e8400-e29b-41d4-a716-446655440003",
"name": "Jane Smith"
},
"status": "accepted",
"comment": "Approved as requested.",
"create_time": "2024-03-01T08:29:07+00:00",
"modified": "2024-03-01T09:15:42+00:00",
"holiday_id": null
}
],
"links": { … },
"first": "https://cockpit.voxbi.com/tempus/api/v1/resources?page=1",
"last": "https://cockpit.voxbi.com/tempus/api/v1/resources?page=1",
"prev": null,
"next": null
},
"meta": { … }
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "https://cockpit.voxbi.com/tempus/api/v1/resources",
"per_page": 15,
"to": 1,
"total": 1
}
}
{ … }
"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{ … }
"message": "This action is unauthorized."
}
{ … }
"message": [ … ]
"Data not found"
]
}
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{ … }
"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