Webhook крајње тачке
Систем веб-хукова заснован на крајњим тачкама омогућава Вам да региструјете више одредишта по организацији, свако са сопственом тајном, сопственим статусом и сопственом претплатом на подскуп типова догађаја. Ово је препоручени модел за све нове интеграције.
Упоредите са застарелим веб-хуком са једним URL-ом, који је задржан ради компатибилности са старијим верзијама, али подржава само један URL по организацији.
Крајње тачке
| Метод | Путања | Потребна улога | Опис |
|---|---|---|---|
GET | /v1/developer/webhook-endpoints | admin+ | Прикажите листу крајњих тачака |
POST | /v1/developer/webhook-endpoints | admin+ | Креирајте крајњу тачку |
PATCH | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | Ажурирајте ознаку / URL / догађаје / статус |
DELETE | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | Обришите крајњу тачку |
POST | /v1/developer/webhook-endpoints/{endpoint_id}/test | admin+ | Пошаљите потписану пробну испоруку |
Објекат крајње тачке
{
"id": "c4d5e6f7-...",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z"
}
| Поље | Тип | Опис |
|---|---|---|
id | UUID | ID крајње тачке |
label | string | Приказано име, 1–120 знакова |
url | string | HTTPS URL; http://localhost је дозвољен за развој |
events | низ string вредности | Претплаћени типови догађаја (погледајте важеће вредности). Празан низ претплаћује на све догађаје |
status | string | active, disabled (ручно паузирано) или failing (аутоматски се поставља када испорука исцрпи распоред поновних покушаја од 24 ч без иједног 2xx) |
secret_hint | string | Прва 4 и последња 4 знака тајне за потписивање са елипсом (a1b2…9f0e) — довољно за упоређивање са тајном коју сте локално сачували без откривања пуне вредности |
created_at, updated_at | временска ознака |
Важећи типови догађаја
events се проверава у односу на овај тачан скуп — вредности ван листе
враћају 400. Погледајте каталог догађаја за облик
payload-а сваког типа.
telephony.incoming,telephony.complete,telephony.toolweb.incoming,web.complete,web.toolcall.gradedissue.reportedtest-call.completedalert.triggered
Статуси крајњих тачака
active— испоруке се одвијају нормално.disabled— ручно паузирано путемPATCH. Захтеви се не шаљу. Никада не мењамо статусdisabledкрајње тачке; враћање наactiveје увек Ваша одлука.failing— аутоматски се поставља када испорука на крајњу тачку потроши цео распоред поновних покушаја (8 покушаја током 24 сата) без иједног 2xx. Крајња тачка са неуспехом не прима даљи саобраћај. Када поправите крајњу тачку, путемPATCHвратите њен статус наactive; испоруке чији распоред поновних покушаја још није истекао настављају тамо где су стале.
Прикажите листу крајњих тачака
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Враћа низ објеката крајњих тачака.
Креирајте крајњу тачку
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"]
}'
result = requests.post(
"https://api.thunderphone.com/v1/developer/webhook-endpoints",
headers={"Authorization": "Bearer sk_live_YOUR_API_KEY"},
json={
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
},
).json()
secret = result["secret"]
endpoint_id = result["id"]
Поља захтева
| Поље | Тип | Обавезно | Опис |
|---|---|---|---|
label | ниска | да | 1–120 знакова |
url | ниска | да | HTTPS URL (http је дозвољен само за localhost / 127.0.0.1) |
events | низ | не | Празно/изостављено претплаћује на све догађаје. Морате користити вредности наведене у Важећим типовима догађаја; дупликати се уклањају |
Враћа 201 Created са ажурираним објектом крајње тачке, уз
додатно поље secret на највишем нивоу које садржи необрађени кључ за потписивање —
хексадецимални ниску од 48 знакова:
{
"id": "c4d5e6f7-…",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z",
"secret": "a1b2c37e08d94f5b16a2c8d90e7f3a4b5c6d7e8f90a19f0e"
}
Ажурирајте крајњу тачку
curl -X PATCH https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call + Grade events",
"events": ["telephony.incoming", "telephony.complete", "call.graded"]
}'
| Поље | Тип | Опис |
|---|---|---|
label | ниска | |
url | ниска | |
events | низ | |
status | ниска | active или disabled. Подесите active да бисте поново омогућили крајњу тачку коју је сервер означио као failing |
Враћа 200 OK са ажурираним објектом крајње тачке.
Пошаљите пробну испоруку
Пошаљите синтетички догађај webhook.test на једну крајњу тачку користећи уобичајени
канал испоруке, укључујући канонску JSON серијализацију,
X-ThunderPhone-Signature, евидентирање испоруке и праћење поновних покушаја.
Тест циља изабрану крајњу тачку без обзира на њен филтер events.
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Крајња тачка прима омотач попут овог:
{
"data": {
"message": "ThunderPhone webhook test",
"sent_at": "2026-07-17T20:12:34.567890+00:00"
},
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"type": "webhook.test"
}
API враћа 200 OK након првог покушаја, чак и ако одредиште
врати грешку. Проверите success, status, response_code и error
за исход испоруке:
{
"success": true,
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"event_type": "webhook.test",
"status": "delivered",
"response_code": 204,
"error": ""
}
webhook.test је синтетички и не може се додати у претплату events
крајње тачке. Ако први покушај не успе, испорука прати исти
распоред поновних покушаја као и уобичајене испоруке догађаја.
Обришите крајњу тачку
curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Враћа 204 No Content. Испорука на URL се одмах зауставља;
поновни покушаји који су у току се напуштају.