Webhook крајње тачке

Систем веб-хукова заснован на крајњим тачкама омогућава Вам да региструјете више одредишта по организацији, свако са сопственом тајном, сопственим статусом и сопственом претплатом на подскуп типова догађаја. Ово је препоручени модел за све нове интеграције.

Упоредите са застарелим веб-хуком са једним URL-ом, који је задржан ради компатибилности са старијим верзијама, али подржава само један URL по организацији.

Крајње тачке

МетодПутањаПотребна улогаОпис
GET/v1/developer/webhook-endpointsadmin+Прикажите листу крајњих тачака
POST/v1/developer/webhook-endpointsadmin+Креирајте крајњу тачку
PATCH/v1/developer/webhook-endpoints/{endpoint_id}admin+Ажурирајте ознаку / URL / догађаје / статус
DELETE/v1/developer/webhook-endpoints/{endpoint_id}admin+Обришите крајњу тачку
POST/v1/developer/webhook-endpoints/{endpoint_id}/testadmin+Пошаљите потписану пробну испоруку

Објекат крајње тачке

{
  "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"
}
ПољеТипОпис
idUUIDID крајње тачке
labelstringПриказано име, 1–120 знакова
urlstringHTTPS URL; http://localhost је дозвољен за развој
eventsниз string вредностиПретплаћени типови догађаја (погледајте важеће вредности). Празан низ претплаћује на све догађаје
statusstringactive, disabled (ручно паузирано) или failing (аутоматски се поставља када испорука исцрпи распоред поновних покушаја од 24 ч без иједног 2xx)
secret_hintstringПрва 4 и последња 4 знака тајне за потписивање са елипсом (a1b2…9f0e) — довољно за упоређивање са тајном коју сте локално сачували без откривања пуне вредности
created_at, updated_atвременска ознака

Важећи типови догађаја

events се проверава у односу на овај тачан скуп — вредности ван листе враћају 400. Погледајте каталог догађаја за облик payload-а сваког типа.

Статуси крајњих тачака


Прикажите листу крајњих тачака

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 се одмах зауставља; поновни покушаји који су у току се напуштају.


Повезано