Для AI-агентов: markdown этой страницы — /docs-content/entities/crm-v3-dictionaries/stages-replace.md индекс документации — /llms.txt
Заменить стадии воронки
PUT /v1/deal-categories/:categoryId/stages
PUT /v1/categories/:entityTypeId/:categoryId/stages
Заменяет изменяемый набор стадий воронки сделок или смарт-процесса. Порядок элементов массива задаёт порядок стадий.
Метод требует обновления CRM после
26.2200.0. Номер выпущенной версии ещё не определён. Доступен не на всех порталах Битрикс24. Возможность должен включить администратор.
Внимание: стадии, не включённые в замену, могут быть удалены. Используйте ключ READWRITE со скоупом crm и правами на управление стадиями воронки.
Параметры
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
ПараметрcategoryId (path) |
Типnumber | Обяз.да | По умолч.— | ОписаниеНеотрицательное безопасное целое число. 0 — основная воронка сделок. ID из Воронок сделок или Воронок |
ПараметрentityTypeId (path) |
Типnumber | Обяз.да, для второго пути | По умолч.— | Описание2 для сделок или динамический тип из Смарт-процессов. Другие фиксированные типы CRM не принимаются |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеstages |
Типarray | Обяз.да | ОписаниеНовый упорядоченный набор, не более 50 элементов. Пустой массив удаляет доступные для удаления стадии с проверкой прав и использования |
Полеstages[].stageId |
Типstring | null | Обяз.нет | ОписаниеПолный ID существующей стадии из поля statusId в Статусах или предыдущего ответа замены. Без поля или с null создаётся стадия |
Полеstages[].name |
Типstring | Обяз.да | ОписаниеНазвание стадии, до 100 символов |
Полеstages[].color |
Типstring | Обяз.нет | Описание#RRGGBB или пустая строка для удаления цвета. Без поля существующий цвет сохраняется |
Полеstages[].description |
Типstring | Обяз.нет | ОписаниеОписание стадии |
Примеры
Замените 29 на ID своей тестовой воронки.
curl — личный ключ
curl -X PUT "https://vibecode.bitrix24.tech/v1/deal-categories/29/stages" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"stages":[{"name":"VIBE-PROBE First"},{"name":"VIBE-PROBE Second"}]}'
curl — OAuth-приложение
curl -X PUT "https://vibecode.bitrix24.tech/v1/deal-categories/29/stages" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"stages":[{"name":"VIBE-PROBE First"},{"name":"VIBE-PROBE Second"}]}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/deal-categories/29/stages', {
method: 'PUT',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({"stages":[{"name":"VIBE-PROBE First"},{"name":"VIBE-PROBE Second"}]}),
})
const result = await res.json()
console.log(result)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/deal-categories/29/stages', {
method: 'PUT',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({"stages":[{"name":"VIBE-PROBE First"},{"name":"VIBE-PROBE Second"}]}),
})
const result = await res.json()
console.log(result)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | Описаниеtrue при успехе |
Полеdata |
Типarray | ОписаниеСтадии воронки после замены |
Полеdata[].stageId |
Типstring | ОписаниеПолный ID стадии. Источник — этот ответ или поле statusId в Статусах |
Полеdata[].categoryId |
Типnumber | ОписаниеID воронки из Списка воронок |
Полеdata[].name |
Типstring | ОписаниеНазвание стадии |
Полеdata[].sort |
Типnumber | ОписаниеПорядок сортировки |
Полеdata[].semantics |
Типstring | Описаниеprocess, success или failure |
Полеdata[].color |
Типstring | ОписаниеЦвет или пустая строка |
Полеdata[].isSystem |
Типboolean | ОписаниеПризнак системной стадии |
Полеdata[].description |
Типstring | ОписаниеОписание стадии |
Пример ответа
HTTP 200.
{
"success": true,
"data": [
{
"stageId": "C29:NEW",
"categoryId": 29,
"name": "Новая",
"sort": 10,
"semantics": "process",
"color": "#1F86FF",
"isSystem": true,
"description": ""
},
{
"stageId": "C29:UC_975XX9",
"categoryId": 29,
"name": "VIBE-PROBE First",
"sort": 20,
"semantics": "process",
"color": "",
"isSystem": false,
"description": ""
},
{
"stageId": "C29:UC_8U03YB",
"categoryId": 29,
"name": "VIBE-PROBE Second",
"sort": 30,
"semantics": "process",
"color": "",
"isSystem": false,
"description": ""
},
{
"stageId": "C29:WON",
"categoryId": 29,
"name": "Сделка успешна",
"sort": 40,
"semantics": "success",
"color": "#7BD500",
"isSystem": true,
"description": ""
},
{
"stageId": "C29:LOSE",
"categoryId": 29,
"name": "Сделка провалена",
"sort": 50,
"semantics": "failure",
"color": "#FF5752",
"isSystem": true,
"description": ""
},
{
"stageId": "C29:APOLOGY",
"categoryId": 29,
"name": "Анализ причины провала",
"sort": 60,
"semantics": "failure",
"color": "#FF5752",
"isSystem": false,
"description": ""
}
]
}
Пример ответа при ошибке
400 — нарушена структура тела замены:
{
"success": false,
"error": {
"code": "INVALID_PARAMS",
"message": "Use a nonnegative categoryId and a stages array with name and optional stageId, color and description"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодINVALID_PARAMS |
ОписаниеНеверный формат пути или тела запроса |
| HTTP400 | КодUNKNOWN_FILTER_FIELD |
ОписаниеНеизвестный или повторяющийся параметр запроса |
| HTTP404 | КодENTITY_NOT_FOUND |
ОписаниеВоронка или стадия не найдена |
| HTTP403 | КодBITRIX_ACCESS_DENIED |
ОписаниеНедостаточно прав в Битрикс24 |
| HTTP403 | КодSCOPE_DENIED |
ОписаниеКлюч не имеет скоупа crm |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеЗапись запрещена ключу READONLY |
| HTTP401 | КодTOKEN_MISSING |
ОписаниеУ ключа нет настроенного доступа к Битрикс24 |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
| HTTP422 | КодMETHOD_NOT_YET_AVAILABLE |
ОписаниеВозможность не включена или метод недоступен на этом портале. error.release указывает обновление |
| HTTP502 | КодBITRIX_UNAVAILABLE |
ОписаниеПолучен некорректный ответ Битрикс24 |
Другие отказы Битрикс24 сохраняют HTTP-статус, код и сообщение с удалением учётных данных. Общие ошибки API — Ошибки.
Известные особенности
Системные и финальные стадии сохраняются, даже если их нет в массиве. Изменение таких стадий и удаление стадии, занятой записями, запрещены. Набор заменяется в одной транзакции без переноса записей.
После таймаута или обрыва соединения не повторяйте запрос вслепую: замена могла завершиться, а элементы без stageId запрашивают создание стадий. Перед повторной отправкой прочитайте текущие стадии.