---
title: "Tīmekļa aizķeru galapunkti"
description: "Pārvaldiet vairākus tīmekļa aizķeru URL ar katram galapunktam paredzētiem slepenajiem kodiem un notikumu filtriem."
---

Galapunktos balstītā tīmekļa aizķeru sistēma ļauj reģistrēt **vairākus**
galamērķus katrai organizācijai, katru ar savu noslēpumu, savu
statusu un savu abonementu noteiktai notikumu tipu apakškopai. Šis ir
ieteicamais modelis visām jaunajām integrācijām.

Salīdziniet ar [mantoto viena URL tīmekļa aizķeri](/api-reference/organizations#legacy-single-url-webhook),
kas tiek uzturēta atpakaļsaderībai, bet atbalsta tikai vienu URL katrai
organizācijai.

## Galapunkti

| Metode | Ceļš | Nepieciešamā loma | Apraksts |
|--------|------|-------------------|----------|
| `GET` | `/v1/developer/webhook-endpoints` | `admin+` | Uzskaitīt galapunktus |
| `POST` | `/v1/developer/webhook-endpoints` | `admin+` | Izveidot galapunktu |
| `PATCH` | `/v1/developer/webhook-endpoints/{endpoint_id}` | `admin+` | Atjaunināt etiķeti / URL / notikumus / statusu |
| `DELETE` | `/v1/developer/webhook-endpoints/{endpoint_id}` | `admin+` | Dzēst galapunktu |
| `POST` | `/v1/developer/webhook-endpoints/{endpoint_id}/rotate-secret` | `admin+` | Aizstāt parakstīšanas noslēpumu |
| `POST` | `/v1/developer/webhook-endpoints/{endpoint_id}/test` | `admin+` | Nosūtīt parakstītu testa piegādi |
| `GET` | `/v1/developer/webhook-deliveries` | `admin+` | Pārbaudīt nesenos galapunktu un mantoto piegāžu rezultātus |

## Galapunkta objekts

```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",
  "paused_at": null,
  "pause_last_error": "",
  "pause_undelivered_count": null,
  "created_at": "2026-04-20T18:24:10.113Z",
  "updated_at": "2026-04-20T18:24:10.113Z"
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `id` | UUID | Galapunkta ID |
| `label` | string | Parādāmais nosaukums, 1–120 rakstzīmes |
| `url` | string | HTTPS URL; izstrādei atļauts `http://localhost` |
| `events` | string masīvs | Abonēto notikumu tipi (skatiet [derīgās vērtības](#valid-event-types)). Tukšs masīvs abonē visus notikumus, izņemot skaidri norādāmos notikumus katrai sarunas kārtai (`telephony.turn` / `web.turn`) |
| `status` | string | `active`, `disabled` (manuāli apturēts) vai `failing` (tiek iestatīts automātiski, ja piegāde iztērē savu 24 h atkārtošanas grafiku, nesaņemot nevienu 2xx atbildi) |
| `agent_id` | integer \| null | Balss aģents, uz kuru attiecas šis galapunkts; `null` nozīmē visas organizācijas mērogu |
| `agent_name` | string \| null | Balss aģenta, uz kuru attiecas šis galapunkts, nosaukums vai `null` visas organizācijas mēroga galapunktam |
| `secret_hint` | string | Parakstīšanas noslēpuma pirmās 4 un pēdējās 4 rakstzīmes ar daudzpunkti (`a1b2…9f0e`) — pietiekami, lai salīdzinātu ar lokāli saglabāto noslēpumu, neatklājot pilno vērtību |
| `paused_at` | timestamp \| null | Laiks, kad ThunderPhone iestatīja galapunktu uz `failing`. `null`, kamēr tas ir `active` vai `disabled` |
| `pause_last_error` | string | Pēdējā piegādes kļūda, kad galapunkts tika apturēts, piemēram, `HTTP 503: Service Unavailable`. Tukšs, ja vien nav `failing` |
| `pause_undelivered_count` | integer \| null | Notikumi, kas nav piegādāti kopš galapunkta pēdējās veiksmīgās piegādes, skaitīti tā apturēšanas brīdī |
| `created_at`, `updated_at` | timestamp | |

<Note>
  Galapunkta pilnais `secret` tiek atgriezts **vienreiz** izveides laikā un
  nekad vairs. Glabājiet to droši — ja to pazaudējat,
  [nomainiet to](#rotate-the-signing-secret), lai iegūtu jaunu.
</Note>

### Derīgie notikumu tipi

`events` tiek validēts pret šo precīzo kopu — vērtības ārpus saraksta
atgriež `400`. Skatiet [Notikumu katalogu](/lv/webhooks/events), lai uzzinātu
katra tipa slodzes struktūru.

- `telephony.incoming`, `telephony.complete`, `telephony.tool`, `telephony.turn`
- `web.incoming`, `web.complete`, `web.tool`, `web.turn`
- `sms.sent`, `sms.failed`
- `sms.received` (rezervēts; vēl netiek izsūtīts)
- `call.graded`, `call.data_extracted`, `call.transfer_completed`
- `campaign.completed`
- `issue.reported`, `issue.escalated`
- `test-call.completed`
- `alert.triggered`

`issue.escalated` nav balss aģenta konteksta, un tas tiek piegādāts tikai
organizācijas mēroga galapunktiem.

`voice.ready` un `voice.failed` nevar atlasīt tieši. Lai tos saņemtu,
izveidojiet organizācijas mēroga galapunktu ar `events: []`. Tukšs notikumu
saraksts saņem visus atbalstītos notikumus, izņemot `telephony.turn` un
`web.turn`, kuri jāatlasa tieši.

### Galapunktu statusi

- `active` — piegādes notiek normāli.
- `disabled` — manuāli apturēts, izmantojot `PATCH`. Pieprasījumi netiek sūtīti. Mēs
  nekad nemainām `disabled` galapunkta statusu; tā pārslēgšana atpakaļ uz
  `active` vienmēr ir jūsu ziņā.
- `failing` — tiek iestatīts automātiski, ja piegāde uz galapunktu izmanto
  visu atkārtojumu grafiku (8 mēģinājumi 24 stundu laikā), tā arī nesaņemot 2xx atbildi. Neveiksmīgs galapunkts vairs nesaņem datplūsmu.
  Kad tas notiek, mēs nosūtām e-pastu jūsu organizācijas īpašniekiem un administratoriem, un
  informācijas panelī tiek rādīts apturētais galapunkts ar pogu **Atkārtoti aktivizēt**.
  Kad galapunkts ir novērsts, ar `PATCH` mainiet tā statusu atpakaļ uz `active`;
  piegādes, kuru atkārtojumu grafiks vēl nav beidzies, turpinās no vietas, kur
  tās tika apturētas.

---

## Galapunktu saraksts

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

Atgriež [galapunktu objektu](#endpoint-object) masīvu.
Pievienojiet `?agent_id=42`, lai atgrieztu tikai šim balss aģentam piesaistītos galapunktus.

### Balss aģentam piesaistītie galapunkti

Organizācijas mēroga galapunkti saņem katru atbilstošo notikumu. Galapunkts ar
`agent_id` saņem tikai atbilstošos notikumus zvaniem, ko apkalpo šis balss aģents;
notikumi bez balss aģenta konteksta, piemēram, `alert.triggered`, to nekad
nesasniedz. Šos galapunktus varat arī izveidot un pārvaldīt balss aģenta veidotāja
sadaļā **Tīmekļa aizķeres**.

---

## Izveidojiet galapunktu

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

### Pieprasījuma lauki

| Lauks | Tips | Nepieciešams | Apraksts |
|-------|------|----------|-------------|
| `label` | virkne | jā | 1–120 rakstzīmes |
| `url` | virkne | jā | HTTPS URL (`http` ir atļauts tikai `localhost` / `127.0.0.1`) |
| `events` | masīvs | nē | Tukša/izlaista vērtība abonē visus notikumus, izņemot `telephony.turn` / `web.turn`, kuriem nepieciešama nepārprotama abonēšana. Jāizmanto vērtības, kas norādītas sadaļā [Derīgie notikumu tipi](#valid-event-types); dublikāti tiek noņemti |
| `agent_id` | vesels skaitlis \| null | nē | Ierobežojiet piegādi līdz balss aģentam šajā organizācijā; izlaidiet vai izmantojiet `null` visas organizācijas līmeņa galapunktam |

Atgriež `201 Created` ar atjaunināto [galapunkta objektu](#endpoint-object) un
papildu augstākā līmeņa lauku `secret`, kurā ir neapstrādāta parakstīšanas atslēga —
48 rakstzīmju heksadecimāla virkne:

```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` tiek atgriezts **tikai izveidošanas laikā**. Turpmākās `GET` atbildes
  ietver tikai `secret_hint`. Pirms atbildes aizvēršanas nokopējiet pilno vērtību
  savā noslēpumu pārvaldniekā.
</Warning>

---

## Atjauniniet galapunktu

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

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `label` | virkne | |
| `url` | virkne | |
| `events` | masīvs | |
| `status` | virkne | `active` vai `disabled`. Iestatiet `active`, lai atkārtoti iespējotu galapunktu, ko serveris atzīmējis kā `failing` |
| `agent_id` | vesels skaitlis \| null | Iestatiet balss aģenta ID, lai ierobežotu galapunktu, vai `null`, lai tas būtu visas organizācijas līmeņa |

Atgriež `200 OK` ar atjaunināto [galapunkta objektu](#endpoint-object).

---

## Mainīt parakstīšanas noslēpumu

Aizstājiet galapunkta parakstīšanas noslēpumu, piemēram, ja tas ir pazaudēts vai
varētu būt noplūdis. Balss aģentam piesaistītam galapunktam varat izmantot arī
vadības paneli: atveriet balss aģenta sadaļu **Tīmekļa aizķeres** un galapunktā
atlasiet **Ģenerēt noslēpumu no jauna**. Organizācijas mēroga galapunktu
noslēpumi tiek mainīti, izmantojot API.

<CodeGroup>
```bash cURL
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../rotate-secret \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```
</CodeGroup>

| Lauks | Tips | Nepieciešams | Apraksts |
|-------|------|----------|-------------|
| `include_copies` | Būla vērtība | nē | Noklusējuma vērtība ir `true`. Piešķir jauno noslēpumu arī citiem jūsu organizācijas galapunktiem ar to pašu URL un to pašu pašreizējo noslēpumu, piemēram, šī galapunkta kopijām citos balss aģentos, lai viens saņēmējs turpinātu pārbaudīt ar vienu noslēpumu |

Atgriež `200 OK`:

```json
{
  "endpoint": { "id": "c4d5e6f7-...", "secret_hint": "7f3a…c21d", "...": "..." },
  "secret": "7f3a90b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5c21d",
  "rotated_endpoint_ids": ["c4d5e6f7-..."]
}
```

| Lauks | Tips | Apraksts |
|-------|------|-------------|
| `endpoint` | objekts | [Galapunkta objekts](#endpoint-object) ar jauno `secret_hint` |
| `secret` | virkne | Jaunais parakstīšanas noslēpums. Tiek atgriezts tikai šajā atbildē |
| `rotated_endpoint_ids` | UUID masīvs | Katrs galapunkts, kas tagad izmanto jauno noslēpumu |

<Warning>
  Vecais noslēpums nekavējoties vairs netiek izmantots: nākamā piegāde,
  tostarp atkārtotie mēģinājumi, tiek parakstīta ar jauno noslēpumu. Kamēr jūsu
  saņēmējam nav jaunā noslēpuma, piegādes neiztur tā paraksta pārbaudi; ja tas
  uz tām atbild ar statusu, kas nav 2xx, tās tiek atkārtotas pēc parastā 24 h
  grafika, tāpēc nekavējoties atjauniniet saņēmēju. Ja jūsu saņēmējs tiek
  izvērsts pa posmiem, izvēršanas laikā ļaujiet tam pieņemt abus noslēpumus —
  SDK pārbaudes palīgfunkcijas pieņem noslēpumu sarakstu (skatiet
  [Tīmekļa aizķeres parakstu pārbaude](/lv/guides/verify-webhook-signatures)).
</Warning>

---

## Nosūtīt testa piegādi

Nosūtiet sintētisku `webhook.test` notikumu uz vienu galapunktu, izmantojot parasto
piegādes konveijeru, tostarp kanonisko JSON serializāciju, abas
paraksta galvenes, piegādes reģistrēšanu un atkārtotu mēģinājumu uzskaiti.
Tests ir vērsts uz atlasīto galapunktu neatkarīgi no tā `events` filtra.

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

Galapunkts saņem šādu aploksni:

```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 atgriež `200 OK` pēc pirmā mēģinājuma, pat ja mērķis
atgriež kļūdu. Pārbaudiet `success`, `status`, `response_code` un `error`,
lai noteiktu piegādes rezultātu:

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

`webhook.test` ir sintētisks, un to nevar pievienot galapunkta `events`
abonementam. Ja pirmais mēģinājums neizdodas, ThunderPhone to atkārto vienu reizi aptuveni
pēc vienas minūtes un pēc tam apstājas; piegādei sadaļā [Piegāžu atkļūdošana](#debug-deliveries)
tiek rādīts `status: "failed"`. Testa piegāde nekad neatzīmē
galapunktu kā `failing`.

Lai konfigurētu trigeri reāla notikuma struktūrai, nododiet izvēles parametru
`event_type`. Piegāde joprojām ir sintētiska un satur `"sample": true`;
ar zvaniem saistītajos paraugos tiek izmantoti `call_id: 0` un `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` pieņem jebkuru vērtību no [Derīgie notikumu veidi](#valid-event-types).
Ja to neiekļaujat, tiek saglabāta vispārējā `webhook.test` darbība.

---

## Dzēst galapunktu

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

Atgriež `204 No Content`. Piegāde uz URL tiek nekavējoties pārtraukta;
notiekošie atkārtotie mēģinājumi tiek atcelti.

---

## Piegāžu atkļūdošana

Pirms secināt, ka webhook netika nosūtīts, pārbaudiet
[`GET /v1/developer/webhook-deliveries`](/api-reference/webhook-deliveries).
Tas parāda nesenos mēģinājumus no abām webhook sistēmām, tostarp zvana ID,
URL izcelsmi, HTTP statusu, mēģinājumu skaitu, atļauto kļūdu kategoriju un nākamā
atkārtotā mēģinājuma laiku. Tas nekad neatgriež notikuma slodzi, transkripciju, saglabāto kļūdas tekstu,
atbildes pamattekstu vai URL ceļu.

To pašu neseno vēsturi varat skatīt arī sadaļā **Aģenti → atlasiet aģentu → Webhooks →
Nesenās piegādes**. Rindās tiek rādīta galapunkta etiķete un URL izcelsme, ko izmantoja pēdējais
mēģinājums. Tas ir darbības stāvoklis, nevis nemaināms audita žurnāls: galapunkta dzēšana
dzēš arī tā piegāžu rindas.

Ja n8n atgriež `404`, vispirms pārliecinieties, ka darbplūsma ir aktīva, pieņem `POST` un izmanto
ražošanas webhook URL, nevis testa URL. `401` vai `403` norāda uz
autentifikācijas vai paraksta validācijas problēmu; taimauti norāda uz mērķa aizkavi
vai pieejamību; TLS kļūdas norāda uz sertifikātu ķēdi, resursdatora nosaukumu vai derīguma termiņu.

---

## Saistīts

<CardGroup cols={2}>
  <Card title="Notikumu katalogs" icon="list" href="/lv/webhooks/events">
    Pilns `events` vērtību saraksts, kurām varat abonēt.
  </Card>
  <Card title="Webhook pārskats" icon="bolt" href="/lv/webhooks/overview">
    Paraksta verifikācija un piegādes semantika.
  </Card>
</CardGroup>
