Для AI-агентов: markdown этой страницы — /docs-content/feedback/update.md индекс документации — /llms.txt
Обновить обращение
PATCH /v1/feedback/:id
Меняет статус и резолюцию обращения. Полное обновление доступно ключу со скоупом vibe:feedback. Автор обычным ключом может только отозвать своё обращение — телом { "status": "WITHDRAWN" }.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
Параметрid (path) |
Типstring | Обяз.да | ОписаниеUUID обращения. Список: GET /v1/feedback |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Полеstatus |
Типstring | Обяз.нет | ОписаниеНовый статус — значения в таблице Статусы |
Полеresolution |
Типstring · null | Обяз.нет | ОписаниеТекст резолюции. Желателен при переводе в RESOLVED. Явный null очищает поле |
Статусы
| Статус | Значение |
|---|---|
СтатусNEW |
ЗначениеОбращение только создано |
СтатусREVIEWING |
ЗначениеОбращение взято в разбор |
СтатусAWAITING_USER |
ЗначениеНужен ответ или уточнение от автора |
СтатусNEEDS_REVIEW |
ЗначениеТребует повторного разбора |
СтатусRESOLVED |
ЗначениеОбращение закрыто с резолюцией |
СтатусARCHIVED |
ЗначениеОбращение закрыто без резолюции — дубликат или вне области |
СтатусWITHDRAWN |
ЗначениеОбращение отозвано автором |
Примеры
curl — личный ключ
curl -X PATCH https://vibecode.bitrix24.tech/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666 \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "RESOLVED",
"resolution": "Исправлено в релизе 2026-04-19. Пустой filter теперь возвращает 200 с пустым массивом."
}'
curl — OAuth-приложение
curl -X PATCH https://vibecode.bitrix24.tech/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666 \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "RESOLVED",
"resolution": "Исправлено в релизе 2026-04-19. Пустой filter теперь возвращает 200 с пустым массивом."
}'
JavaScript — личный ключ
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666',
{
method: 'PATCH',
headers: { 'X-Api-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({
status: 'RESOLVED',
resolution: 'Исправлено в релизе 2026-04-19. Пустой filter теперь возвращает 200 с пустым массивом.',
}),
},
)
const { data } = await res.json()
JavaScript — OAuth-приложение
const res = await fetch(
'https://vibecode.bitrix24.tech/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666',
{
method: 'PATCH',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 'RESOLVED',
resolution: 'Исправлено в релизе 2026-04-19. Пустой filter теперь возвращает 200 с пустым массивом.',
}),
},
)
const { data } = await res.json()
Отзыв обращения
Автор обращения может отозвать его обычным ключом, которым создал — телом строго { "status": "WITHDRAWN" }. Отзыв доступен, пока обращение не закрыто.
curl -X PATCH https://vibecode.bitrix24.tech/v1/feedback/a1b2c3d4-1111-2222-3333-444455556666 \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "status": "WITHDRAWN" }'
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
Полеsuccess |
Типboolean | ОписаниеВсегда true при успехе |
Полеdata.id |
Типstring | ОписаниеUUID обращения |
Полеdata.category |
Типstring | ОписаниеКатегория |
Полеdata.title |
Типstring | ОписаниеЗаголовок |
Полеdata.status |
Типstring | ОписаниеОбновлённый статус |
Полеdata.resolution |
Типstring · null | ОписаниеТекущая резолюция |
Полеdata.resolvedAt |
Типstring · null | ОписаниеДата закрытия. Проставляется при переходе в RESOLVED или WITHDRAWN |
Пример ответа
{
"success": true,
"data": {
"id": "a1b2c3d4-1111-2222-3333-444455556666",
"category": "BUG",
"title": "POST /v1/deals/search возвращает 500 при пустом filter",
"status": "RESOLVED",
"resolution": "Исправлено в релизе 2026-04-19. Пустой filter теперь возвращает 200 с пустым массивом.",
"resolvedAt": "2026-04-19T12:00:00.000Z"
}
}
Пример ответа при ошибке
403 — обновление без скоупа vibe:feedback:
{
"success": false,
"error": {
"code": "FEEDBACK_SCOPE_REQUIRED",
"message": "Requires management key or vibe:feedback scope to update feedback"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| HTTP400 | КодVALIDATION_ERROR |
Описаниеresolution не строка и не null |
| HTTP403 | КодFEEDBACK_SCOPE_REQUIRED |
ОписаниеОбновление статуса или резолюции без скоупа vibe:feedback |
| HTTP403 | КодWRITE_BLOCKED_READONLY_KEY |
ОписаниеКлюч только для чтения — см. права доступа |
| HTTP404 | КодNOT_FOUND |
ОписаниеОбращение не существует или недоступно ключу |
| HTTP409 | КодFEEDBACK_CLOSED |
ОписаниеАвтор пытается отозвать уже закрытое обращение (RESOLVED, ARCHIVED или WITHDRAWN) |
| HTTP401 | КодMISSING_API_KEY |
ОписаниеНе передан заголовок X-Api-Key |
Полный список общих ошибок API — Ошибки.
Известные особенности
Перевод в RESOLVED уведомляет автора. При закрытии проставляются resolvedAt и resolvedBy, а автору уходит письмо с текстом резолюции, если в профиле указана почта. Переводите в RESOLVED только после того, как исправление доступно — иначе автор получит письмо «исправлено» раньше самого исправления.
Возврат в активный статус обнуляет отметку о закрытии, но не текст резолюции. Переход из любого закрытого статуса — RESOLVED, WITHDRAWN или ARCHIVED — в один из активных (NEW, REVIEWING, AWAITING_USER, NEEDS_REVIEW) обнуляет resolvedAt и resolvedBy. Поле resolution не меняется: если вы его не передали, прежний текст остаётся. У обращения, возвращённого из ARCHIVED, сохраняется и причина архивации.
Обратное направление правило не затрагивает: переход в ARCHIVED отметку о закрытии сохраняет — архивация хранит историю решения. Переход между активными статусами её тоже не трогает.
Комментарий, переоткрывающий обращение, ведёт себя так же. Добавление комментария с активным статусом обнуляет resolvedAt и resolvedBy и не трогает resolution — ровно как обновление. Разница в другом: комментарий ещё и попадает в ленту обращения, а resolution перезаписывает только тогда, когда сам закрывает обращение.
Регистр status не важен, неизвестное значение игнорируется. resolved и RESOLVED равнозначны. Значение вне списка статусов не меняет статус и не вызывает ошибку: ответ 200 с прежним статусом.
Терминальность зависит от действия. Для автора обычным ключом WITHDRAWN и ARCHIVED — терминальные состояния: отозвать или прокомментировать такое обращение нельзя. RESOLVED терминален только для отзыва — комментарий автора возвращает решённое обращение в работу. Ключ со скоупом vibe:feedback может сменить статус любого закрытого обращения.