## Обновить пункт чек-листа

`PATCH /v1/tasks/:taskId/checklist/:itemId`

Частичное обновление пункта чек-листа — передавайте только изменяемые поля. Хотя бы одно поле обязательно.

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|---------|
| `taskId` (path) | integer | да | ID задачи |
| `itemId` (path) | integer | да | ID пункта чек-листа |

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

| Поле | Тип | Обяз. | Описание |
|------|-----|:-----:|---------|
| `title` | string | нет | Текст пункта |
| `sortIndex` | integer | нет | Индекс сортировки |
| `isComplete` | boolean / `Y`,`N` | нет | Статус выполнения |
| `isImportant` | boolean / `Y`,`N` | нет | Признак важности |
| `parentId` | integer | нет | ID родительского пункта |
| `members` | object | нет | Участники пункта: `{ "<userId>": { "type": "A" \| "U" } }`. **Полностью заменяет** текущий список — см. «Известные особенности» |

Хотя бы одно из перечисленных полей обязательно — пустое тело возвращает `400`.

## Примеры

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

```bash
curl -X PATCH "https://vibecode.bitrix24.tech/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Собрать и проверить документы", "isImportant": true }'
```

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

```bash
curl -X PATCH "https://vibecode.bitrix24.tech/v1/tasks/3943/checklist/213" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Собрать и проверить документы", "isImportant": true }'
```

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

```javascript
const res = await fetch("https://vibecode.bitrix24.tech/v1/tasks/3943/checklist/213", {
  method: "PATCH",
  headers: {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "Собрать и проверить документы", isImportant: true }),
});
const { data } = await res.json();
```

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

```javascript
const res = await fetch("https://vibecode.bitrix24.tech/v1/tasks/3943/checklist/213", {
  method: "PATCH",
  headers: {
    "X-Api-Key": "YOUR_APP_KEY",
    "Authorization": "Bearer USER_SESSION_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ title: "Собрать и проверить документы", isImportant: true }),
});
const { data } = await res.json();
```

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

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data.id` | number | ID обновлённого пункта |

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

```json
{ "success": true, "data": { "id": 213 } }
```

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

`400` — пустое тело запроса:

```json
{
  "success": false,
  "error": { "code": "INVALID_PARAMS", "message": "No updatable fields provided" }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | Пустое тело, `taskId`/`itemId` не положительное целое, неизвестный формат `members`, либо нарушен тип поля |
| 422 | `BITRIX_ERROR` | Пункт с указанным `itemId` не существует или недоступен ключу — Битрикс24 бросил исключение |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `task` |
| 403 | `WRITE_BLOCKED_READONLY_KEY` | Ключ в режиме «только чтение» — переключите на чтение+запись в [/keys](/keys) |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |

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

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

- **Несуществующий `taskId` даёт `200`.** Если задачи с таким идентификатором нет, ответ приходит успешный, с переданным `itemId`, но ничего не обновляется. Отказ `422` приходит только на несуществующий пункт внутри существующей задачи. Проверить задачу можно через [«Получить задачу»](../get.md).
- **`members` заменяется целиком.** При обновлении поля `members` Битрикс24 **полностью** перезаписывает список участников пункта. Чтобы сохранить текущих участников, передайте их вместе с новыми в том же запросе.

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

- [Получить пункт](./get.md)
- [Список пунктов](./list.md)
- [Отметить выполненным](./complete.md)
- [Задачи](/docs/entities/tasks)
