## Сменить режим настроек уведомлений

`PUT /v1/notifications/settings/scheme`

Переключает режим настроек уведомлений сотрудника: расширенный или простой. В расширенном каждое событие настраивается отдельно, в простом настройки событий строятся из общих переключателей каналов.

> **Важно:** переход в простой режим `simple` перезаписывает настройки каждого события. Обратный переход в расширенный режим `expert` прежние настройки событий не возвращает. Перед переходом в простой режим сохраните ответ [`GET /v1/notifications/settings`](/docs/notifications/settings/list). После перехода вернуть настройки событий можно только вызовами [`PATCH /v1/notifications/settings`](/docs/notifications/settings/update), по одному каналу события за вызов.

## Поля запроса (body)

| Поле | Тип | Обяз. | Описание |
|------|-----|:-----:|----------|
| `scheme` | string | да | Режим: `expert` — расширенный, `simple` — простой. Регистр учитывается: `SIMPLE` отклоняется |
| `userId` | number | нет | ID сотрудника, чей режим переключить, — положительное целое число. Список: [`GET /v1/users`](/docs/entities/users/list). Без поля — сотрудник, от имени которого сделан вызов. Режим другого сотрудника переключает только администратор Битрикс24 |

## Примеры

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

```bash
curl -X PUT "https://vibecode.bitrix24.tech/v1/notifications/settings/scheme" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "scheme": "expert" }'
```

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

```bash
curl -X PUT "https://vibecode.bitrix24.tech/v1/notifications/settings/scheme" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "scheme": "expert" }'
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/settings/scheme', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ scheme: 'expert' }),
})

const { data } = await res.json()
console.log('Модулей:', data.length)
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/settings/scheme', {
  method: 'PUT',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ scheme: 'expert' }),
})

const { data } = await res.json()
```

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

| Поле | Тип | Описание |
|------|-----|----------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Настройки сотрудника после переключения — модули с событиями и каналами в том же формате, что в ответе [получения настроек](/docs/notifications/settings/list) |

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

Показан один модуль и часть его событий. Набор модулей и событий зависит от портала.

HTTP 200:

```json
{
  "success": true,
  "data": [
    {
      "id": "im",
      "label": "Чат и звонки",
      "notices": [
        {
          "id": "message",
          "label": "Сообщения в личных чатах",
          "site": true,
          "mail": false,
          "push": false,
          "disabled": ["site"]
        },
        {
          "id": "like",
          "label": "Реакции на ваши сообщения",
          "site": false,
          "mail": false,
          "push": false,
          "disabled": ["push"]
        }
      ]
    }
  ]
}
```

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

400 — режим не из списка:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Body field `scheme` must be one of: expert, simple."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 400 | `INVALID_PARAMS` | `scheme` не передан или не равен ни `expert`, ни `simple`. Проверяется до обращения в Битрикс24 |
| 400 | `INVALID_PARAMS` | `userId` — не положительное целое число |
| 400 | `INVALID_PARAMS` | В теле передано поле, отличное от `scheme` и `userId`, либо тело не JSON-объект. Допустимые поля перечислены в `message` |
| 400 | `INVALID_PARAMS` | Передан параметр запроса. Операция не принимает параметров запроса |
| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |
| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» |
| 422 | `BITRIX_ERROR` | `userId` указывает на другого сотрудника, а у сотрудника, от имени которого сделан вызов, нет прав администратора Битрикс24. Код портала `SETTINGS_ACCESS_DENIED` — в поле `error.b24Code` |
| 502 | `ME_ALIAS_RESOLUTION_FAILED` | `userId` не передан, и определить сотрудника, от имени которого сделан вызов, не удалось. Режим не менялся |

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

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

- [Получить настройки уведомлений](/docs/notifications/settings/list)
- [Изменить настройку уведомления](/docs/notifications/settings/update)
- [Настройки уведомлений](/docs/notifications/settings)
