Webhook krajnje točke
Sustav web-dojavnika temeljen na krajnjim točkama omogućuje Vam registraciju više odredišta po organizaciji, pri čemu svako ima vlastitu tajnu, vlastiti status i vlastitu pretplatu na podskup vrsta događaja. Ovo je preporučeni model za sve nove integracije.
Usporedite sa zastarjelim web-dojavnikom s jednim URL-om, koji je zadržan radi kompatibilnosti sa starijim verzijama, ali podržava samo jedan URL po organizaciji.
Krajnje točke
| Metoda | Putanja | Potrebna uloga | Opis |
|---|---|---|---|
GET | /v1/developer/webhook-endpoints | admin+ | Prikaži krajnje točke |
POST | /v1/developer/webhook-endpoints | admin+ | Stvori krajnju točku |
PATCH | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | Ažuriraj oznaku / URL / događaje / status |
DELETE | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | Izbriši krajnju točku |
POST | /v1/developer/webhook-endpoints/{endpoint_id}/test | admin+ | Pošalji potpisanu testnu isporuku |
Objekt krajnje točke
{
"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"
}
| Polje | Vrsta | Opis |
|---|---|---|
id | UUID | ID krajnje točke |
label | string | Naziv za prikaz, 1–120 znakova |
url | string | HTTPS URL; http://localhost dopušten za razvoj |
events | array of string | Pretplaćene vrste događaja (pogledajte valjane vrijednosti). Prazno polje pretplaćuje na sve događaje |
status | string | active, disabled (ručno pauzirano) ili failing (automatski postavljeno kada isporuka iscrpi raspored ponovnih pokušaja od 24 h bez ijednog 2xx odgovora) |
secret_hint | string | Prva 4 i posljednja 4 znaka tajne za potpisivanje s trotočkom (a1b2…9f0e) — dovoljno za usporedbu s tajnom koju ste lokalno spremili, bez otkrivanja cijele vrijednosti |
created_at, updated_at | timestamp |
Valjane vrste događaja
events se provjerava prema ovom točnom skupu — vrijednosti izvan popisa
vraćaju 400. Za oblik korisnog tereta svake vrste pogledajte Katalog događaja.
telephony.incoming,telephony.complete,telephony.toolweb.incoming,web.complete,web.toolcall.gradedissue.reportedtest-call.completedalert.triggered
Statusi krajnjih točaka
active— isporuke se odvijaju normalno.disabled— ručno pauzirano putemPATCH. Ne šalju se zahtjevi. Nikada ne mijenjamo status krajnje točkedisabled; vraćanje naactiveuvijek je Vaša odluka.failing— postavlja se automatski kada isporuka na krajnju točku iscrpi cijeli raspored ponovnih pokušaja (8 pokušaja tijekom 24 sata), a da nikada ne dobije 2xx odgovor. Krajnja točka u stanju neuspjeha ne prima daljnji promet. Nakon što popravite krajnju točku, putemPATCHvratite njezin status naactive; isporuke čiji raspored ponovnih pokušaja još nije istekao nastavljaju ondje gdje su stale.
Prikaži krajnje točke
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Vraća polje objekata krajnjih točaka.
Izradite krajnju točku
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"]
Polja zahtjeva
| Polje | Vrsta | Obavezno | Opis |
|---|---|---|---|
label | niz znakova | da | 1–120 znakova |
url | niz znakova | da | HTTPS URL (http je dopušten samo za localhost / 127.0.0.1) |
events | polje | ne | Prazno ili izostavljeno polje pretplaćuje na sve događaje. Moraju se koristiti vrijednosti navedene u odjeljku Važeće vrste događaja; duplikati se uklanjaju |
Vraća 201 Created s objektom krajnje točke i dodatnim
poljem najviše razine secret koje sadrži neobrađeni ključ za potpisivanje — heksadecimalni
niz od 48 znakova:
{
"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"
}
Ažurirajte krajnju točku
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"]
}'
| Polje | Vrsta | Opis |
|---|---|---|
label | niz znakova | |
url | niz znakova | |
events | polje | |
status | niz znakova | active ili disabled. Postavite active da biste ponovno omogućili krajnju točku koju je poslužitelj označio kao failing |
Vraća 200 OK s ažuriranim objektom krajnje točke.
Pošaljite testnu isporuku
Pošaljite sintetički događaj webhook.test jednoj krajnjoj točki putem standardnog
tijeka isporuke, uključujući kanonsku JSON serijalizaciju,
X-ThunderPhone-Signature, bilježenje isporuke i evidentiranje ponovnih pokušaja.
Test je usmjeren na odabranu krajnju točku bez obzira na njezin filtar events.
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Krajnja točka prima omotnicu poput ove:
{
"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 vraća 200 OK nakon prvog pokušaja, čak i ako odredište
vrati pogrešku. Provjerite success, status, response_code i error
za ishod isporuke:
{
"success": true,
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"event_type": "webhook.test",
"status": "delivered",
"response_code": 204,
"error": ""
}
webhook.test je sintetički i ne može se dodati pretplati krajnje točke na events.
Ako prvi pokušaj ne uspije, isporuka slijedi isti raspored ponovnih pokušaja
kao i uobičajene isporuke događaja.
Izbrišite krajnju točku
curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
Vraća 204 No Content. Isporuka na URL odmah prestaje;
ponovni pokušaji u tijeku se prekidaju.