Для AI-агентов: markdown этой страницы — /docs-content/changelog/2026-10-09.md индекс документации — /llms.txt
Изменения API: 9 октября 2026
← Журнал изменений · Октябрь 2026
BC-1009-1: Порядок в batch-подкомандах шаблонов документов и событий календаря
Поддержка старого формата до: не предусмотрена
Было
В POST /v1/batch подкоманды list и search для doc-templates и calendar-events могли принять sort или order и ответить успешно, не сохранив запрошенный порядок.
Стало
Такая подкоманда получает INVALID_SORT_FIELD до вызова Битрикс24. Если все подкоманды отклонены, ответ — HTTP 400 INVALID_REQUEST с кодом подкоманды в data.errors. В смешанном запросе успешные подкоманды продолжают выполняться.
Что делать интеграторам
Для doc-templates запрашивайте полный отсортированный набор через GET /v1/doc-templates с параметром sort. Для calendar-events уберите sort и order из batch-подкоманды: список возвращается в фиксированном порядке по времени начала.
FIX-1009-2: Удаление отсутствующего изображения товара возвращает 404
Было
DELETE /v1/catalog-products/:productId/images/:imageId
отвечал 422 BITRIX_ERROR, если изображение уже удалено, принадлежит другому
товару или не существует.
Стало
В этих случаях ответ — 404 ENTITY_NOT_FOUND, как при чтении изображения.
Успешное удаление по-прежнему возвращает 200 и data.deleted: true.
Влияние на интеграторов
При повторе удаления после потерянного ответа учитывайте 404 ENTITY_NOT_FOUND.
Отсутствие изображения можно проверить по списку изображений товара.
FIX-1009-3: Ручная регистрация ИИ-модели сообщает о неверном типе поля
Было
POST /v1/ai/credentials/:id/models возвращал 500 internal_error, если name был числом, contextLength — дробным числом или maxOutputTokens — строкой.
Стало
Неверные типы этих полей, дробные значения и целые числа вне диапазона от -2147483648 до 2147483647 для contextLength и maxOutputTokens возвращают 400 invalid_request. Сообщение указывает поле, которое нужно исправить. null и отсутствие необязательных полей сохраняют прежние значения по умолчанию.
BC-1009-4: fields в пакетных запросах каталога возвращает карту полей без обёртки
Поддержка старого формата до: не предусмотрена
Было
В POST /v1/catalog-measures/batch, POST /v1/catalog-vat-rates/batch,
POST /v1/catalog-documents/batch, POST /v1/catalog-document-elements/batch,
POST /v1/catalog-skus/batch и POST /v1/catalog-offers/batch с action: "fields"
карта полей находилась в data[i].data.<ключ>, где ключ — соответственно
measure, vat, document, documentElement, sku или offer.
Стало
Каждый элемент возвращает карту дескрипторов непосредственно в data[i].data.
Например, вместо data[i].data.sku.id поле доступно в data[i].data.id.
Что делать интеграторам
Уберите чтение промежуточного ключа из обработки action: "fields" этих шести
пакетных методов. Имена полей и содержимое дескрипторов сохраняются.
NEW-1009-5: стена квоты Cowork/Code предлагает сброс лимитов по праву акции
Отказ 402 cowork_quota_exhausted на POST /v1/chat/completions,
POST /v1/audio/transcriptions и
POST /v1/images/generations несёт блок limitReset, когда у пользователя есть
право сбросить лимиты, которое можно потратить прямо сейчас (seatAlreadyReset: false). Блок тот
же, что в GET /v1/cowork/me, а право тратится методом
POST /v1/cowork/limits/reset. Тот же блок приходит в предупреждении
COWORK_QUOTA_FALLBACK синхронного ответа резервной модели. Без такого права ключа нет и тело
ответа прежнее, поэтому проверяйте наличие ключа.
BC-1009-6: Списки действий и роботов отклоняют сортировку
Поддержка старого формата до: не предусмотрена
Было
sort и order в запросах списка действий и роботов могли возвращать успешный ответ, хотя порядок кодов не менялся.
Стало
Для GET /v1/bizproc-activities и GET /v1/bizproc-robots любой sort или order возвращает 400 INVALID_SORT_FIELD. В POST /v1/batch, POST /v1/bizproc-activities/batch и POST /v1/bizproc-robots/batch соответствующий подвызов получает INVALID_SORT_FIELD в своём поле ошибки.
Что делать интеграторам
Уберите sort и order из этих запросов. Если нужен определённый порядок, отсортируйте полученные коды в своём приложении.
FIX-1009-7: Пароль SSH открытого сервера подходит к пользователю из выдачи доступа
Было
После перевода сервера в режим OPEN метод GET /v1/infra/servers/{id}/ssh отдавал пару sshUser и sshPassword, в которой пароль был задан другому пользователю. Если sshUser равен ubuntu, вход по паролю под ubuntu отклонялся. Вход по ключу работал.
Стало
Пароль задаётся тому пользователю, которого возвращает поле sshUser, поэтому вход по паролю под ним проходит. Формат ответа не меняется. Как и раньше, каждый переход в OPEN выдаёт новый пароль, а прежние пароли перестают действовать.
FIX-1009-8: OpenAPI описывает пользовательские поля счетов
Было
Шесть работающих методов пользовательских полей смарт-счетов /v1/userfields/invoices отсутствовали в OpenAPI и справочнике API Вайбкод: список полей, типы, создание, чтение, обновление и удаление. Агенты и генераторы клиентов, читающие спецификацию, не видели эти методы.
Стало
Методы включены в полную спецификацию, срез crm и справочник на обоих языках. Они используют тот же контракт пользовательских полей, что и /v1/items/{entityTypeId}/userfields, с фиксированным типом смарт-счёта 31. Описаны параметры, запросы, ответы и отказы. Поведение методов не изменилось. Чтобы методы появились в генерируемом клиенте, обновите его из актуальной спецификации.
Влияние на интеграторов
Действий не требуется.
FIX-1009-9: OpenAPI описывает привязки дел к CRM-сущностям
Было
Четыре работающих метода привязок дел отсутствовали в OpenAPI и справочнике API Вайбкод: GET /v1/activities/{activityId}/bindings, POST /v1/activities/{activityId}/bindings, DELETE /v1/activities/{activityId}/bindings и POST /v1/activities/{activityId}/bindings/move. Агенты и генераторы клиентов не видели эти методы в спецификации.
Стало
Методы включены в полную спецификацию, срез crm и справочник на обоих языках. Описаны параметры, запросы, ответы и отказы, включая передачу параметров удаления через query или JSON-тело. Поведение методов не изменилось. Обновите генерируемый клиент из актуальной спецификации, чтобы в нём появились эти методы.
Влияние на интеграторов
Действий не требуется.
FIX-1009-10: Строгая проверка id полей шаблонов реквизитов
Было
В маршрутах полей шаблонов реквизитов нечисловой хвост id молча отбрасывался: например, 12abc превращался в 12, и изменение или удаление могло затронуть другое поле.
Затронутые эндпоинты: GET /v1/requisite-presets/{presetId}/fields, GET /v1/requisite-presets/{presetId}/fields/schema, GET /v1/requisite-presets/{presetId}/fields/available, POST /v1/requisite-presets/{presetId}/fields, GET /v1/requisite-presets/{presetId}/fields/{id}, PATCH /v1/requisite-presets/{presetId}/fields/{id}, DELETE /v1/requisite-presets/{presetId}/fields/{id}.
Стало
Некорректный presetId или id поля отклоняется до обращения к Битрикс24: HTTP 400 с кодом INVALID_PRESET_ID или INVALID_FIELD_ID. Допустимы только целые десятичные числа от 1 до 9007199254740991 без знака, ведущих нулей, пробелов, дробной части, экспоненты и нечислового хвоста.
Для интеграторов
Передавайте id целым числом в указанном диапазоне и формате.
FIX-1009-11: демо Vibe+, включённое в Битрикс24, открывает доступ на .com
Было
Если демо Vibe+ включали на стороне Битрикс24, а не кнопкой в кабинете Вайбкод, платформа о нём не знала. Создание сервера, агента или бота и выпуск ключа получали отказ 402 с кодом INT_VIBE_PLUS_REQUIRED, хотя в Битрикс24 демо было активно. GET /v1/me с параметром refresh=tariff перечитывал только тариф, и продление демо на стороне Битрикс24 тоже оставалось незамеченным.
Стало
Прежде чем ответить INT_VIBE_PLUS_REQUIRED, платформа спрашивает Битрикс24 о демо Vibe+. Если демо активно, действие выполняется в режиме пробного периода, с теми же ограничениями, что и у демо, подключённого из кабинета. Запрос с refresh=tariff теперь перечитывает и срок демо. Если Битрикс24 не ответил, отказ остаётся прежним.
Влияние на интеграторов
Менять ничего не нужно. Агент, получивший INT_VIBE_PLUS_REQUIRED после включения демо в Битрикс24, может повторить действие.
FIX-1009-12: окна пробуждения: запас не меньше платформенного, исходы по моменту подъёма
Было
Значение lead в окне POST /v1/infra/servers/:id/wake-schedules меньше платформенного запаса сокращало время на подъём сервера, и с таким запасом сервер не успевал подняться к моменту cronExpr. Исход WOKEN или LATE в ответе GET /v1/infra/servers/:id/wake-schedules не совпадал с моментом подъёма: сервер, поднявшийся за секунды до срока, получал LATE. Если в момент окна сервер уже работал и засыпал вскоре после него, платформа поднимала его повторно ради прошедшего срока и записывала LATE.
Стало
Платформенный запас стал нижней границей: меньшее значение lead сохраняется в окне как передано, но подъём начинается не позже, чем за платформенный запас до момента cronExpr. Исход и firedAt определяются по моменту, когда сервер перешёл в RUNNING. Срок, на который сервер уже работал, считается обслуженным, повторного подъёма и записи в истории окна нет.
Влияние на интеграторов
Действий не требуется. Сервер с lead меньше платформенного запаса теперь поднимается раньше и работает на это время дольше.
FIX-1009-13: Ответ API на бесплатном тарифе называет тариф и подписку
Было
Отказ 402 MARKETPLACE_REQUIRED, например при вызове POST /v1/infra/servers, предлагал подключить только подписку Маркетплейса даже на бесплатном тарифе Битрикс24.
Стало
Для российского портала на прочитанном бесплатном тарифе поля message, userMessage и hint сообщают, что нужны платный тариф Битрикс24 и подписка BitrixGPT + Маркетплейс. Касса портала добавит оба в одну корзину. Ссылка для покупки остаётся прежней. На платном, демо-тарифе и при непрочитанном тарифе сохраняется прежний текст отказа.
Влияние на интеграторов
Менять интеграцию не требуется. Формат ответа, HTTP-статус и код ошибки сохраняются. Новое пояснение помогает пользователю понять, что необходимо приобрести для создания инфраструктуры.
NEW-1009-14: Одиночные методы доступны в OpenAPI и справочнике API
В GET /v1/openapi.json и справочник API добавлены описания шести уже работающих методов: POST /v1/pages/{id}/publication, POST /v1/pages/{id}/unpublish, GET /v1/chats/events, POST /v1/users/invite, POST /v1/workflows/activity-log и GET /v1/warehouses/fields.
Агенты и генераторы клиентов могут обнаружить эти методы и прочитать их параметры, тела запросов, ответы и отказы. Поведение методов сохранено.
FIX-1009-15: добавление товара в оплату отвечает 404 на немецком и казахском языках Битрикс24
Было
POST /v1/crm-payments/:id/products с товаром, который нельзя оплатить в этой оплате, отвечал 404 ENTITY_NOT_FOUND, только если Битрикс24 работал на английском или русском языке. На немецком и казахском тот же отказ приходил как 422 BITRIX_ERROR с текстом на языке Битрикс24.
Стало
Отказ отвечает 404 ENTITY_NOT_FOUND на любом из этих языков. Для немецкого и казахского текст ошибки приходит на английском: Product was not found.
Влияние на интеграторов
Действий не требуется. Обработчик 404 ENTITY_NOT_FOUND теперь срабатывает одинаково на всех языках Битрикс24.
NEW-1009-16: настройки учёта рабочего времени по указанному сотруднику
GET /v1/workday/settings принимает необязательный параметр userId и возвращает настройки учёта рабочего времени этого сотрудника, в том числе признак ufTimeman (ведётся ли учёт). Без параметра ответ, как и раньше, относится к пользователю, которому принадлежат токены ключа. Настройки другого сотрудника Битрикс24 отдаёт только при праве управлять рабочим временем всех сотрудников, иначе запрос отклоняется с ошибкой 422 BITRIX_ERROR. Поле admin в настройках другого сотрудника не возвращается. Значение userId, которое не является положительным целым числом, отклоняется с ошибкой 400 INVALID_PARAMS.
NEW-1009-17: Расширения Коворка
API Вайбкод поддерживает отдельный каталог расширений Коворка: создание карточек, проверку и загрузку версий, публикацию и скачивание опубликованных архивов. Корпоративные расширения доступны участникам своей компании; расширения поставщика доступны глобально. Публикация не устанавливает и не включает расширение у пользователя. Desktop API использует существующий scope vibe:cowork; scopes выданных ключей и API приложений не меняются. Изменения карточек защищены ревизией и ключом идемпотентности. Добавлен POST /v1/cowork/portal-rest для SDK: он сохраняет существующие права метода и READONLY, возвращает исходный native result и не повторяет native записи при неопределённом результате. Корпоративная публикация не требует модерации; архив UI+Node собирается локально.
NEW-1009-18: Ссылка на описание подписки или тарифа в отказе 402 по AI-квоте
Ответ 402 ai_quota_exhausted с reason: "wallet_off" на маршрутах моделей, например на чате, эмбеддингах и расшифровке аудио, несёт поле details.learnMoreUrl, когда подтверждено отсутствие оплаченного доступа к AI-моделям, в том числе при исчерпанной квоте демо. Это страница с описанием подписки или тарифа Битрикс24, в которые входит AI, а поле message в этом случае называет нужный продукт. При неподтверждённом состоянии доступа или других причинах отказа ответ прежний.
BC-1009-19: Разрешение портала на ИИ в приложениях Connect
Поддержка старого формата до: не предусмотрена
Было
Партнёрское приложение Connect могло получить доступ к моделям по праву vibe:ai при согласии сотрудника без отдельного разрешения администратора портала.
Стало
Для партнёрского приложения Connect доступ к моделям по праву vibe:ai требует действующего разрешения администратора портала. Пока разрешения нет или оно отозвано, вызовы моделей, например POST /v1/chat/completions, возвращают 403 CONNECT_AI_NOT_PERMITTED. Другие права ключа продолжают действовать.
Что делать интеграторам
Если сотрудник запрашивает разрешение администратора, текущая попытка подключения завершается отказом. В перенаправлении OAuth приходит error=access_denied и error_description=admin_approval_requested; при опросе устройства через POST /v1/connect/token ответ содержит те же значения. Это окончание попытки, а не сигнал продолжать опрос. После одобрения администратором начните новое подключение Connect. При CONNECT_AI_NOT_PERMITTED после отзыва разрешения обратитесь к администратору за повторным разрешением.