curl --request POST \
--url https://api.vizito.eu/api/companies/{company_id}/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>'})
};
fetch('https://api.vizito.eu/api/companies/{company_id}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vizito.eu/api/companies/{company_id}/webhooks"
payload = { "url": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vizito.eu/api/companies/{company_id}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"message": "Webhook configured successfully",
"webhook_id": "5f2a1b9c4d3e2f0011223344"
}{
"error": "Invalid API key"
}{
"message": "<string>"
}Configuring the webhook
Creates the webhook or replaces the existing one. Saving also clears the consecutive-failure counter, so this is how you re-enable a webhook that was switched off.
Events carry eventName and companyId plus the ids of what changed:
visitor_signed_in, visitor_signed_out, visitor_updated,
visitor_screening_approved, visitor_screening_rejected,
registered_visitor_created, registered_visitor_updated,
registered_visitor_deleted, registered_visitor_preregistered,
device_added, device_online, device_offline, device_deleted,
company_updated.
curl --request POST \
--url https://api.vizito.eu/api/companies/{company_id}/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>'})
};
fetch('https://api.vizito.eu/api/companies/{company_id}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vizito.eu/api/companies/{company_id}/webhooks"
payload = { "url": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vizito.eu/api/companies/{company_id}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"message": "Webhook configured successfully",
"webhook_id": "5f2a1b9c4d3e2f0011223344"
}{
"error": "Invalid API key"
}{
"message": "<string>"
}Authorizations
An API key issued in the Backoffice, sent as Authorization: Bearer vzk_<key id>_<secret>.
A Microsoft Entra ID access token obtained with the client credentials
grant is accepted on the same header. The same value is also accepted in
an X-API-Key header.
Path Parameters
The location. A 24-character hexadecimal id.
^[0-9a-fA-F]{24}$"5f2a1b9c4d3e2f0011223344"
Body
A valid, publicly reachable URL.
With GET the event is sent as query parameters instead of a body.
POST, PUT, PATCH, GET Sent as HTTP Basic credentials with auth_password.

