ویب ہُک اینڈ پوائنٹس
اینڈپوائنٹ پر مبنی webhook نظام آپ کو ہر تنظیم کے لیے متعدد منزلیں رجسٹر کرنے دیتا ہے، جن میں سے ہر ایک کا اپنا secret، اپنی status، اور event اقسام کے ایک ذیلی مجموعے کی اپنی subscription ہوتی ہے۔ تمام نئی integrations کے لیے یہی تجویز کردہ ماڈل ہے۔
اس کا موازنہ پرانے واحد-URL webhook سے کریں، جسے backward compatibility کے لیے برقرار رکھا گیا ہے، مگر یہ ہر تنظیم کے لیے صرف ایک URL کی معاونت کرتا ہے۔
اینڈپوائنٹس
| طریقہ | پاتھ | مطلوبہ کردار | وضاحت |
|---|---|---|---|
GET | /v1/developer/webhook-endpoints | admin+ | اینڈپوائنٹس کی فہرست |
POST | /v1/developer/webhook-endpoints | admin+ | ایک اینڈپوائنٹ بنائیں |
PATCH | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | لیبل / URL / events / status اپ ڈیٹ کریں |
DELETE | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | ایک اینڈپوائنٹ حذف کریں |
POST | /v1/developer/webhook-endpoints/{endpoint_id}/test | admin+ | دستخط شدہ ٹیسٹ ڈیلیوری بھیجیں |
اینڈپوائنٹ آبجیکٹ
{
"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"
}
| فیلڈ | قسم | وضاحت |
|---|---|---|
id | UUID | اینڈپوائنٹ id |
label | string | ڈسپلے نام، 1–120 حروف |
url | string | HTTPS URL؛ dev کے لیے http://localhost کی اجازت ہے |
events | string کا array | subscribed event اقسام (درست اقدار دیکھیں)۔ خالی array تمام events کو subscribe کرتا ہے |
status | string | active، disabled (دستی طور پر روکا گیا)، یا failing (جب کوئی ڈیلیوری ایک بھی 2xx کے بغیر اپنے 24 گھنٹے کے retry شیڈول کو مکمل کر لے تو خودکار طور پر سیٹ ہوتا ہے) |
secret_hint | string | signing secret کے پہلے 4 اور آخری 4 حروف، ellipsis کے ساتھ (a1b2…9f0e) — مکمل قدر ظاہر کیے بغیر آپ کے مقامی طور پر محفوظ کردہ secret سے ملانے کے لیے کافی |
created_at, updated_at | timestamp |
درست event اقسام
events کو اسی عین سیٹ کے خلاف validate کیا جاتا ہے — فہرست سے باہر کی اقدار
400 واپس کرتی ہیں۔ ہر قسم کی payload ساخت کے لیے Events catalog دیکھیں۔
telephony.incoming,telephony.complete,telephony.toolweb.incoming,web.complete,web.toolcall.gradedissue.reportedtest-call.completedalert.triggered
اینڈپوائنٹ statuses
active— ڈیلیوریز معمول کے مطابق جاری رہتی ہیں۔disabled—PATCHکے ذریعے دستی طور پر روکا گیا۔ کوئی request نہیں بھیجی جاتی۔ ہم کبھی بھیdisabledاینڈپوائنٹ کی status تبدیل نہیں کرتے؛ اسے دوبارہactiveکرنا ہمیشہ آپ کا فیصلہ ہے۔failing— جب اینڈپوائنٹ کو کوئی ڈیلیوری ایک بھی 2xx حاصل کیے بغیر اپنے پورے retry شیڈول (24 گھنٹوں میں 8 کوششیں) سے گزر جائے تو خودکار طور پر سیٹ ہوتا ہے۔ failing اینڈپوائنٹ کو مزید کوئی traffic موصول نہیں ہوتا۔ اینڈپوائنٹ درست ہو جانے پر، اس کی status کوPATCHکے ذریعے دوبارہactiveکریں؛ جن ڈیلیوریز کا retry شیڈول ابھی ختم نہیں ہوا وہ اسی مقام سے دوبارہ جاری ہو جاتی ہیں جہاں وہ رکی تھیں۔
اینڈپوائنٹس کی فہرست
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
اینڈپوائنٹ آبجیکٹس کا ایک array واپس کرتا ہے۔
ایک اینڈپوائنٹ بنائیں
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-حروف کی hex اسٹرنگ:
{
"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 واپس کرتا ہے۔
آزمائشی ترسیل بھیجیں
معمول کی ترسیل پائپ لائن استعمال کرتے ہوئے ایک اینڈپوائنٹ کو مصنوعی 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 پر ڈیلیوری فوراً رک جاتی ہے؛
جاری دوبارہ کوششیں ترک کر دی جاتی ہیں۔