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"
}
ਫੀਲਡਕਿਸਮਵੇਰਵਾ
idUUIDਐਂਡਪੌਇੰਟ id
labelstringਡਿਸਪਲੇ ਨਾਮ, 1–120 ਅੱਖਰ
urlstringHTTPS URL; ਡਿਵੈਲਪਮੈਂਟ ਲਈ http://localhost ਮਨਜ਼ੂਰ ਹੈ
eventsਸਟਰਿੰਗ ਦੀ ਐਰੇਸਬਸਕ੍ਰਾਈਬ ਕੀਤੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ (ਵੈਧ ਮੁੱਲ ਵੇਖੋ)। ਖਾਲੀ ਐਰੇ ਸਾਰੇ ਇਵੈਂਟਾਂ ਦੀ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਕਰਦੀ ਹੈ
statusstringactive, disabled (ਹੱਥੀਂ ਰੋਕਿਆ ਗਿਆ), ਜਾਂ failing (ਜਦੋਂ ਕੋਈ ਡਿਲਿਵਰੀ ਇੱਕ ਵੀ 2xx ਤੋਂ ਬਿਨਾਂ ਆਪਣਾ 24 ਘੰਟਿਆਂ ਦਾ ਰੀਟ੍ਰਾਈ ਸ਼ਡਿਊਲ ਖਤਮ ਕਰ ਲੈਂਦੀ ਹੈ ਤਾਂ ਆਪਣੇ ਆਪ ਸੈੱਟ ਹੁੰਦਾ ਹੈ)
secret_hintstringਸਾਈਨਿੰਗ ਸੀਕ੍ਰੇਟ ਦੇ ਪਹਿਲੇ 4 ਅਤੇ ਆਖਰੀ 4 ਅੱਖਰ, ਵਿਚਕਾਰ ਅੰਡਾਕਾਰ ਚਿੰਨ੍ਹ ਦੇ ਨਾਲ (a1b2…9f0e) — ਪੂਰਾ ਮੁੱਲ ਦਿਖਾਏ ਬਿਨਾਂ, ਤੁਹਾਡੇ ਵੱਲੋਂ ਲੋਕਲ ਤੌਰ 'ਤੇ ਸੰਭਾਲੇ ਸੀਕ੍ਰੇਟ ਨਾਲ ਮਿਲਾਣ ਲਈ ਕਾਫ਼ੀ
created_at, updated_atਟਾਈਮਸਟੈਂਪ

ਵੈਧ ਇਵੈਂਟ ਕਿਸਮਾਂ

events ਨੂੰ ਇਸ ਸਟੀਕ ਸੈੱਟ ਦੇ ਵਿਰੁੱਧ ਵੈਲੀਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ — ਸੂਚੀ ਤੋਂ ਬਾਹਰ ਦੇ ਮੁੱਲ 400 ਵਾਪਸ ਕਰਦੇ ਹਨ। ਹਰ ਕਿਸਮ ਦੇ ਪੇਲੋਡ ਆਕਾਰ ਲਈ ਇਵੈਂਟ ਕੈਟਾਲੌਗ ਵੇਖੋ।

ਐਂਡਪੌਇੰਟ ਸਥਿਤੀਆਂ


ਐਂਡਪੌਇੰਟਾਂ ਦੀ ਸੂਚੀ

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। ਸਰਵਰ ਵੱਲੋਂ failing ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਐਂਡਪੌਇੰਟ ਨੂੰ ਮੁੜ ਸਮਰੱਥ ਕਰਨ ਲਈ active ਸੈੱਟ ਕਰੋ

ਅੱਪਡੇਟ ਕੀਤੇ ਐਂਡਪੌਇੰਟ ਆਬਜੈਕਟ ਨਾਲ 200 OK ਵਾਪਸ ਕਰਦਾ ਹੈ।


ਇੱਕ ਟੈਸਟ ਡਿਲਿਵਰੀ ਭੇਜੋ

ਕੈਨੋਨਿਕਲ JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ, X-ThunderPhone-Signature, ਡਿਲਿਵਰੀ ਰਿਕਾਰਡਿੰਗ ਅਤੇ ਰੀਟ੍ਰਾਈ ਬੁੱਕਕੀਪਿੰਗ ਸਮੇਤ, ਆਮ ਡਿਲਿਵਰੀ ਪਾਈਪਲਾਈਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਐਂਡਪੌਇੰਟ ਨੂੰ ਸਿੰਥੈਟਿਕ webhook.test ਘਟਨਾ ਭੇਜੋ। ਟੈਸਟ ਉਸ ਦੇ 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 ਨੂੰ ਡਿਲਿਵਰੀ ਤੁਰੰਤ ਰੁਕ ਜਾਂਦੀ ਹੈ; ਚੱਲ ਰਹੀਆਂ ਮੁੜ-ਕੋਸ਼ਿਸ਼ਾਂ ਛੱਡ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।


ਸੰਬੰਧਿਤ