ThunderPhone 2.0 er lansert.Kom i gang selv, fra 2 ¢/min.Les mer om lanseringen

Webhooks

Webhook-endepunkter

Administrer flere webhook-URL-er med hemmeligheter og hendelsesfiltre per endepunkt.

Det endepunktbaserte webhook-systemet lar deg registrere flere destinasjoner per organisasjon, hver med sin egen hemmelighet, sin egen status og sitt eget abonnement på et utvalg hendelsestyper. Dette er den anbefalte modellen for alle nye integrasjoner.

Sammenlign med den eldre webhooken med én URL, som beholdes for bakoverkompatibilitet, men bare støtter én URL per organisasjon.

Endepunkter

MetodeStiPåkrevd rolleBeskrivelse
GET/v1/developer/webhook-endpointsadmin+Vis endepunkter
POST/v1/developer/webhook-endpointsadmin+Opprett et endepunkt
PATCH/v1/developer/webhook-endpoints/{endpoint_id}admin+Oppdater etikett / URL / hendelser / status
DELETE/v1/developer/webhook-endpoints/{endpoint_id}admin+Slett et endepunkt
POST/v1/developer/webhook-endpoints/{endpoint_id}/testadmin+Send en signert testleveranse

Endepunktobjekt

{
  "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
idUUIDEndepunkt-ID
labelstringVisningsnavn, 1–120 tegn
urlstringHTTPS-URL; http://localhost er tillatt for utvikling
eventsarray of stringAbonnerte hendelsestyper (se gyldige verdier). En tom matrise abonnerer på alle hendelser unntatt hendelsene per tur som krever eksplisitt abonnement (telephony.turn / web.turn)
statusstringactive, disabled (manuelt satt på pause) eller failing (angis automatisk når en leveranse bruker opp sin 24-timers prøveplan uten en eneste 2xx)
secret_hintstringDe første 4 og siste 4 tegnene i signeringshemmeligheten med en ellipse (a1b2…9f0e) — nok til å kryssreferere hemmeligheten du lagret lokalt uten å eksponere hele verdien
created_at, updated_attimestamp

Gyldige hendelsestyper

events valideres mot nøyaktig dette settet — verdier utenfor listen returnerer 400. Se Hendelseskatalog for nyttelastformatet til 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

Endepunktstatuser

  • active — leveranser flyter normalt.
  • disabled — manuelt satt på pause via PATCH. Ingen forespørsler sendes. Vi endrer aldri statusen til et disabled-endepunkt; det er alltid ditt valg å endre det tilbake til active.
  • failing — angis automatisk når en leveranse til endepunktet bruker opp hele prøveplanen sin (8 forsøk over 24 timer) uten å noen gang få en 2xx. Et endepunkt med feilstatus mottar ingen videre trafikk. Når endepunktet er rettet, bruker du PATCH for å endre statusen tilbake til active; leveranser der prøveplanen ennå ikke er utløpt, fortsetter der de slapp.

Vis endepunkter

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

Returnerer en matrise med endepunktobjekter.


Opprett et endepunkt

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"]

Forespørselsfelt

FeltTypePåkrevdBeskrivelse
labelstringja1–120 tegn
urlstringjaHTTPS-URL (http er bare tillatt for localhost / 127.0.0.1)
eventsarrayneiTomt/utelatt abonnerer på alle hendelser unntatt telephony.turn / web.turn, som krever et eksplisitt abonnement. Må bruke verdiene oppført i Gyldige hendelsestyper; duplikater fjernes

Returnerer 201 Created med det endepunktobjektet samt et ekstra secret-felt på øverste nivå som inneholder den rå signeringsnøkkelen — en heksadesimal 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"
}

Oppdater et endepunkt

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. Angi active for å aktivere et endepunkt på nytt som serveren har merket som failing

Returnerer 200 OK med det oppdaterte endepunktobjektet.


Send en testlevering

Send en syntetisk webhook.test-hendelse til ett endepunkt via den vanlige leveringsprosessen, inkludert kanonisk JSON-serialisering, X-ThunderPhone-Signature, leveringsregistrering og sporing av nye forsøk. Testen retter seg mot det valgte endepunktet uavhengig av events-filteret.

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

Endepunktet mottar en konvolutt som denne:

{
  "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 etter første forsøk, selv om destinasjonen returnerer en feil. Kontroller 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 legges til i et endepunkts events-abonnement. Hvis første forsøk mislykkes, følger leveringen samme plan for nye forsøk som vanlige hendelsesleveringer.


Slett et endepunkt

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 umiddelbart; pågående nye forsøk avbrytes.


Relatert