25.03.2026 15:10

AddFile

[POST] .../v1/chatmessage/addfile

Загружает новый файл в системную папку чата для последующего использования в сообщении.

Метод поддерживает два формата запроса:

  • application/json для обратной совместимости, когда файл передается в data как Base64.
  • multipart/form-data для потоковой загрузки бинарного файла без Base64 в клиентском запросе.

Входные параметры

Для application/json:

Название Тип данных Обязательность Описание
chat_id String Обязательный UUID чата
name String Обязательный Отображаемое имя файла
extension String Обязательный Расширение файла без точки
data String Обязательный Содержимое файла в Base64, допускается формат data:*;base64,...

Для multipart/form-data:

Название Тип данных Обязательность Описание
chat_id String Обязательный UUID чата
name String Необязательный Имя файла. Если не передано, сервер возьмет его из имени загружаемого файла
extension String Необязательный Расширение без точки. Если не передано, сервер возьмет его из имени загружаемого файла
file File Обязательный Бинарный поток файла

Ограничения и проверки

  • chat_id обязателен всегда.
  • Для JSON-запроса обязательны name, extension, data.
  • Для multipart/form-data обязателен file; name и extension можно не передавать, если они есть в имени файла.
  • Метод принимает только один файл за запрос.
  • name не длиннее 200 символов.
  • extension не длиннее 10 символов.
  • Требуется право file_add (655) и доступ к чату.
  • Для обычных чатов проверяется право chat_message_add (685).
  • Для чатов, связанных с Lead/Deal/Ticket/Task, право загрузки наследуется от сущности: требуется Edit у связанной сущности.
  • Для закрытого чата (closed = true) загрузка файла отклоняется с ошибкой 1220.
  • Без права chat_manage_all (688) запись файла доступна только участнику чата.
  • При праве chat_manage_all (688) участником чата быть не обязательно (только для обычных чатов).
  • Поля folder_id и access_level извне не принимаются и задаются сервером.
  • Файл всегда сохраняется в системную папку текущего чата с access_level = system.

Пример запроса

{
  "chat_id": "6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef",
  "name": "hello.txt",
  "extension": "txt",
  "data": "SGVsbG8gQ2hhdCE="
}

Пример multipart-запроса

curl -X POST "https://example.com/v1/chatmessage/addfile" \
  -H "Authorization: Bearer <token>" \
  -F "chat_id=6f6fdb2f-7d0b-4c34-b6fd-1fbcf40d37ef" \
  -F "file=@hello.txt"

Выходные параметры

Название Тип данных Описание
result.file_id Int64 Идентификатор созданного файла в CommonFile

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

{
  "ok": true,
  "result": {
    "file_id": 12051
  }
}