ThunderPhone 2.0 er lanceret.Selvbetjening fra 2 cent/min.Læs mere om lanceringen

Webhooks

Webhook-slutpunkter

Administrer flere webhook-URL

Det endepunktbaserede webhook-system giver dig mulighed for at registrere flere destinationer pr. organisation, hver med sin egen hemmelighed, sin egen status og sit eget abonnement på et udvalg af hændelsestyper. Dette er den anbefalede model for alle nye integrationer.

Sammenlign med den ældre webhook med én URL, som bevares af hensyn til bagudkompatibilitet, men kun understøtter én URL pr. organisation.

Endepunkter

MetodeStiPåkrævet rolleBeskrivelse
GET/v1/developer/webhook-endpointsadmin+Vis endepunkter
POST/v1/developer/webhook-endpointsadmin+Opret et endepunkt
PATCH/v1/developer/webhook-endpoints/{endpoint_id}admin+Opdater etiket / URL / hændelser / status
DELETE/v1/developer/webhook-endpoints/{endpoint_id}admin+Slet et endepunkt
POST/v1/developer/webhook-endpoints/{endpoint_id}/testadmin+Send en signeret testlevering

Endepunktsobjekt

{
  "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"
}
FeltTypeBeskrivelse
idUUIDEndepunkts-id
labelstringVist navn, 1–120 tegn
urlstringHTTPS-URL; http://localhost er tilladt til udvikling
eventsarray of stringAbonnerede hændelsestyper (se gyldige værdier). Et tomt array abonnerer på alle hændelser undtagen de eksplicitte hændelser pr. tur (telephony.turn / web.turn)
statusstringactive, disabled (sat på pause manuelt) eller failing (indstilles automatisk, når en levering opbruger sin genforsøgsplan på 24 timer uden en eneste 2xx)
secret_hintstringDe første 4 og sidste 4 tegn i signeringshemmeligheden med en ellipse (a1b2…9f0e) — nok til at krydsreferere den hemmelighed, du har gemt lokalt, uden at afsløre hele værdien
created_at, updated_attimestamp

Gyldige hændelsestyper

events valideres mod præcis dette sæt — værdier uden for listen returnerer 400. Se Hændelseskatalog for nyttelastformatet for hver type.

  • telephony.incoming, telephony.complete, telephony.tool, telephony.turn
  • web.incoming, web.complete, web.tool, web.turn
  • call.graded
  • issue.reported
  • test-call.completed
  • alert.triggered

Endepunktsstatusser

  • active — leverancer forløber normalt.
  • disabled — sat på pause manuelt via PATCH. Der sendes ingen anmodninger. Vi ændrer aldrig status for et disabled endepunkt; det er altid din beslutning at ændre det tilbage til active.
  • failing — indstilles automatisk, når en levering til endepunktet bruger hele sin genforsøgsplan (8 forsøg over 24 timer) uden nogensinde at få en 2xx. Et fejlende endepunkt modtager ingen yderligere trafik. Når endepunktet er rettet, skal du med PATCH ændre status tilbage til active; leverancer, hvis genforsøgsplan endnu ikke er udløbet, fortsætter, hvor de slap.

Vis endepunkter

cURL
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Returnerer et array af endepunktsobjekter.


Opret et endpoint

cURL
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"]
  }'
Python
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"]

Anmodningsfelter

FeltTypePåkrævetBeskrivelse
labelstringja1-120 tegn
urlstringjaHTTPS-URL (http er kun tilladt for localhost / 127.0.0.1)
eventsarraynejEn tom eller udeladt værdi abonnerer på alle hændelser undtagen telephony.turn / web.turn, som kræver et eksplicit abonnement. Skal bruge værdierne angivet i Gyldige hændelsestyper; dubletter fjernes

Returnerer 201 Created med det Endpoint-objekt, der er opdateret, samt et ekstra secret-felt på øverste niveau, der indeholder den rå signeringsnøgle - en hexadecimal streng på 48 tegn:

{
  "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"
}

Opdater et endpoint

cURL
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"]
  }'
FeltTypeBeskrivelse
labelstring
urlstring
eventsarray
statusstringactive eller disabled. Angiv active for at genaktivere et endpoint, som serveren har markeret som failing

Returnerer 200 OK med det opdaterede Endpoint-objekt.


Send en testlevering

Send en syntetisk webhook.test-hændelse til ét endpoint ved hjælp af den normale leveringspipeline, herunder kanonisk JSON-serialisering, X-ThunderPhone-Signature, leveringsregistrering og genforsøgsbogføring. Testen målretter det valgte endpoint uanset dets events-filter.

cURL
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Endpointet modtager en indpakning som:

{
  "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'et returnerer 200 OK efter det første forsøg, også hvis destinationen returnerer en fejl. Kontrollér success, status, response_code og error for leveringsresultatet:

{
  "success": true,
  "event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
  "event_type": "webhook.test",
  "status": "delivered",
  "response_code": 204,
  "error": ""
}

webhook.test er syntetisk og kan ikke føjes til et endpoints events- abonnement. Hvis det første forsøg mislykkes, følger leveringen den samme genforsøgsplan som normale hændelsesleveringer.


Slet et endpoint

cURL
curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

Returnerer 204 No Content. Levering til URL'en stopper straks; igangværende genforsøg opgives.


Relateret