[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-notifications\u002Fendpoints":3,"docs-tabs-notifications\u002Fendpoints":6},{"content":4,"lastmod":5},"\n# Эндпоинты раздела «Уведомления»\n\nОтправка уведомлений сотрудникам Битрикс24, отметка о прочтении и удаление по идентификатору или метке. Переключайте методы во вкладках — у каждого свои параметры, поля ответа и коды ошибок.\n\n**Скоуп:** `im` | **Базовый URL:** `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1` | **Авторизация:** `X-Api-Key`\n\n## Операции\n\n- [Отправить уведомление](.\u002Fsend.md) — `POST \u002Fv1\u002Fnotifications`\n- [Отметить прочитанными](.\u002Fread.md) — `POST \u002Fv1\u002Fnotifications\u002Fread`\n- [Удалить по идентификатору](.\u002Fdelete.md) — `DELETE \u002Fv1\u002Fnotifications\u002F:id`\n- [Удалить по метке](.\u002Fdelete-by-tag.md) — `DELETE \u002Fv1\u002Fnotifications\u002Fby-tag\u002F:tag`\n","2026-07-02",{"send.md":7,"read.md":8,"delete.md":9,"delete-by-tag.md":10},"\n## Отправить уведомление\n\n`POST \u002Fv1\u002Fnotifications`\n\nОтправляет уведомление сотруднику Битрикс24 — оно появляется в разделе «Уведомления» портала.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `userId` | number | да | ID сотрудника-получателя. Список: `GET \u002Fv1\u002Fusers` |\n| `message` | string | да | Текст уведомления |\n| `type` | string | нет | `personal` — личное уведомление от имени приложения, `system` — служебное сообщение портала. По умолчанию `personal` |\n| `tag` | string | нет | Метка уведомления. По ней уведомления удаляются группой через `DELETE \u002Fv1\u002Fnotifications\u002Fby-tag\u002F:tag` |\n| `subTag` | string | нет | Дополнительная метка внутри `tag` |\n| `messageOut` | string | нет | Отдельный текст для внешнего мессенджера, если он подключён у получателя |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"userId\": 1,\n    \"message\": \"Сделка №1024 перешла в стадию «Оплачено»\"\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"userId\": 1,\n    \"message\": \"Сделка №1024 перешла в стадию «Оплачено»\"\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    userId: 1,\n    message: 'Сделка №1024 перешла в стадию «Оплачено»',\n  }),\n})\n\nconst body = await res.json()\nconsole.log('ID уведомления:', body.data.notificationId)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    userId: 1,\n    message: 'Сделка №1024 перешла в стадию «Оплачено»',\n  }),\n})\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешной доставке |\n| `data.notificationId` | number | Идентификатор созданного уведомления. Передайте его в [`DELETE \u002Fv1\u002Fnotifications\u002F:id`](.\u002Fdelete.md), чтобы удалить уведомление |\n\n## Пример ответа\n\nHTTP 201:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"notificationId\": 37421\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n422 — уведомление не доставлено:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"NOTIFICATION_NOT_DELIVERED\",\n    \"message\": \"Bitrix24 did not create the notification (returned false). The userId may not exist on the portal or may be deactivated.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 400 | `MISSING_PARAMS` | Не передан `userId` или `message` |\n| 422 | `NOTIFICATION_NOT_DELIVERED` | Уведомление не создано — получателя нет на портале или он деактивирован |\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |\n| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |\n| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Каждый вызов создаёт новое уведомление с новым `notificationId`. Повторная отправка одного текста показывает получателю несколько уведомлений — для однократного показа удаляйте прежнее уведомление или отправляйте с общей меткой `tag`.\n\n## Смотрите также\n\n- [Отметить прочитанными](.\u002Fread.md)\n- [Удалить по идентификатору](.\u002Fdelete.md)\n- [Удалить по метке](.\u002Fdelete-by-tag.md)\n- [Сотрудники](\u002Fdocs\u002Fentities\u002Fusers)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Отметить прочитанными\n\n`POST \u002Fv1\u002Fnotifications\u002Fread`\n\nОтмечает уведомления получателя прочитанными или непрочитанными. По умолчанию отмечаются уведомление с указанным `id` и все с бо́льшим идентификатором.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `id` | number | нет | Идентификатор уведомления из ответа [`POST \u002Fv1\u002Fnotifications`](.\u002Fsend.md). Отмечаются это уведомление и все с бо́льшим `id`. Без поля `id` статусы не меняются |\n| `action` | string | нет | `Y` — отметить прочитанными, `N` — непрочитанными. По умолчанию `Y` |\n| `onlyCurrent` | boolean | нет | `true` отмечает только уведомление с указанным `id`. Иначе — все с идентификатором не меньше `id` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fread\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"id\": 37421, \"onlyCurrent\": true }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fread\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"id\": 37421, \"onlyCurrent\": true }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fread', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ id: 37421, onlyCurrent: true }),\n})\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fread', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({ id: 37421, onlyCurrent: true }),\n})\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | `true` при успешном выполнении |\n| `data` | boolean | Всегда `true`. Признак успеха — HTTP-код `200`, а не значение |\n\n## Пример ответа\n\nHTTP 200:\n\n```json\n{\n  \"success\": true,\n  \"data\": true\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `im`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'im' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |\n| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Тело запроса обязательно — передавайте как минимум `{}`. Без поля `id` внутри тела запрос завершается успешно, но статусы уведомлений не меняются. Передавайте `id`, чтобы действительно отметить уведомления.\n\n## Смотрите также\n\n- [Отправить уведомление](.\u002Fsend.md)\n- [Удалить по идентификатору](.\u002Fdelete.md)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Удалить по идентификатору\n\n`DELETE \u002Fv1\u002Fnotifications\u002F:id`\n\nУдаляет уведомление по идентификатору, полученному при отправке. Восстановить удалённое уведомление через API нельзя.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор уведомления из ответа [`POST \u002Fv1\u002Fnotifications`](.\u002Fsend.md) |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002F37421\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002F37421\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002F37421', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Уведомление удалено')\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002F37421', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Уведомление удалено')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом — успех проверяется по статусу.\n\n## Пример ответа\n\n```http\nHTTP\u002F1.1 204 No Content\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа `im`:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'im' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |\n| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |\n| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Запрос на несуществующий `id` тоже возвращает `204` — по коду ответа нельзя отличить удаление реального уведомления от удаления уже отсутствующего.\n\n## Смотрите также\n\n- [Отправить уведомление](.\u002Fsend.md)\n- [Удалить по метке](.\u002Fdelete-by-tag.md)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n","\n## Удалить по метке\n\n`DELETE \u002Fv1\u002Fnotifications\u002Fby-tag\u002F:tag`\n\nУдаляет все уведомления приложения с указанной меткой `tag` разом. Метку задают при отправке в поле `tag`. Удаление затрагивает только уведомления, отправленные этим же приложением.\n\nОперация доступна **только для ключа OAuth-приложения** — метка привязана к приложению, поэтому запрос должен нести оба заголовка: `X-Api-Key` с ключом приложения и `Authorization: Bearer` с сессионным токеном пользователя. С личным ключом запрос возвращает `403 BITRIX_ACCESS_DENIED`.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `tag` (path) | string | да | Метка `tag`, с которой уведомления были отправлены через [`POST \u002Fv1\u002Fnotifications`](.\u002Fsend.md) |\n\n## Примеры\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fby-tag\u002Fdeal-1024\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fnotifications\u002Fby-tag\u002Fdeal-1024', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Уведомления с меткой удалены')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом — успех проверяется по статусу.\n\n## Пример ответа\n\n```http\nHTTP\u002F1.1 204 No Content\n```\n\n## Пример ответа при ошибке\n\n403 — вызов с личным ключом, метка приложения недоступна:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"BITRIX_ACCESS_DENIED\",\n    \"message\": \"Access denied! Client ID not specified\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 403 | `BITRIX_ACCESS_DENIED` | Вызов личным ключом — удаление по метке доступно только ключу OAuth-приложения |\n| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |\n| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |\n| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- Запрос на метку без уведомлений тоже возвращает `204` — по коду ответа нельзя узнать, сколько уведомлений удалено.\n- Удаляются только уведомления, отправленные тем же приложением. Метка одного приложения не затрагивает уведомления другого.\n\n## Смотрите также\n\n- [Отправить уведомление](.\u002Fsend.md)\n- [Удалить по идентификатору](.\u002Fdelete.md)\n- [Ошибки](\u002Fdocs\u002Ferrors)\n"]