Create a webhook
curl --request POST \
--url https://app.tikk.chat/api/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://yourapp.com/tikk/webhooks",
"events": [
"booking.confirmed",
"booking.cancelled"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://yourapp.com/tikk/webhooks',
events: ['booking.confirmed', 'booking.cancelled']
})
};
fetch('https://app.tikk.chat/api/v1/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.tikk.chat/api/v1/webhooks"
payload = {
"url": "https://yourapp.com/tikk/webhooks",
"events": ["booking.confirmed", "booking.cancelled"]
}
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://app.tikk.chat/api/v1/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' => 'https://yourapp.com/tikk/webhooks',
'events' => [
'booking.confirmed',
'booking.cancelled'
]
]),
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;
}{
"data": {
"id": 1830219341,
"url": "https://yourapp.com/tikk/webhooks",
"events": [
"booking.confirmed",
"booking.cancelled"
],
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"signing_secret_source": "subscription",
"signing_secret": "tikk_whsec_4f8Kd02LmQx7Rz1VbN6cT9yHs3Ue5Wa",
"last_success_at": null,
"last_failure_at": null,
"created_at": "2026-10-01T09:00:00+00:00",
"updated_at": "2026-10-01T09:00:00+00:00"
}
}Webhooks
Create a webhook
Starts sending the events you pick to url. See
Webhooks for the payload, the signature and
retries.
For an API key the response includes signing_secret, the secret this
webhook’s deliveries are signed with. It’s only returned here: store it
now. For a partner app, deliveries are signed with the app’s secret
from the developer portal instead.
The URL must use HTTPS and resolve only to public addresses. A credential can have up to 10 webhooks, one per URL.
Scopes: webhooks.write and bookings.read · Plan: Pro
POST
/
webhooks
Create a webhook
curl --request POST \
--url https://app.tikk.chat/api/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://yourapp.com/tikk/webhooks",
"events": [
"booking.confirmed",
"booking.cancelled"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://yourapp.com/tikk/webhooks',
events: ['booking.confirmed', 'booking.cancelled']
})
};
fetch('https://app.tikk.chat/api/v1/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.tikk.chat/api/v1/webhooks"
payload = {
"url": "https://yourapp.com/tikk/webhooks",
"events": ["booking.confirmed", "booking.cancelled"]
}
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://app.tikk.chat/api/v1/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' => 'https://yourapp.com/tikk/webhooks',
'events' => [
'booking.confirmed',
'booking.cancelled'
]
]),
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;
}{
"data": {
"id": 1830219341,
"url": "https://yourapp.com/tikk/webhooks",
"events": [
"booking.confirmed",
"booking.cancelled"
],
"status": "active",
"disabled_reason": null,
"consecutive_failures": 0,
"signing_secret_source": "subscription",
"signing_secret": "tikk_whsec_4f8Kd02LmQx7Rz1VbN6cT9yHs3Ue5Wa",
"last_success_at": null,
"last_failure_at": null,
"created_at": "2026-10-01T09:00:00+00:00",
"updated_at": "2026-10-01T09:00:00+00:00"
}
}Authorizations
An API key from Settings → API Keys (starts with tikk_sk_), or an
OAuth access token for a partner app. Both carry scopes; each endpoint
lists the one it needs.
Body
application/json
Response
The new webhook, with its signing secret for API keys.
Show child attributes
Show child attributes