Для разработчиков

Редактирование черновика

PUT/drafts/{id}

Меняет свой черновик: текст, вложения, расписание и сообщение, ответом на которое он уйдёт (parent_message_id). Перезаписываются только переданные поля, поэтому дописать текст, не трогая вложения, можно одним content.

Обычный черновик превращается в отложенное сообщение, если передать schedule. Обратный переход запрещён: schedule: null у отложенного отвечает 422 с кодом draft_type_change_forbidden. Чтобы отменить отправку, черновик убирают методом DELETEУдаление черновика.

Править можно, только пока в чат разрешено писать. Если доступ к чату потерян, редактирование ответит 403, а удаление всё равно сработает.

Чат черновика этим методом не меняется, entity_type и entity_id он не принимает. Чтобы перенести черновик в другой чат, создайте новый и удалите прежний.

Параметры пути

id
integer, (int32)
*
Идентификатор черновика
Пример:4821

Тело запроса

application/json
draft
object
*
Собранный объект изменяемых параметров черновика
content
string
Текст черновика
Пример:Отчёт за неделю: продажи выросли на 10%
parent_message_id
nullableinteger, (int32)
Идентификатор сообщения, ответом на которое уйдёт черновик. null снимает ответ.
Пример:196093
files[]
array of objects
Прикрепляемые файлы, не больше десяти. Переданный массив заменяет прежний состав: пустой снимает все вложения, а чтобы сохранить уже прикреплённый файл, передайте его с id. Без этого поля вложения остаются как были.
Количество:
<= 10 элементов
id
integer, (int32)
Идентификатор уже прикреплённого файла. Передаётся при редактировании, чтобы сохранить вложение как есть. У нового файла не указывается.
Пример:3560
key
string
*
Путь к файлу, полученный в методе POSTЗагрузка файла
Пример:attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png
Длина:
<= 1000 символов
name
string
*
Название файла, которое вы хотите отображать пользователю
Пример:logo.png
Длина:
<= 255 символов
file_type
string
Тип файла
Возможные значения
Пример:image
size
integer, (int64)
Размер файла в байтах, отображаемый пользователю
Пример:12345
width
integer, (int32)
Ширина изображения в пикселях
Пример:800
height
integer, (int32)
Высота изображения в пикселях
Пример:600
duration_ms
integer, (int32)
Длительность в миллисекундах. Обязательна для голосового сообщения (file_typevoice).
Пример:5400
waveform
string
Форма волны для визуализации. Обязательна для голосового сообщения (file_typevoice).
Пример:4,8,12,20,16,10,6,3
Длина:
<= 256 символов
schedule
nullableobject
Расписание отправки. У обычного черновика оно превращает его в отложенное сообщение. У отложенного расписание можно изменить, но не снять: null в ответ даст 422 с кодом draft_type_change_forbidden.
start_date
string, (date-time)
*
Первая отправка (ISO-8601). Из неё берутся время суток, число месяца и день недели, по которым дальше строится повтор. Смещение вида +03:00 учитывается, время без смещения считается UTC.
Пример:2026-09-17T12:00:00.000Z
end_date
nullablestring, (date-time)
Дата, после которой повтор прекращается (ISO-8601). Без неё повтор идёт бессрочно.
Пример:2026-12-31T12:00:00.000Z
repetition
object
*
Правило повтора
interval
string
*
Периодичность
Возможные значения
Пример:weekly
days[]
array of integers, (int32)
Дни недели, по которым уходит сообщение: 0 — воскресенье, 6 — суббота. Учитывается только при периодичности weekly, а если не передать, берётся день недели из start_date.
Пример:[1,3]
Количество:
<= 7 элементов
nth_day
nullableinteger, (int32)
Какой по счёту день недели в месяце: от 1 до 4 — первый, второй, третий, четвёртый, 5 — последний. Учитывается только при периодичности по месяцам, а без него повтор идёт по числу месяца из start_date.
Пример:2
Диапазон:
1 — 5

Ответ

200OK
The request has succeeded.
data
object
*
Черновик или отложенное сообщение
id
integer, (int32)
*
Идентификатор черновика
Пример:4821
entity_type
nullablestring
*
Куда уйдёт сообщение: в беседу или канал, в тред либо в личную переписку с сотрудником
Возможные значения
Пример:discussion
entity_id
nullableinteger, (int32)
*
Идентификатор того, что названо в entity_type: беседы или канала, треда либо сотрудника
Пример:334
chat_id
nullableinteger, (int32)
*
Идентификатор чата, в котором лежит черновик. У черновика треда это чат самого треда.
Пример:334
content
string
*
Текст черновика. У черновика из одних вложений приходит пустая строка, а не null.
Пример:Отчёт за неделю: продажи выросли на 10%
parent_message_id
nullableinteger, (int32)
*
Идентификатор сообщения, ответом на которое уйдёт черновик. null, если это не ответ.
Пример:196093
files[]
array of objects
*
Прикреплённые файлы
id
integer, (int32)
*
Идентификатор файла
Пример:3560
key
string
*
Путь к файлу
Пример:attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png
name
string
*
Название файла с расширением
Пример:congrat.png
file_type
string
*
Тип файла
Возможные значения
Пример:image
url
string
*
Ссылка на скачивание файла. Обычно ведёт прямо в хранилище и действует до 7 дней, а оставшийся срок может быть меньше — если такая ссылка вернула 403, запросите сообщение заново и получите свежую. Если в пространстве включено шифрование или задан безопасный контур, ссылка ведёт на GETСкачивание файла: забирать такой файл нужно с заголовком Authorization, а токену нужен скоуп files:read.
Пример:https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8
width
nullableinteger, (int32)
Ширина изображения в пикселях. null для файлов, не являющихся изображением, а также если размер не был передан при загрузке.
Пример:1920
height
nullableinteger, (int32)
Высота изображения в пикселях. null для файлов, не являющихся изображением, а также если размер не был передан при загрузке.
Пример:1080
duration_ms
nullableinteger, (int32)
Длительность в миллисекундах у голосового, аудио- и видеофайла. null у остальных файлов и если длительность не была передана при загрузке.
Пример:5400
voice_content
nullableobject
*
Голосовое сообщение. null, если голосового вложения нет. Расшифровка в transcript у черновика всегда null — она запускается после отправки.
duration_ms
integer, (int32)
*
Длительность голосового сообщения в миллисекундах
Пример:5400
waveform
string
*
Форма волны (амплитуды) для визуализации голосового сообщения
Пример:4,8,12,20,16,10,6,3
transcript
nullablestring
*
Расшифровка голосового сообщения в текст. null, пока расшифровка не готова или недоступна.
Пример:Привет, посмотри пожалуйста последний отчёт
schedule
nullableobject
*
Расписание отправки. null у обычного черновика.
start_date
string, (date-time)
*
Первая отправка (ISO-8601). Из неё берутся время суток, число месяца и день недели, по которым дальше строится повтор.
Пример:2026-09-17T12:00:00.000Z
end_date
nullablestring, (date-time)
*
Дата, после которой повтор прекращается (ISO-8601). null, если конец не задан.
Пример:2026-12-31T12:00:00.000Z
repetition
object
*
Правило повтора
interval
string
*
Периодичность
Возможные значения
Пример:weekly
days[]
array of integers, (int32)
Дни недели, по которым уходит сообщение: 0 — воскресенье, 6 — суббота. Приходит только при периодичности weekly.
Пример:[1,3]
nth_day
nullableinteger, (int32)
Какой по счёту день недели в месяце: от 1 до 4 — первый, второй, третий, четвёртый, 5 — последний. Приходит только при периодичности по месяцам, а null в ней означает повтор по числу месяца из start_date.
Пример:2
next_send_at
nullablestring, (date-time)
*
Ближайшая отправка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. null у обычного черновика.
Пример:2026-09-17T12:00:00.000Z
created_at
string, (date-time)
*
Дата и время создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
Пример:2026-09-16T10:00:00.000Z
updated_at
string, (date-time)
*
Дата и время последнего изменения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
Пример:2026-09-16T10:00:00.000Z
Редактирование черновика
pachca drafts update 4821 \  --content='Отчёт за неделю: продажи выросли на 10%' \  --parent-message-id=196093 \  --files='[{"id":3560,"key":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png","name":"logo.png","file_type":"image","size":12345,"width":800,"height":600,"duration_ms":5400,"waveform":"4,8,12,20,16,10,6,3"}]' \  --schedule='{"start_date":"2026-09-17T12:00:00.000Z","end_date":"2026-12-31T12:00:00.000Z","repetition":{"interval":"weekly","days":[1,3],"nth_day":2}}' \  --json \  --token YOUR_ACCESS_TOKEN
Ответ 200
{  "data": {    "id": 4821,    "entity_type": "discussion",    "entity_id": 334,    "chat_id": 334,    "content": "Отчёт за неделю: продажи выросли на 10%",    "parent_message_id": 196093,    "files": [      {        "id": 3560,        "key": "attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png",        "name": "congrat.png",        "file_type": "image",        "url": "https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8",        "width": 1920,        "height": 1080,        "duration_ms": 5400      }    ],    "voice_content": {      "duration_ms": 5400,      "waveform": "4,8,12,20,16,10,6,3",      "transcript": "Привет, посмотри пожалуйста последний отчёт"    },    "schedule": {      "start_date": "2026-09-17T12:00:00.000Z",      "end_date": "2026-12-31T12:00:00.000Z",      "repetition": {        "interval": "weekly",        "days": [          1,          3        ],        "nth_day": 2      }    },    "next_send_at": "2026-09-17T12:00:00.000Z",    "created_at": "2026-09-16T10:00:00.000Z",    "updated_at": "2026-09-16T10:00:00.000Z"  }}