Для AI-агентов: markdown этой страницы — /docs-content/feedback/update.md индекс документации — /llms.txt
Обновить обращение
PATCH /v1/feedback/:id
Меняет статус и резолюцию обращения. Полное обновление доступно ключу со скоупом vibe:feedback. Автор обычным ключом может только отозвать своё обращение — телом { "status": "WITHDRAWN" }.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id (path) |
string | да | UUID обращения |
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
status |
string | нет | Новый статус: NEW, REVIEWING, AWAITING_USER, NEEDS_REVIEW, RESOLVED, ARCHIVED, WITHDRAWN |
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 и обнуляется при возврате в активный статус из любого закрытого — RESOLVED, WITHDRAWN или ARCHIVED |
Пример ответа
{
"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 | Код | Описание |
|---|---|---|
| 403 | FEEDBACK_SCOPE_REQUIRED |
Обновление статуса или резолюции без скоупа vibe:feedback |
| 404 | NOT_FOUND |
Обращение не существует или недоступно ключу |
| 409 | FEEDBACK_CLOSED |
Автор пытается отозвать уже закрытое обращение (RESOLVED, ARCHIVED или WITHDRAWN) |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
Полный список общих ошибок API — Ошибки.
Известные особенности
Перевод в RESOLVED уведомляет автора. При закрытии проставляются resolvedAt и resolvedBy, а автору уходит письмо с текстом резолюции, если в профиле указана почта. Переводите в RESOLVED только после того, как исправление доступно — иначе автор получит письмо «исправлено» раньше самого исправления.
Возврат в активный статус обнуляет отметку о закрытии, но не текст резолюции. Переход из любого закрытого статуса — RESOLVED, WITHDRAWN или ARCHIVED — в один из активных (NEW, REVIEWING, AWAITING_USER, NEEDS_REVIEW) обнуляет resolvedAt и resolvedBy. Поле resolution не меняется: если вы его не передали, прежний текст остаётся — у обращения, возвращённого из ARCHIVED, сохраняется и причина архивации. Чтобы заменить текст, передайте resolution в том же запросе; чтобы очистить поле — передайте "resolution": null.
Обратное направление правило не затрагивает: переход в ARCHIVED отметку о закрытии сохраняет — архивация хранит историю решения. Переход между активными статусами её тоже не трогает.
Комментарий, переоткрывающий обращение, ведёт себя так же. Добавление комментария с активным статусом обнуляет resolvedAt и resolvedBy и не трогает resolution — ровно как обновление. Разница в другом: комментарий ещё и попадает в ленту обращения, а resolution перезаписывает только тогда, когда сам закрывает обращение.
Терминальность зависит от действия. Для автора обычным ключом WITHDRAWN и ARCHIVED — терминальные состояния: отозвать или прокомментировать такое обращение нельзя. RESOLVED терминален только для отзыва — комментарий автора возвращает решённое обращение в работу. Ключ со скоупом vibe:feedback может сменить статус любого закрытого обращения.