---
title: "ਵੈੱਬਹੁੱਕ ਐਂਡਪੌਇੰਟਸ"
description: "ਹਰ ਐਂਡਪੌਇੰਟ ਲਈ ਸੀਕ੍ਰੇਟਸ ਅਤੇ ਇਵੈਂਟ ਫਿਲਟਰਾਂ ਨਾਲ ਕਈ ਵੈੱਬਹੁੱਕ URLs ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ।"
---

ਐਂਡਪੌਇੰਟ-ਆਧਾਰਿਤ webhook ਸਿਸਟਮ ਤੁਹਾਨੂੰ ਹਰ ਸੰਸਥਾ ਲਈ **ਕਈ**
ਟਿਕਾਣੇ ਰਜਿਸਟਰ ਕਰਨ ਦਿੰਦਾ ਹੈ, ਹਰੇਕ ਦਾ ਆਪਣਾ secret, ਆਪਣੀ
ਸਥਿਤੀ, ਅਤੇ event ਕਿਸਮਾਂ ਦੇ ਇੱਕ ਉਪ-ਸਮੂਹ ਲਈ ਆਪਣੀ subscription ਹੁੰਦੀ ਹੈ। ਇਹ
ਸਾਰੀਆਂ ਨਵੀਆਂ integrations ਲਈ ਸਿਫਾਰਸ਼ੀ ਮਾਡਲ ਹੈ।

ਇਸਦੀ ਤੁਲਨਾ [ਪੁਰਾਣੇ ਇੱਕਲ-URL webhook](/api-reference/organizations#legacy-single-url-webhook) ਨਾਲ ਕਰੋ,
ਜੋ ਪਿੱਛੇ ਵੱਲ ਅਨੁਕੂਲਤਾ ਲਈ ਰੱਖਿਆ ਗਿਆ ਹੈ ਪਰ ਹਰ
ਸੰਸਥਾ ਲਈ ਸਿਰਫ਼ ਇੱਕ URL ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।

## ਐਂਡਪੌਇੰਟ

| ਤਰੀਕਾ | ਪਾਥ | ਲੋੜੀਂਦੀ ਭੂਮਿਕਾ | ਵੇਰਵਾ |
|--------|------|---------------|-------------|
| `GET` | `/v1/developer/webhook-endpoints` | `admin+` | ਐਂਡਪੌਇੰਟਾਂ ਦੀ ਸੂਚੀ ਦਿਓ |
| `POST` | `/v1/developer/webhook-endpoints` | `admin+` | ਇੱਕ ਐਂਡਪੌਇੰਟ ਬਣਾਓ |
| `PATCH` | `/v1/developer/webhook-endpoints/{endpoint_id}` | `admin+` | ਲੇਬਲ / URL / events / ਸਥਿਤੀ ਅੱਪਡੇਟ ਕਰੋ |
| `DELETE` | `/v1/developer/webhook-endpoints/{endpoint_id}` | `admin+` | ਇੱਕ ਐਂਡਪੌਇੰਟ ਮਿਟਾਓ |
| `POST` | `/v1/developer/webhook-endpoints/{endpoint_id}/test` | `admin+` | ਹਸਤਾਖਰਿਤ ਟੈਸਟ ਡਿਲਿਵਰੀ ਭੇਜੋ |
| `GET` | `/v1/developer/webhook-deliveries` | `admin+` | ਹਾਲੀਆ ਐਂਡਪੌਇੰਟ ਅਤੇ ਪੁਰਾਣੀ ਡਿਲਿਵਰੀ ਦੇ ਨਤੀਜਿਆਂ ਦੀ ਜਾਂਚ ਕਰੋ |

## ਐਂਡਪੌਇੰਟ ਆਬਜੈਕਟ

```json
{
  "id": "c4d5e6f7-...",
  "label": "Production — Call events",
  "url": "https://example.com/thunderphone/hook",
  "events": ["telephony.incoming", "telephony.complete"],
  "status": "active",
  "agent_id": 42,
  "agent_name": "Support Agent",
  "secret_hint": "a1b2…9f0e",
  "created_at": "2026-04-20T18:24:10.113Z",
  "updated_at": "2026-04-20T18:24:10.113Z"
}
```

| ਫੀਲਡ | ਕਿਸਮ | ਵੇਰਵਾ |
|-------|------|-------------|
| `id` | UUID | ਐਂਡਪੌਇੰਟ id |
| `label` | ਸਤਰ | ਡਿਸਪਲੇ ਨਾਮ, 1–120 ਅੱਖਰ |
| `url` | ਸਤਰ | HTTPS URL; ਡਿਵੈਲਪਮੈਂਟ ਲਈ `http://localhost` ਮਨਜ਼ੂਰ ਹੈ |
| `events` | ਸਤਰਾਂ ਦੀ ਐਰੇ | ਸਬਸਕ੍ਰਾਈਬ ਕੀਤੀਆਂ ਇਵੈਂਟ ਕਿਸਮਾਂ ([ਵੈਧ ਮੁੱਲ](#valid-event-types) ਦੇਖੋ)। ਖਾਲੀ ਐਰੇ ਸਾਰੇ ਇਵੈਂਟਾਂ ਲਈ ਸਬਸਕ੍ਰਾਈਬ ਕਰਦੀ ਹੈ, ਸਪਸ਼ਟ-ਚੋਣ ਵਾਲੇ ਪ੍ਰਤੀ-ਟਰਨ ਇਵੈਂਟਾਂ (`telephony.turn` / `web.turn`) ਤੋਂ ਇਲਾਵਾ |
| `status` | ਸਤਰ | `active`, `disabled` (ਹੱਥੋਂ ਰੋਕਿਆ ਗਿਆ), ਜਾਂ `failing` (ਜਦੋਂ ਕੋਈ ਡਿਲਿਵਰੀ ਇੱਕ ਵੀ 2xx ਪ੍ਰਾਪਤ ਕੀਤੇ ਬਿਨਾਂ ਆਪਣਾ 24 ਘੰਟਿਆਂ ਦਾ ਰੀਟ੍ਰਾਈ ਸ਼ਡਿਊਲ ਖਤਮ ਕਰ ਦੇਵੇ ਤਾਂ ਆਪਣੇ ਆਪ ਸੈੱਟ ਹੁੰਦਾ ਹੈ) |
| `agent_id` | ਪੂਰਨ ਅੰਕ \| null | ਉਹ ਏਜੰਟ ਜਿਸ ਤੱਕ ਇਹ ਐਂਡਪੌਇੰਟ ਸੀਮਿਤ ਹੈ; `null` ਦਾ ਅਰਥ ਸੰਗਠਨ-ਵਿਆਪੀ ਹੈ |
| `agent_name` | ਸਤਰ \| null | ਸੀਮਿਤ ਏਜੰਟ ਦਾ ਨਾਮ, ਜਾਂ ਸੰਗਠਨ-ਵਿਆਪੀ ਐਂਡਪੌਇੰਟ ਲਈ `null` |
| `secret_hint` | ਸਤਰ | ਸਾਈਨਿੰਗ ਸੀਕ੍ਰੇਟ ਦੇ ਪਹਿਲੇ 4 ਅਤੇ ਆਖਰੀ 4 ਅੱਖਰ, ਵਿਚਕਾਰ ਅੰਡਰਚਿੰਨ੍ਹ ਨਾਲ (`a1b2…9f0e`) — ਪੂਰਾ ਮੁੱਲ ਜ਼ਾਹਰ ਕੀਤੇ ਬਿਨਾਂ ਤੁਹਾਡੇ ਲੋਕਲ ਤੌਰ ਤੇ ਸੇਵ ਕੀਤੇ ਸੀਕ੍ਰੇਟ ਨਾਲ ਮਿਲਾਨ ਕਰਨ ਲਈ ਕਾਫ਼ੀ |
| `created_at`, `updated_at` | ਟਾਈਮਸਟੈਂਪ | |

<Note>
  ਐਂਡਪੌਇੰਟ ਦਾ ਪੂਰਾ `secret` ਬਣਾਉਣ ਵੇਲੇ **ਸਿਰਫ਼ ਇੱਕ ਵਾਰ** ਵਾਪਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ
  ਦੁਬਾਰਾ ਕਦੇ ਨਹੀਂ। ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸਟੋਰ ਕਰੋ — ਜੇ ਤੁਸੀਂ ਇਸਨੂੰ ਗੁਆ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਐਂਡਪੌਇੰਟ ਮਿਟਾਓ
  ਅਤੇ ਇਸਨੂੰ ਦੁਬਾਰਾ ਬਣਾਓ।
</Note>

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

`events` ਨੂੰ ਇਸ ਸਟੀਕ ਸੈੱਟ ਦੇ ਮੁਕਾਬਲੇ ਵੈਲੀਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ — ਸੂਚੀ ਤੋਂ ਬਾਹਰ ਦੇ ਮੁੱਲ
`400` ਵਾਪਸ ਕਰਦੇ ਹਨ। ਹਰੇਕ ਕਿਸਮ ਦੇ ਪੇਲੋਡ ਸਰੂਪ ਲਈ [ਇਵੈਂਟ ਕੈਟਾਲਾਗ](/pa/webhooks/events) ਦੇਖੋ।

- `telephony.incoming`, `telephony.complete`, `telephony.tool`, `telephony.turn`
- `web.incoming`, `web.complete`, `web.tool`, `web.turn`
- `call.graded`, `call.data_extracted`
- `campaign.completed`
- `issue.reported`, `issue.escalated`
- `test-call.completed`
- `alert.triggered`

`issue.escalated` ਦਾ ਕੋਈ ਏਜੰਟ ਸੰਦਰਭ ਨਹੀਂ ਹੁੰਦਾ ਅਤੇ ਇਹ ਸਿਰਫ਼
ਸੰਗਠਨ-ਵਿਆਪੀ ਐਂਡਪੌਇੰਟਾਂ ਨੂੰ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।

`voice.ready` ਅਤੇ `voice.failed` ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਚੁਣਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਇਹਨਾਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ,
`events: []` ਨਾਲ ਇੱਕ ਸੰਗਠਨ-ਵਿਆਪੀ ਐਂਡਪੌਇੰਟ ਬਣਾਓ। ਖਾਲੀ ਇਵੈਂਟ ਸੂਚੀ
`telephony.turn` ਅਤੇ `web.turn` ਤੋਂ ਇਲਾਵਾ ਹਰ ਸਮਰਥਿਤ ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ,
ਜਿਨ੍ਹਾਂ ਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਚੁਣਨਾ ਲਾਜ਼ਮੀ ਹੈ।

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

- `active` — ਡਿਲਿਵਰੀਆਂ ਆਮ ਤਰ੍ਹਾਂ ਚਲਦੀਆਂ ਹਨ।
- `disabled` — `PATCH` ਰਾਹੀਂ ਹੱਥੋਂ ਰੋਕਿਆ ਗਿਆ। ਕੋਈ ਬੇਨਤੀ ਨਹੀਂ ਭੇਜੀ ਜਾਂਦੀ। ਅਸੀਂ
  ਕਦੇ ਵੀ `disabled` ਐਂਡਪੌਇੰਟ ਦੀ ਸਥਿਤੀ ਨਹੀਂ ਬਦਲਦੇ; ਇਸਨੂੰ ਵਾਪਸ
  `active` ਕਰਨਾ ਹਮੇਸ਼ਾ ਤੁਹਾਡਾ ਫ਼ੈਸਲਾ ਹੁੰਦਾ ਹੈ।
- `failing` — ਜਦੋਂ ਐਂਡਪੌਇੰਟ ਲਈ ਡਿਲਿਵਰੀ ਆਪਣਾ ਪੂਰਾ ਰੀਟ੍ਰਾਈ ਸ਼ਡਿਊਲ
  (24 ਘੰਟਿਆਂ ਵਿੱਚ 8 ਕੋਸ਼ਿਸ਼ਾਂ) ਵਰਤ ਲੈਂਦੀ ਹੈ ਅਤੇ ਇੱਕ ਵੀ 2xx ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰਦੀ,
  ਤਾਂ ਆਪਣੇ ਆਪ ਸੈੱਟ ਹੁੰਦਾ ਹੈ। ਫੇਲ ਹੋ ਰਿਹਾ ਐਂਡਪੌਇੰਟ ਅੱਗੇ ਕੋਈ ਟ੍ਰੈਫਿਕ ਪ੍ਰਾਪਤ ਨਹੀਂ ਕਰਦਾ।
  ਐਂਡਪੌਇੰਟ ਠੀਕ ਹੋ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਇਸਦੀ ਸਥਿਤੀ ਨੂੰ `PATCH` ਰਾਹੀਂ ਵਾਪਸ `active` ਕਰੋ;
  ਜਿਨ੍ਹਾਂ ਡਿਲਿਵਰੀਆਂ ਦਾ ਰੀਟ੍ਰਾਈ ਸ਼ਡਿਊਲ ਹਾਲੇ ਖਤਮ ਨਹੀਂ ਹੋਇਆ, ਉਹ ਉੱਥੋਂ ਮੁੜ ਸ਼ੁਰੂ ਹੁੰਦੀਆਂ ਹਨ
  ਜਿੱਥੇ ਉਹ ਰੁਕੀਆਂ ਸਨ।

---

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

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

[ਐਂਡਪੌਇੰਟ ਆਬਜੈਕਟਾਂ](#endpoint-object) ਦੀ ਇੱਕ ਐਰੇ ਵਾਪਸ ਕਰਦਾ ਹੈ।
ਸਿਰਫ਼ ਉਸ ਏਜੰਟ ਤੱਕ ਸੀਮਿਤ ਐਂਡਪੌਇੰਟ ਵਾਪਸ ਕਰਨ ਲਈ `?agent_id=42` ਦਿਓ।

### ਏਜੰਟ-ਸੀਮਿਤ ਐਂਡਪੌਇੰਟ

ਸੰਗਠਨ-ਵਿਆਪੀ ਐਂਡਪੌਇੰਟ ਹਰੇਕ ਮੇਲ ਖਾਂਦਾ ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹਨ। `agent_id` ਵਾਲਾ
ਐਂਡਪੌਇੰਟ ਸਿਰਫ਼ ਉਸ ਏਜੰਟ ਦੁਆਰਾ ਸੰਭਾਲੀਆਂ ਕਾਲਾਂ ਲਈ ਮੇਲ ਖਾਂਦੇ ਇਵੈਂਟ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ;
ਏਜੰਟ ਸੰਦਰਭ ਤੋਂ ਬਿਨਾਂ ਇਵੈਂਟ, ਜਿਵੇਂ ਕਿ `alert.triggered`, ਇਸ ਤੱਕ ਕਦੇ ਨਹੀਂ ਪਹੁੰਚਦੇ। ਤੁਸੀਂ
ਇਹ ਐਂਡਪੌਇੰਟ ਏਜੰਟ ਬਿਲਡਰ ਦੇ
**ਵੈੱਬਹੁੱਕਸ** ਭਾਗ ਤੋਂ ਵੀ ਬਣਾ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕਰ ਸਕਦੇ ਹੋ।

---

## ਇੱਕ ਐਂਡਪੌਇੰਟ ਬਣਾਓ

<CodeGroup>
```bash 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 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"]
```
</CodeGroup>

### ਬੇਨਤੀ ਫ਼ੀਲਡ

| ਫ਼ੀਲਡ | ਕਿਸਮ | ਲਾਜ਼ਮੀ | ਵੇਰਵਾ |
|-------|------|----------|-------------|
| `label` | ਸਟਰਿੰਗ | ਹਾਂ | 1–120 ਅੱਖਰ |
| `url` | ਸਟਰਿੰਗ | ਹਾਂ | HTTPS URL (`http` ਸਿਰਫ਼ `localhost` / `127.0.0.1` ਲਈ ਮਨਜ਼ੂਰ ਹੈ) |
| `events` | ਐਰੇ | ਨਹੀਂ | ਖਾਲੀ ਛੱਡਣ ਜਾਂ ਨਾ ਦੇਣ ਨਾਲ `telephony.turn` / `web.turn` ਤੋਂ ਇਲਾਵਾ ਸਾਰੀਆਂ ਘਟਨਾਵਾਂ ਦੀ ਗਾਹਕੀ ਹੋ ਜਾਂਦੀ ਹੈ; ਇਹਨਾਂ ਲਈ ਸਪੱਸ਼ਟ ਗਾਹਕੀ ਲਾਜ਼ਮੀ ਹੈ। [ਵੈਧ ਘਟਨਾ ਕਿਸਮਾਂ](#valid-event-types) ਵਿੱਚ ਦਿੱਤੇ ਮੁੱਲ ਵਰਤਣੇ ਲਾਜ਼ਮੀ ਹਨ; ਡੁਪਲੀਕੇਟ ਹਟਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ |
| `agent_id` | ਇੰਟੀਜਰ \| null | ਨਹੀਂ | ਡਿਲਿਵਰੀ ਨੂੰ ਇਸ ਸੰਗਠਨ ਦੇ ਕਿਸੇ ਏਜੰਟ ਤੱਕ ਸੀਮਿਤ ਕਰੋ; ਪੂਰੇ ਸੰਗਠਨ ਲਈ ਐਂਡਪੌਇੰਟ ਵਾਸਤੇ ਛੱਡ ਦਿਓ ਜਾਂ `null` ਵਰਤੋ |

[ਐਂਡਪੌਇੰਟ ਆਬਜੈਕਟ](#endpoint-object) ਦੇ ਨਾਲ `201 Created` ਅਤੇ
ਇੱਕ ਵਾਧੂ ਸਿਖਰ-ਪੱਧਰੀ `secret` ਫ਼ੀਲਡ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਕੱਚੀ ਸਾਈਨਿੰਗ ਕੁੰਜੀ ਹੁੰਦੀ ਹੈ — ਇੱਕ
48-ਅੱਖਰਾਂ ਵਾਲੀ ਹੈਕਸ ਸਟਰਿੰਗ:

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

<Warning>
  `secret` **ਸਿਰਫ਼ ਬਣਾਉਣ ਵੇਲੇ** ਵਾਪਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਅਗਲੇ `GET` ਜਵਾਬਾਂ ਵਿੱਚ
  ਸਿਰਫ਼ `secret_hint` ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਜਵਾਬ ਬੰਦ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੂਰਾ ਮੁੱਲ ਆਪਣੇ ਸੀਕ੍ਰੇਟ
  ਮੈਨੇਜਰ ਵਿੱਚ ਕਾਪੀ ਕਰੋ।
</Warning>

---

## ਇੱਕ ਐਂਡਪੌਇੰਟ ਅੱਪਡੇਟ ਕਰੋ

<CodeGroup>
```bash 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"]
  }'
```
</CodeGroup>

| ਫ਼ੀਲਡ | ਕਿਸਮ | ਵੇਰਵਾ |
|-------|------|-------------|
| `label` | ਸਟਰਿੰਗ | |
| `url` | ਸਟਰਿੰਗ | |
| `events` | ਐਰੇ | |
| `status` | ਸਟਰਿੰਗ | `active` ਜਾਂ `disabled`। ਸਰਵਰ ਵੱਲੋਂ `failing` ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਐਂਡਪੌਇੰਟ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰਨ ਲਈ `active` ਸੈੱਟ ਕਰੋ |
| `agent_id` | ਇੰਟੀਜਰ \| null | ਐਂਡਪੌਇੰਟ ਨੂੰ ਸੀਮਿਤ ਕਰਨ ਲਈ ਏਜੰਟ ਆਈਡੀ ਸੈੱਟ ਕਰੋ, ਜਾਂ ਇਸਨੂੰ ਪੂਰੇ ਸੰਗਠਨ ਲਈ ਬਣਾਉਣ ਵਾਸਤੇ `null` ਵਰਤੋ |

ਅੱਪਡੇਟ ਕੀਤੇ [ਐਂਡਪੌਇੰਟ ਆਬਜੈਕਟ](#endpoint-object) ਨਾਲ `200 OK` ਵਾਪਸ ਕਰਦਾ ਹੈ।

---

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

ਸਧਾਰਣ ਡਿਲਿਵਰੀ ਪਾਈਪਲਾਈਨ ਵਰਤ ਕੇ ਇੱਕ ਐਂਡਪੌਇੰਟ ਨੂੰ ਕ੍ਰਿਤ੍ਰਿਮ `webhook.test` ਇਵੈਂਟ ਭੇਜੋ, ਜਿਸ ਵਿੱਚ ਮਿਆਰੀ JSON ਸੀਰੀਅਲਾਈਜ਼ੇਸ਼ਨ, `X-ThunderPhone-Signature`, ਡਿਲਿਵਰੀ ਰਿਕਾਰਡਿੰਗ ਅਤੇ ਰੀਟ੍ਰਾਈ ਟ੍ਰੈਕਿੰਗ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ।
ਟੈਸਟ ਚੁਣੇ ਹੋਏ ਐਂਡਪੌਇੰਟ ਦੇ `events` ਫਿਲਟਰ ਦੀ ਪਰਵਾਹ ਕੀਤੇ ਬਿਨਾਂ ਉਸ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ।

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

ਐਂਡਪੌਇੰਟ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਦਾ ਇੱਕ ਐਨਵਲਪ ਮਿਲਦਾ ਹੈ:

```json
{
  "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` ਦੀ ਜਾਂਚ ਕਰੋ:

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

`webhook.test` ਕ੍ਰਿਤ੍ਰਿਮ ਹੈ ਅਤੇ ਇਸਨੂੰ ਕਿਸੇ ਐਂਡਪੌਇੰਟ ਦੀ `events`
ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਵਿੱਚ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਜੇ ਪਹਿਲੀ ਕੋਸ਼ਿਸ਼ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਡਿਲਿਵਰੀ ਸਧਾਰਣ ਇਵੈਂਟ ਡਿਲਿਵਰੀਆਂ ਵਾਂਗ ਹੀ ਰੀਟ੍ਰਾਈ ਸਮਾਂ-ਸੂਚੀ ਦੀ ਪਾਲਣਾ ਕਰਦੀ ਹੈ।

ਕਿਸੇ ਅਸਲ ਇਵੈਂਟ ਸਰੂਪ ਦੇ ਮੁਕਾਬਲੇ ਟ੍ਰਿਗਰ ਕਨਫਿਗਰ ਕਰਨ ਲਈ, ਵਿਕਲਪੀ
`event_type` ਦਿਓ। ਡਿਲਿਵਰੀ ਫਿਰ ਵੀ ਕ੍ਰਿਤ੍ਰਿਮ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ `"sample": true` ਹੁੰਦਾ ਹੈ;
ਕਾਲ-ਸੰਬੰਧੀ ਸੈਂਪਲਾਂ ਵਿੱਚ `call_id: 0` ਅਤੇ `agent_id: 0` ਵਰਤੇ ਜਾਂਦੇ ਹਨ।

```bash
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"event_type":"call.graded"}'
```

`event_type` [ਵੈਧ ਇਵੈਂਟ ਕਿਸਮਾਂ](#valid-event-types) ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਮੁੱਲ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।
ਇਸਨੂੰ ਛੱਡਣ ਨਾਲ ਆਮ `webhook.test` ਵਿਹਾਰ ਕਾਇਮ ਰਹਿੰਦਾ ਹੈ।

---

## ਇੱਕ ਐਂਡਪੌਇੰਟ ਮਿਟਾਓ

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

`204 No Content` ਵਾਪਸ ਕਰਦਾ ਹੈ। URL ਉੱਤੇ ਡਿਲਿਵਰੀ ਤੁਰੰਤ ਰੁਕ ਜਾਂਦੀ ਹੈ;
ਚੱਲ ਰਹੀਆਂ ਰੀਟ੍ਰਾਈਆਂ ਛੱਡ ਦਿੱਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।

---

## ਡਿਲਿਵਰੀਆਂ ਡੀਬੱਗ ਕਰੋ

ਇਹ ਨਤੀਜਾ ਕੱਢਣ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਵੈੱਬਹੁੱਕ ਨਹੀਂ ਭੇਜਿਆ ਗਿਆ ਸੀ,
[`GET /v1/developer/webhook-deliveries`](/api-reference/webhook-deliveries) ਦੀ ਜਾਂਚ ਕਰੋ।
ਇਹ ਦੋਵੇਂ ਵੈੱਬਹੁੱਕ ਸਿਸਟਮਾਂ ਦੀਆਂ ਹਾਲੀਆ ਕੋਸ਼ਿਸ਼ਾਂ ਦਿਖਾਉਂਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਕਾਲ ਆਈਡੀ,
URL ਮੂਲ, HTTP ਸਥਿਤੀ, ਕੋਸ਼ਿਸ਼ਾਂ ਦੀ ਗਿਣਤੀ, ਮਨਜ਼ੂਰ-ਸੂਚੀਬੱਧ ਨਾਕਾਮੀ ਸ਼੍ਰੇਣੀ ਅਤੇ ਅਗਲਾ
ਰੀਟ੍ਰਾਈ ਸਮਾਂ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਇਹ ਕਦੇ ਵੀ ਇਵੈਂਟ ਪੇਲੋਡ, ਟ੍ਰਾਂਸਕ੍ਰਿਪਟ, ਸਟੋਰ ਕੀਤਾ ਗਲਤੀ ਟੈਕਸਟ,
ਰਿਸਪਾਂਸ ਬਾਡੀ ਜਾਂ URL ਪਾਥ ਵਾਪਸ ਨਹੀਂ ਕਰਦਾ।

ਤੁਸੀਂ ਇਹੀ ਹਾਲੀਆ ਇਤਿਹਾਸ **ਏਜੰਟ → ਇੱਕ ਏਜੰਟ ਚੁਣੋ → ਵੈੱਬਹੁੱਕ →
ਹਾਲੀਆ ਡਿਲਿਵਰੀਆਂ** ਵਿੱਚ ਵੀ ਦੇਖ ਸਕਦੇ ਹੋ। ਕਤਾਰਾਂ ਐਂਡਪੌਇੰਟ ਲੇਬਲ ਅਤੇ ਨਵੀਂ ਤੋਂ ਨਵੀਂ
ਕੋਸ਼ਿਸ਼ ਦੁਆਰਾ ਵਰਤਿਆ ਗਿਆ URL ਮੂਲ ਦਿਖਾਉਂਦੀਆਂ ਹਨ। ਇਹ ਅਪਰਿਵਰਤਨਸ਼ੀਲ ਆਡਿਟ ਲੌਗ ਦੀ ਬਜਾਏ
ਸੰਚਾਲਨ ਸਥਿਤੀ ਹੈ: ਐਂਡਪੌਇੰਟ ਮਿਟਾਉਣ ਨਾਲ ਇਸ ਦੀਆਂ ਡਿਲਿਵਰੀ ਕਤਾਰਾਂ ਵੀ ਮਿਟ ਜਾਂਦੀਆਂ ਹਨ।

ਕਿਸੇ n8n `404` ਲਈ, ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਵਰਕਫਲੋ ਸਰਗਰਮ ਹੈ, `POST` ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ, ਅਤੇ
ਟੈਸਟ URL ਦੀ ਬਜਾਏ ਪ੍ਰੋਡਕਸ਼ਨ ਵੈੱਬਹੁੱਕ URL ਵਰਤਦਾ ਹੈ। `401` ਜਾਂ `403` ਪ੍ਰਮਾਣੀਕਰਨ ਜਾਂ
ਸਿਗਨੇਚਰ ਪ੍ਰਮਾਣੀਕਰਨ ਵੱਲ ਸੰਕੇਤ ਕਰਦਾ ਹੈ; ਟਾਈਮਆਉਟ ਮੰਜ਼ਿਲ ਦੀ ਲੇਟੈਂਸੀ
ਜਾਂ ਉਪਲਬਧਤਾ ਵੱਲ ਸੰਕੇਤ ਕਰਦੇ ਹਨ; TLS ਗਲਤੀਆਂ ਸਰਟੀਫਿਕੇਟ ਚੇਨ, ਹੋਸਟਨਾਮ ਜਾਂ ਮਿਆਦ ਪੁੱਗਣ ਵੱਲ ਸੰਕੇਤ ਕਰਦੀਆਂ ਹਨ।

---

## ਸੰਬੰਧਿਤ

<CardGroup cols={2}>
  <Card title="ਇਵੈਂਟ ਕੈਟਾਲੌਗ" icon="list" href="/pa/webhooks/events">
    `events` ਮੁੱਲਾਂ ਦੀ ਪੂਰੀ ਸੂਚੀ, ਜਿਨ੍ਹਾਂ ਦੀ ਤੁਸੀਂ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਲੈ ਸਕਦੇ ਹੋ।
  </Card>
  <Card title="ਵੈੱਬਹੁੱਕ ਝਲਕ" icon="bolt" href="/pa/webhooks/overview">
    ਸਿਗਨੇਚਰ ਪ੍ਰਮਾਣੀਕਰਨ ਅਤੇ ਡਿਲਿਵਰੀ ਅਰਥ-ਵਿਧੀ।
  </Card>
</CardGroup>
