Voxbi Cockpit APIs
All endpoints

Submit a validation decision for an absence request (user)

Records the authenticated validator's decision (accepted or rejected) on an absence request. The user must have an employee record and be allowed to create an approval for the request. If the validator already submitted a final decision, the request is rejected with a conflict.

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.
absence_request_id path · string · uuid *
UUID of the absence request (Tempus transaction).

Request body · required

Request schema
status*string
The validation decision for the absence request.
enum: accepted rejected
example: accepted
commentstring | null
Optional free-form note explaining the decision.
length: 0–1000
example: Approved, please coordinate handover with the team.

Responses

The validation decision was recorded.
Response schema
message*string
example: Absence request validation created.
The absence request is no longer in a pending state and cannot be validated.
Response schema
messagestring
example: The absence request is not pending.
Authorization Token Missing. This error is returned when the authorization token is missing.
Response schema
errorstring
Error message
example: Authorization Token is missing
The authenticated user has no employee record or is not allowed to create an approval for this absence request.
Response schema
messagestring
example: An employee record is required to perform this action.
Data Not Found. This error is returned when the requested data is not found.
Response schema
messagearray<string>
[]string
A final validation decision has already been submitted by this validator.
Response schema
messagestring
example: This absence request has already been validated.
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
post https://cockpit.voxbi.com/api/v1/{pbx_id}/absence-requests/{absence_request_id}/validations
Base URL
Request sample
curl -X POST 'https://cockpit.voxbi.com/api/v1/{pbx_id}/absence-requests/{absence_request_id}/validations' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  --data '{"status":"accepted","comment":"Approved, please coordinate handover with the team."}'
const response = await fetch('https://cockpit.voxbi.com/api/v1/{pbx_id}/absence-requests/{absence_request_id}/validations', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${YOUR_TOKEN}`,
  },
  body: JSON.stringify({
    "status": "accepted",
    "comment": "Approved, please coordinate handover with the team."
}),
});

const data = await response.json();
console.log(data);
import requests

response = requests.post('https://cockpit.voxbi.com/api/v1/{pbx_id}/absence-requests/{absence_request_id}/validations',
    headers={'Authorization': f'Bearer {YOUR_TOKEN}'},
    json={
    "status": "accepted",
    "comment": "Approved, please coordinate handover with the team."
}
)
response.raise_for_status()
data = response.json()
print(data)
<?php
$context = stream_context_create([
    'http' => [
        'method'  => 'POST',
        'header'  => "Content-Type: application/json\r\nAuthorization: Bearer YOUR_TOKEN",
        'content' => '{
    \"status\": \"accepted\",
    \"comment\": \"Approved, please coordinate handover with the team.\"
}',
    ],
]);

$response = file_get_contents('https://cockpit.voxbi.com/api/v1/{pbx_id}/absence-requests/{absence_request_id}/validations', false, $context);
$data = json_decode($response, true);
print_r($data);
Sample request
{}
"status": "accepted",
"comment": "Approved, please coordinate handover with the team."
}
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.
{}
"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
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