Для AI-агентов: markdown этой страницы — /docs-content/entities/activities/todos/update.md индекс документации — /llms.txt

Изменить to-do

PATCH /v1/activity-todos/:id

Меняет срок, текст, ответственного, напоминания или родителя у дела типа «To-do». Передавайте только изменяемые поля, плоско в корне JSON.

Параметры

Параметр Тип Обяз. Описание
Параметрid (path) Типnumber Обяз.да ОписаниеID to-do. Список: GET /v1/activities с фильтром providerId=CRM_TODO

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

Тело не может быть пустым: нужно хотя бы одно поле.

Поле Тип Обяз. Описание
Полеdeadline Типstring Обяз.нет ОписаниеНовый срок в формате ISO 8601, например 2026-11-03T15:00:00+03:00
Полеtitle Типstring Обяз.нет ОписаниеНовый заголовок. В ответе приходит в поле subject
Полеdescription Типstring Обяз.нет ОписаниеНовое описание
ПолеresponsibleId Типnumber Обяз.нет ОписаниеID нового ответственного. Список: GET /v1/users
ПолеparentActivityId Типnumber Обяз.нет ОписаниеID дела, к которому привязывается to-do. Родитель должен относиться к тому же объекту CRM. Список дел объекта: GET /v1/activities с фильтром по ownerTypeId и ownerId
ПолеpingOffsets Типnumber[] Обяз.нет ОписаниеНапоминания: целые числа минут до срока, не меньше 0. Заменяют прежний набор целиком

Объект CRM дела не меняется: ownerTypeId и ownerId в теле отклоняются с 400 INVALID_PARAMS, как и любое другое неизвестное поле. colorId из палитры отклоняется с 422, вне палитры — с 400, см. «Ошибки».

Примеры

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/activity-todos/8379" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Проверить договор и счёт",
    "pingOffsets": [0, 30]
  }'

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/activity-todos/8379" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Проверить договор и счёт",
    "pingOffsets": [0, 30]
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos/8379', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Проверить договор и счёт',
    pingOffsets: [0, 30],
  }),
})

const { data } = await res.json()
console.log(data.subject)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/activity-todos/8379', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    title: 'Проверить договор и счёт',
    pingOffsets: [0, 30],
  }),
})

const { data } = await res.json()

Поля ответа

Ответ — дело, прочитанное после изменения. Форма та же, что у GET /v1/activities/:id.

Поле Тип Описание
Полеsuccess Типboolean Описаниеtrue при успехе
Полеdata Типobject ОписаниеИзменённое дело, все поля — Поля дела
Полеdata.id Типnumber ОписаниеID дела
Полеdata.subject Типstring ОписаниеЗаголовок из поля title
Полеdata.deadline Типstring ОписаниеСрок дела в UTC
Полеdata.associatedEntityId Типnumber ОписаниеID родительского дела или 0 без родителя
Полеdata.updatedAt Типstring ОписаниеВремя последнего изменения в UTC

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

Показаны основные поля. Полный список: Поля дела.

JSON
{
  "success": true,
  "data": {
    "id": 8379,
    "ownerId": 8845,
    "ownerTypeId": 2,
    "providerId": "CRM_TODO",
    "associatedEntityId": 0,
    "subject": "Проверить договор и счёт",
    "updatedAt": "2026-10-15T10:06:02.000Z",
    "deadline": "2026-11-03T12:00:00.000Z",
    "completed": false,
    "status": 1,
    "responsibleId": 1317,
    "description": "Позвонить клиенту"
  }
}

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

422 — to-do уже завершено:

JSON
{
  "success": false,
  "error": {
    "code": "ACTIVITY_TODO_COMPLETED",
    "message": "The to-do is completed and cannot be updated"
  }
}

Ошибки

HTTP Код Описание
HTTP400 КодINVALID_PARAMS Описаниеid не положительное целое число
HTTP400 КодINVALID_PARAMS ОписаниеНарушена валидация тела: пустое тело, responsibleId или parentActivityId не положительное целое число, title или description не строка, срок не в формате ISO 8601, pingOffsets не массив неотрицательных целых чисел, неизвестное поле, colorId вне палитры
HTTP400 КодINVALID_PARAMS ОписаниеРодительское дело из parentActivityId относится к другому объекту CRM
HTTP400 КодMISSING_REQUIRED_FIELDS ОписаниеТело запроса не JSON-объект
HTTP404 КодENTITY_NOT_FOUND ОписаниеДело с таким id не to-do: у него другой провайдер, например звонок или открытая линия
HTTP404 КодENTITY_NOT_FOUND ОписаниеДела с таким id или дела из parentActivityId не существует. To-do не меняется
HTTP422 КодACTIVITY_TODO_COMPLETED ОписаниеTo-do завершено и не меняется
HTTP422 КодUNSUPPORTED_ACTIVITY_BLOCKS ОписаниеВ теле передан colorId из палитры. Цвет задаётся только при создании
HTTP422 КодACTIVITY_UPDATE_NOT_APPLIED ОписаниеПосле записи прочитанное дело не совпало с запросом, или поля, не переданные в запросе, могли не сохраниться. Изменение могло примениться частично: прочитайте дело через GET /v1/activities/:id и сравните с ожидаемым, прежде чем повторять PATCH
HTTP502 КодBITRIX_ERROR ОписаниеНе удалось прочитать данные дела до или после записи. Изменение могло примениться: прочитайте дело, прежде чем повторять PATCH
HTTP403 КодWRITE_BLOCKED_READONLY_KEY ОписаниеКлюч только для чтения
HTTP403 КодSCOPE_DENIED ОписаниеУ ключа нет скоупа crm
HTTP401 КодTOKEN_MISSING ОписаниеУ ключа нет подключения к Битрикс24

Полный список общих ошибок API — Ошибки.

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

Непереданные поля сохраняются. Если в теле только одно из полей deadline, description или responsibleId, меняется только оно. При любом другом наборе полей сервис читает текущее дело и сам дописывает к запросу заголовок, описание, срок и напоминания, которых нет в теле.

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