Skip to content
Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
For LLMs and AI agents: canonical Markdown source of this documentation page (plain-text .md — fetch this URL to use the page content in tools and RAG). For LLMs and AI agents: developers documentation index in llms.txt format: https://<!--# echo var='base_url' -->/developers/llms.txt — ordered list of key documentation URLs for the developers section.

API для работы с файлами, логотипами и аватарками

В данном разделе вы можете найти методы для работы с файлами, логотипами и аватарками фирм и контактов

Максимальный разрешенный размер - 20 Мб

Поддерживаемые форматы: .png, .jpeg, .jpg, .jpe, .jif, .jfif, .rtf, .tif, .tiff, .bmp, .doc, .docx, .gif, .odt, .pdf, .xls, .xlsx, .csv, .heic, .txt

Для загрузки логотипов фирм и аватарок контактов: .png, .jpeg, .jpg, .jpe, .jif, .jfif.

Методы для работы с файлами

Добавление файлов

Метод загрузки файлов
post /v1/filer/
Запрос
Модель
{...}
file*: binary

Файл для загрузки.

access_type*: enum
[Public, Firm, Contact, Authorized]

Тип доступа к файлу.

  • Public - Доступ всем без ограничений
  • Firm - Доступ в рамках фирмы
  • Contact - Доступ в рамках контакта
  • Authorized - Доступ для авторизованных пользователей
business_type*: enum
[FirmDocument, Avatar, Logo, Load, Orders, CatalogsTrucks, CatalogsDrivers]

Бизнес-тип файла (аватар, лого и т.д.), влияет на access_type и ограничения.

  • FirmDocument
  • Avatar
  • Logo
  • Load
  • Orders
  • CatalogsTrucks
  • CatalogsDrivers
delete_on: date-time

Дата автоматического удаления.

with_watermark: boolean

Добавить водяной знак.

contact_id: int32

Идентификатор контакта.

file_key_2: string

Внешний ключ файла.

binding_tag: string

Тег привязки.

}
Пример запроса
curl 'https://api.ati.su/v1/filer/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@{file}' \
-F 'access_type={access_type}' \
-F 'business_type={business_type}' \
-F 'delete_on={delete_on}' \
-F 'with_watermark={with_watermark}' \
-F 'contact_id={contact_id}' \
-F 'access_list={access_list}' \
-F 'file_key_2={file_key_2}' \
-F 'binding_tag={binding_tag}'
Ответ
200 OK
Модель
{...}

Документ файла.

file_key: null,string

Уникальный ключ файла, генерируется сам. Ключ файла будет начинаться с его типа business_type.

file_key2: null,string

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

file_name: null,string

Имя файла.

content_type: null,string

MIME-тип содержимого.

access_type: enum
[Public, Firm, Contact, Authorized]

Тип доступа к файлу.

  • Public - Доступ всем без ограничений
  • Firm - Доступ в рамках фирмы
  • Contact - Доступ в рамках контакта
  • Authorized - Доступ для авторизованных пользователей
file_business_type: enum
[FirmDocument, Avatar, Logo, Load, Orders, CatalogsTrucks, CatalogsDrivers]

Бизнес-тип файла (аватар, лого и т.д.), влияет на access_type и ограничения.

  • FirmDocument
  • Avatar
  • Logo
  • Load
  • Orders
  • CatalogsTrucks
  • CatalogsDrivers
add_date: date-time

Дата и время добавления записи.

delete_on: date-time

Планируемая дата удаления (отложенное удаление).

firm_id: int32

Идентификатор фирмы-владельца.

contact_id: int32

Идентификатор контакта-владельца.

with_watermark: null,boolean

Признак необходимости водяного знака при отдаче.

binding_tag: null,string

Тег привязки (контекст использования файла).

}
Пример
{...}
"file_key":"firm_100500_logo",
"file_key2":"contact_42_avatar_copy",
"file_name":"logo.png",
"content_type":"image/png",
"access_type":"Public",
"file_business_type":"Logo",
"add_date":"2026-03-31T09:00:00Z",
"delete_on":"2026-12-31T00:00:00Z",
"firm_id":100500,
"contact_id":42,
"with_watermark":true,
"binding_tag":"order-999"
}
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}

Для некоторых business_type файлов можно указать только определенные access_type:

  • для Avatar/Logo можно указать только access_type = Public;
  • для FirmDocument, CatalogsTrucks/CatalogsDrivers, Orders и Load можно указать только access_type = Authorized.

Получение файлов

Получение файла по fileKey
get /v1/filer/{fileKey}
Запрос
Пример запроса
curl 'https://api.ati.su/v1/filer/{fileKey}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
byte
Пример
"c3RyaW5n"
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
Получение информации о файлах
post /v1/filer/info
Запрос
Модель
{...}
ati_id: null,string

Идентификатор пользователя ATI.

contact_id: int32

Идентификатор контакта для фильтрации файлов.

business_type: enum
[FirmDocument, Avatar, Logo, Load, Orders, CatalogsTrucks, CatalogsDrivers]

Бизнес-тип запрашиваемых файлов.

  • FirmDocument
  • Avatar
  • Logo
  • Load
  • Orders
  • CatalogsTrucks
  • CatalogsDrivers
keys: [string]

Список ключей файлов (основной набор).

keys2: [string]

Дополнительный список ключей файлов.

}
Пример запроса
curl 'https://api.ati.su/v1/filer/info' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"ati_id":"100500","contact_id":42,"business_type":"Avatar","keys":["firm_100500_logo","contact_42_avatar"],"keys2":["firm_100500_logo_thumb"]}'
Ответ
200 OK
Модель
[{...}]

Документ файла.

file_key: null,string

Уникальный ключ файла, генерируется сам. Ключ файла будет начинаться с его типа business_type.

file_key2: null,string

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

file_name: null,string

Имя файла.

content_type: null,string

MIME-тип содержимого.

access_type: enum
[Public, Firm, Contact, Authorized]

Тип доступа к файлу.

  • Public - Доступ всем без ограничений
  • Firm - Доступ в рамках фирмы
  • Contact - Доступ в рамках контакта
  • Authorized - Доступ для авторизованных пользователей
file_business_type: enum
[FirmDocument, Avatar, Logo, Load, Orders, CatalogsTrucks, CatalogsDrivers]

Бизнес-тип файла (аватар, лого и т.д.), влияет на access_type и ограничения.

  • FirmDocument
  • Avatar
  • Logo
  • Load
  • Orders
  • CatalogsTrucks
  • CatalogsDrivers
add_date: date-time

Дата и время добавления записи.

delete_on: date-time

Планируемая дата удаления (отложенное удаление).

firm_id: int32

Идентификатор фирмы-владельца.

contact_id: int32

Идентификатор контакта-владельца.

with_watermark: null,boolean

Признак необходимости водяного знака при отдаче.

binding_tag: null,string

Тег привязки (контекст использования файла).

}]
Пример
[...]
{...}
"file_key":"firm_100500_logo",
"file_key2":"contact_42_avatar_copy",
"file_name":"logo.png",
"content_type":"image/png",
"access_type":"Public",
"file_business_type":"Logo",
"add_date":"2026-03-31T09:00:00Z",
"delete_on":"2026-12-31T00:00:00Z",
"firm_id":100500,
"contact_id":42,
"with_watermark":true,
"binding_tag":"order-999"
}
]
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}

Метод возвращает массив информации о файлах этого типа у пользователя, без самих файлов.

Для получения информации о файлах нужно передавать в теле параметры (или):

  • “ati_id” и “business_type”;
  • “keys”/“keys2”.

Проверка прав на просмотр файла осуществляется через авторизационный хэдер. Чтобы получить информацию о том, кто создал файл, нужно передать в тело запроса параметр “ati_id”или “ati_id” и “contact_id”.

Получение аватарки контакта или логотипа фирмы
get /v1/filer/{businessType}/{atiId}/{contactId}
Запрос
Пример запроса
curl 'https://api.ati.su/v1/filer/{businessType}/{atiId}/{contactId}' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
byte
Пример
"c3RyaW5n"
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}
Получение дефолтной аватарки контакта или логотипа фирмы
get /v1/filer/{businessType}/default
Запрос
Пример запроса
curl 'https://api.ati.su/v1/filer/{businessType}/default' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
byte
Пример
"c3RyaW5n"
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}

Удаление файлов

Удаление файла по fileKey
delete /v1/filer/{fileKey}
Запрос
Пример запроса
curl 'https://api.ati.su/v1/filer/{fileKey}' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
null
Пример
null
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}

Файлы FirmDocument, CatalogsTrucks/CatalogsDrivers, Orders и Load можно удалять независимо от прав и расположения в подразделениях.

Удаление аватарки контакта или логотипа фирмы
delete /v1/filer/type/{businessType}
Запрос
Пример запроса
curl 'https://api.ati.su/v1/filer/type/{businessType}' \
-X 'DELETE' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 OK
Модель
null
Пример
null
400 Неверные входные данные.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"invalid_input_data",
"reason":"Неверные входные данные."
}
403 Отсутствует разрешение.
Модель
{...}

Стандартный ответ с описанием ошибки

error: null,string

Код ошибки

reason: null,string

Описание ошибки

}
Пример
{...}
"error":"forbidden",
"reason":"Отсутствует разрешение."
}

Права на удаление зависят от того, что именно удаляется:

  • Логотип фирмы: нужно быть в Головном подразделении и иметь право “Администрировать контакты и подразделения”.
  • Свой аватар: нужно иметь права “Редактировать и удалять свою контактную информацию” и “Администрировать контакты и подразделения”.
  • Чужой аватар: нужно быть в одном подразделении с контактом и иметь право “Администрировать контакты и подразделения”.