Webhook एंडपॉइंट्स

एंडपॉइंट-आधारित webhook प्रणाली तुम्हाला प्रत्येक संस्थेसाठी अनेक गंतव्ये नोंदवू देते, प्रत्येकाचे स्वतःचे secret, स्वतःची स्थिती आणि इव्हेंट प्रकारांच्या उपसंचासाठी स्वतःचे subscription असते. सर्व नवीन integrations साठी हे शिफारस केलेले मॉडेल आहे.

जुन्या सिंगल-URL webhook शी तुलना करा, जे backward compatibility साठी ठेवले आहे, पण प्रत्येक संस्थेसाठी फक्त एकच 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स्वाक्षरी secret मधील पहिले 4 आणि शेवटचे 4 वर्ण, दीर्घविरामासह (a1b2…9f0e) — पूर्ण मूल्य उघड न करता तुम्ही स्थानिकरित्या जतन केलेल्या secret शी संदर्भ जुळवण्यासाठी पुरेसे
created_at, updated_attimestamp

वैध इव्हेंट प्रकार

events हे या अचूक संचाविरुद्ध वैध केले जाते — सूचीबाहेरील मूल्ये 400 परत करतात. प्रत्येक प्रकाराच्या payload स्वरूपासाठी इव्हेंट्स कॅटलॉग पहा.

एंडपॉइंट स्थिती


एंडपॉइंट्सची यादी

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 वर वितरण तात्काळ थांबते; प्रगतीतील पुनर्प्रयत्न रद्द केले जातात.


संबंधित