
## Обновить тип смарт-процесса

`PATCH /v1/smart-processes/:entityTypeId`

Обновляет поля существующего типа смарт-процесса. Передавайте только те поля, которые нужно изменить — остальные остаются прежними.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `entityTypeId` (path) | number | **да** | ID типа сущности. Список: `GET /v1/smart-processes` |

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

Все поля опциональны. Не переданные поля остаются без изменений.

| Поле | Тип | Описание |
|------|-----|---------|
| `title` | string | Название смарт-процесса |
| `code` | string | Символьный код типа (для программной идентификации) |
| `isCategoriesEnabled` | boolean | Использовать свои воронки и туннели продаж |
| `isStagesEnabled` | boolean | Использовать свои стадии и канбан |
| `isBeginCloseDatesEnabled` | boolean | Поля «Дата начала» и «Дата завершения» |
| `isClientEnabled` | boolean | Поле «Клиент» с привязкой к контактам и компаниям |
| `isLinkWithProductsEnabled` | boolean | Привязка товаров каталога |
| `isMycompanyEnabled` | boolean | Поле «Реквизиты вашей компании» |
| `isObserversEnabled` | boolean | Поле «Наблюдатели» |
| `isSourceEnabled` | boolean | Поля «Источник» и «Дополнительно об источнике» |
| `isAutomationEnabled` | boolean | Роботы и триггеры |
| `isBizProcEnabled` | boolean | Дизайнер бизнес-процессов |
| `isDocumentsEnabled` | boolean | Печать документов |
| `isRecyclebinEnabled` | boolean | Использование корзины |
| `isSetOpenPermissions` | boolean | Делать новые воронки доступными для всех |
| `isUseInUserfieldEnabled` | boolean | Использовать смарт-процесс в пользовательском поле |
| `isRecurringEnabled` | boolean | Поле «Регулярность» |
| `isPaymentsEnabled` | boolean | Онлайн-оплата |
| `isCountersEnabled` | boolean | Счётчики (уведомления и бейджи) |
| `relations` | object | Связи с другими сущностями CRM. **Полностью заменяет** существующие связи — см. «Известные особенности» |
| `linkedUserFields` | object | Пользовательские поля, в которых отображается смарт-процесс. Формат — см. [Создать тип](/docs/entities/smart-processes/create#связи-и-пользовательские-поля) |

Полный список полей: [GET /v1/smart-processes/fields](/docs/entities/smart-processes/fields).

**Сменить `entityTypeId` нельзя** — он устанавливается при создании и остаётся неизменным.

## Основные обновляемые поля

- `title` — переименование типа
- `isStagesEnabled`, `isCategoriesEnabled`, `isAutomationEnabled`, `isBizProcEnabled` — включение/выключение основных возможностей
- `code` — назначение программного идентификатора
- `relations` — настройка связей с другими типами CRM

## Примеры

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

```bash
curl -X PATCH https://vibecode.bitrix24.tech/v1/smart-processes/1050 \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Договоры поставки (обновлённое название)",
    "code": "supply_contracts",
    "isAutomationEnabled": false
  }'
```

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

```bash
curl -X PATCH https://vibecode.bitrix24.tech/v1/smart-processes/1050 \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Договоры поставки (обновлённое название)",
    "code": "supply_contracts",
    "isAutomationEnabled": false
  }'
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/1050', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Договоры поставки (обновлённое название)',
    code: 'supply_contracts',
    isAutomationEnabled: false,
  }),
})

const { success, data } = await res.json()
console.log('Обновлено в:', data.updatedTime)
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/smart-processes/1050', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Договоры поставки (обновлённое название)',
    code: 'supply_contracts',
    isAutomationEnabled: false,
  }),
})

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

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

| Поле | Тип | Описание |
|------|-----|---------|
| `data` | object | Полный объект типа после обновления. Список полей — см. [Поля типа](/docs/entities/smart-processes/fields) |

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

```json
{
  "success": true,
  "data": {
    "id": 31,
    "entityTypeId": 1050,
    "title": "Договоры поставки (обновлённое название)",
    "code": "supply_contracts",
    "createdBy": 1,
    "createdTime": "2026-04-21T13:46:45+03:00",
    "updatedBy": 1,
    "updatedTime": "2026-04-21T14:50:13+03:00",
    "customSectionId": null,
    "isCategoriesEnabled": true,
    "isStagesEnabled": true,
    "isBeginCloseDatesEnabled": false,
    "isClientEnabled": false,
    "isLinkWithProductsEnabled": true,
    "isMycompanyEnabled": false,
    "isObserversEnabled": false,
    "isSourceEnabled": false,
    "isAutomationEnabled": false,
    "isBizProcEnabled": true,
    "isDocumentsEnabled": false,
    "isRecyclebinEnabled": false,
    "isSetOpenPermissions": true,
    "isUseInUserfieldEnabled": false,
    "isRecurringEnabled": false,
    "isPaymentsEnabled": false,
    "isCountersEnabled": false,
    "isInitialized": true
  }
}
```

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

404 — тип не найден:

```json
{
  "success": false,
  "error": {
    "code": "SMART_PROCESS_NOT_FOUND",
    "message": "Smart process with entityTypeId=99999 not found"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 401 | `MISSING_API_KEY` | Заголовок `X-Api-Key` не передан |
| 401 | `INVALID_API_KEY` | Ключ не найден или отозван |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `crm` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |
| 400 | `INVALID_ENTITY_TYPE_ID` | `entityTypeId` не является положительным целым. Сообщение: `entityTypeId must be a positive integer` |
| 400 | `READONLY_FIELD` | В теле передано поле только для чтения (`id`, `isInitialized`, `createdTime` и другие) |
| 404 | `SMART_PROCESS_NOT_FOUND` | Тип с таким `entityTypeId` не найден. Сообщение: `Smart process with entityTypeId=X not found` |
| 422 | `BITRIX_ERROR` | Ошибка валидации от Битрикс24. Конкретная причина — в поле `message` |

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

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

**`relations` полностью заменяет существующие связи.** Если передать `relations: {parent: [{entityTypeId: 3}]}`, все прежние `parent`-связи **будут удалены** и заменены на один новый массив. Чтобы добавить связь, не потеряв текущие, — сначала получите текущее состояние через `GET /v1/smart-processes/:entityTypeId`, добавьте новую запись в массив и передайте весь обновлённый список.

Аналогично для `child` и `linkedUserFields` — это «перезапись», не «патч по записям».

**Пустое тело запроса (`{}`) допустимо.** PATCH с пустым объектом возвращает HTTP 200 и текущее состояние типа, ничего не меняя.

**Изменение `entityTypeId` невозможно** — он задаётся при создании и служит стабильным идентификатором типа.

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

- [Получить тип](/docs/entities/smart-processes/get)
- [Список типов](/docs/entities/smart-processes/list)
- [Создать тип](/docs/entities/smart-processes/create)
- [Удалить тип](/docs/entities/smart-processes/delete)
- [Поля типа](/docs/entities/smart-processes/fields)
- [Элементы смарт-процессов](/docs/entities/items)
- [Лимиты и оптимизация](/docs/optimization)
