
## Удалить подписку

`DELETE /v1/infra/servers/:id/event-subscriptions/:subId`

Удаляет подписку и снимает регистрацию события в Битрикс24 — доставки этого события на приложение прекращаются. Ответ — `{ "success": true }` с HTTP-статусом `200`.

## Параметры

| Параметр | В | Тип | Обяз. | Описание |
|----------|---|-----|:-----:|----------|
| `id` | path | string (UUID) | да | ID сервера. Список: [`GET /v1/infra/servers`](/docs/infra/servers) |
| `subId` | path | string (UUID) | да | ID подписки. Из ответа [`POST`](./create.md) или [`GET .../event-subscriptions`](./list.md) |

## Примеры

### curl — личный ключ

```bash
curl -X DELETE -H "X-Api-Key: YOUR_API_KEY" \
  https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/event-subscriptions/SUBSCRIPTION_ID
```

### curl — OAuth-приложение

```bash
curl -X DELETE \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/event-subscriptions/SUBSCRIPTION_ID
```

### JavaScript — личный ключ

```javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/event-subscriptions/${subId}`,
  { method: 'DELETE', headers: { 'X-Api-Key': 'YOUR_API_KEY' } }
)
const { success } = await res.json()
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch(
  `https://vibecode.bitrix24.tech/v1/infra/servers/${serverId}/event-subscriptions/${subId}`,
  {
    method: 'DELETE',
    headers: {
      'X-Api-Key': 'YOUR_APP_KEY',
      'Authorization': 'Bearer USER_SESSION_TOKEN',
    },
  }
)
const { success } = await res.json()
```

## Поля ответа

| Поле | Тип | Описание |
|------|-----|----------|
| `success` | boolean | `true` при успешном удалении |

## Пример ответа

```json
{
  "success": true
}
```

## Пример ответа при ошибке

404 — подписка не найдена:

```json
{
  "success": false,
  "error": {
    "code": "SUBSCRIPTION_NOT_FOUND",
    "message": "Subscription not found"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 403 | `INFRA_FORBIDDEN_FOR_COWORK_KEY` | Вызов сделан ключом Cowork/Code — такой ключ работает только с данными, изменяющие операции ему закрыты. Что делать — [Проектный ключ для деплоя](/docs/cowork/deploy-key) |
| 403 | `SERVER_ROLE_FORBIDDEN` | Вы состоите в команде разработки этого сервера с ролью «Разработчик», а операция открыта роли «Администратор». В `error.hint` придут ваша роль, требуемый порог и перечень открытых вам вызовов. Разбор ролей — [Список серверов](/docs/infra/servers/list) |
| 404 | `NOT_FOUND` | Сервер не найден или привязан к другому API-ключу, и вы не состоите в его команде разработки |
| 404 | `SUBSCRIPTION_NOT_FOUND` | Подписка с указанным `subId` не найдена для этого сервера |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

- **Повторное удаление той же подписки возвращает `404 SUBSCRIPTION_NOT_FOUND`.** После успешного удаления записи с этим `subId` больше нет, поэтому второй вызов не находит подписку.
- **Отвязать событие можно и повторным `POST`.** Если нужно не удалить подписку, а перенаправить событие на другой путь, вызовите [`POST`](./create.md) с тем же `event` — он обновит `appPath` существующей подписки.

## Смотрите также

- [Подписки на события портала](/docs/infra/event-subscriptions)
- [Создать подписку](/docs/infra/event-subscriptions/create)
- [Список подписок](/docs/infra/event-subscriptions/list)
- [Ошибки](/docs/errors)
