Skip to content
Для ИИ NEW Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
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 — ordered list of key documentation URLs for the developers section.

Неформализованные документы

Данные методы работают только с определенными типами документов.

Содержание

Последовательность вызовов для отправки документа с подписанием

В данном случае действия выполняются от лица отправителя

  1. Создание документа
  2. Прикрепление вложения к документу
  3. Отправка документа

Если вы хотите отправить документ с подписанием, то после нужно выполнить дополнительные действия:

  1. Экспорт документа для подписания
  2. Формирование подписи (выполняется на вашей стороне)
  3. Подписание документа

Создание и редактирование документа

Позволяет создать черновик документа или обновить существующий документ. В методе передаётся общая метаинформация о документе. Список доступных doctype указан в разделе.

Создание и/или сохранение документа
post /v1.0/atidocs/documents/
Параметры
Параметров нет
Запрос
Модель
{...}

Данные для создания документа

date: date

Дата документа

doc_recipient_contact: string

Код пользователя в ATI.SU в формате <код фирмы>.<id контакта>

doc_request: boolean

Флаг запроса решения для документа. Если это поле не передается, то для новых документов запрос решения остается без изменений. Если это передается, то в документе для флага будет использовано переданное значение.

doc_sender_contact: string

Код пользователя в ATI.SU в формате <код фирмы>.<id контакта>

doctype: enum
[акт, доверенность, договор, заказ, заказ (табличный вид), заявка (к договору), заявка к договору (табличный вид), поручение экспедитору, счет, другой]

Тип документа

id: string

Идентификатор документа

number: string

Номер документа

xmlBody: string

Тело документа в формате xml, в виде строки

}
Пример запроса
curl 'https://api.ati.su/v1.0/atidocs/documents/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"date":"1970-01-01","doc_recipient_contact":"string","doc_request":false,"doc_sender_contact":"string","doctype":"акт","id":"string","number":"string","xmlBody":"string"}'
Ответ
200 Результат запроса
Модель
{...}

Результат сохранения документа

ok: enum
[true]
result: string

Идентификатор документа

}
Пример
{...}
"ok":true,
"result":"12345676554321"
}

Прикрепление вложения к документу

Позволяет прикрепить вложение к созданному документу. Фактически это тело документа.

Сохранить вложение
post /gw/atidocs/api/2.0/documents/{doc_id}/attachments/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Модель
{...}
file_upload: binary
}
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/attachments/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data' \
-F 'file_upload=@{file_upload}'
Ответ
200 Данные получены
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
404 Документ не найден
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"not_found",
"reason":"Объект не найден"
}

Отправка документа

Предполагается, что документ уже сохранен и имеет приложенное вложение.

Отправить документ
put /gw/atidocs/api/2.0/documents/{doc_id}/send/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
receiver обязательный string query
Код пользователя в ATI.SU в формате <код фирмы>.<id контакта> Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/send/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Документ отправлен
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
400 Не найден аккаунт получателя
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"document_no_receiver",
"reason":"Не найден аккаунт получателя"
}
404 Объект не найден
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"not_found",
"reason":"Документ не найден"
}

Экспорт документа для подписания

Получает тело документа в виде строки, которая подходит для подписания.

Экспорт документа для подписи Аттачмент документа преобразуется в base64 строку для того, чтобы подписать документ.
post /gw/atidocs/api/2.0/documents/{doc_id}/export/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/export/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Документ экспортирован
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
404 Документ не найден
Модель
{...}
error: boolean
reason: string
}
Пример
{...}
"error":true,
"reason":"Документ не найден"
}

Подписание документа

При помощи криптографических инструментов подписывает строку, которую вернул метод экспорта. При подписании сервер выполняет проверку подписи: сертификат клиента должен быть выдан доверенным УЦ.

Поле «sign» может быть представлено в одном из двух форматов:

  • base64-строка, которая представляет собой подпись документа
  • бинарный файл, который содержит подпись документа

Если документ требовал решения, то документ автоматически одобряется.

Более подробная информация про процесс подписания

Подписание документа Для подписания документа следует использовать строку, которую вернул метод экспорта документа. При подписании сервер выполняет проверку подписи: сертификат клиента должен быть выдан доверенным УЦ. Если документ требовал решения, то документ автоматически одобряется.
put /v1.0/atidocs/documents/{doc_id}/sign/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
Идентификатор документа Пример: string
Запрос
Модель
{...}
sign: string

Подпись документа в виде base64-строки

}
Пример запроса
curl 'https://api.ati.su/v1.0/atidocs/documents/{doc_id}/sign/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data' \
-F 'sign=@{sign}'
Ответ
200 Результат запроса
Модель
{...}

Результат сохранения документа

ok: enum
[true]
result: string

Идентификатор документа

}
Пример
{...}
"ok":true,
"result":"12345676554321"
}
400 Ошибка при подписании документа.
Модель
{...}

Сообщение об ошибке

error*: string (nullable)

Код ошибки

reason*: string

Описание ошибки и возможная причина

}
Пример
{...}
"error":"bad_request",
"reason":"Ошибка в запросе"
}

Добавление комментария к документу

Позволяет загрузить как текст, так и файл. Обязательное условие: текст/файл должен пересылаться как «multipart/form-data». При загрузке файлов применяются общие ограничения по типу поддерживаемых файлов. Размер файла не должен превышать 10 Мб.

Оставить комментарий к документу
post /gw/atidocs/api/2.0/documents/{doc_id}/comments/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Модель
{...}
comment-text: string
}
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/comments/' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data' \
-F 'comment-text={comment-text}'
Ответ
200 Список комментариев
Модель
{...}
timestamp: string
text: string

Текст сообщения

has_attachments: boolean
}
Пример
{...}
"timestamp":"2020-02-26T15:24:00.000Z",
"text":"string",
"has_attachments":false,
"attachment":{...},
"id":"95a971edb0994372aa6b76a9e1be8bdb",
"size":429939,
"name":"Книга новичка АТИ.pdf",
"mimetype":"application/pdf"
},
"user":{...}
"id":"765044.0",
"fn":"wefwef_1!"
}
}
400 Ошибка запроса
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"bad_request",
"reason":"Нельзя отправить пустой комментарий"
}
404 Объект не найден
Модель
{...}
error: string

not_found

reason: string

Документ не найден

}
Пример
{...}
"error":"string",
"reason":"string"
}

Отзыв документа

Метод доступен отправителю. После отзыва документ «пропадает» у получателя и переносится в папку «Черновики». Отозвать можно только отправленный документ.

Отозвать отправленный документ и сделать его черновиком
put /gw/atidocs/api/2.0/documents/{doc_id}/revoke/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/revoke/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Документ отозван
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
400 Не указана причина отзыва документа
Модель
{...}
error: boolean
reason: string
}
Пример
{...}
"error":true,
"reason":"Не указана причина отзыва документа"
}
404 Документ не найден
Модель
{...}
error: boolean
reason: string
}
Пример
{...}
"error":true,
"reason":"Документ не найден"
}

Получение документа

Позволяет получить документ по его идентификатору doc_id.

Получение документа Данные о документе по его идентификатору
get /gw/atidocs/api/2.0/documents/{doc_id}/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
Идентификатор документа Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Сведения о документе
Модель
{...}
ok: enum
[true]
}
Пример
{...}
"ok":true,
"result":{...}
"doctype":"Тип документа",
"sender":{...},
"ati_id":"0",
"name":"Имя",
"user":{...},
"ati_id":"0",
"name":"Имя пользователя",
"department_id":"0"
},
"status":"Статус документа",
"inn":""
},
"receiver":{...},
"ati_id":"0",
"name":"Имя",
"user":{...},
"ati_id":"0",
"name":"Имя пользователя",
"department_id":"0"
},
"status":"Статус документа"
},
"file":{...},
"mimetype":"application/vnd.ati-docs.xml",
"name":"000.xml",
"xml_template":"order",
"timestamp":"2022-06-30T12:44:30Z",
"size":9659,
"id":"00000"
},
"id":"00000",
"date":"2022-06-30",
"number":"1",
"updated":"2022-06-30T12:44:28Z",
"fix_price":{...},
"id":"00000",
"link":"",
"original_owner":"0",
"contact_1":"0",
"contact_2":"",
"document_creator":"0"
},
"flags":[...]
"is_sent",
"is_waiting",
"can_be_deleted",
"can_be_archived",
"can_be_signed",
"can_be_declined",
"can_be_revoked",
"can_be_templated"
]
}
}
404 Документ не найден
Модель
{...}

Документ не найден

error: enum
[true]
reason: enum
[Документ не найден]
}
Пример
{...}
"error":false,
"reason":"Документ не найден"
}

Одобрить документ

Метод доступен получателю. Одобрить можно только документ, ожидающий решения.

Одобрить документ
put /gw/atidocs/api/2.0/documents/{doc_id}/approve/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/approve/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Документ одобрен
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
400 Документ не может быть одобрен
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"document_can_not_be_approved",
"reason":"Документ не может быть одобрен"
}
404 Документ не найден
Модель
{...}
error: string

not_found

reason: string

Объект не найден

}
Пример
{...}
"error":"string",
"reason":"string"
}

Отклонить документ

Метод доступен получателю. Отклонить можно только документ, ожидающий решения.

Отклонить документ
put /gw/atidocs/api/2.0/documents/{doc_id}/decline/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
Запрос
Модель
{...}
reason: string

Текст комментария

}
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/decline/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"reason":"string"}'
Ответ
200 Документ отклонен
Модель
{...}
ok: enum
[true]
result: string

id документа

}
Пример
{...}
"ok":false,
"result":"string"
}
400 Документ не может быть одобрен
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"document_can_not_be_changed",
"reason":"Документ невозможно изменить, так как вторая сторона приняла по нему решение. Обновите страницу, чтобы продолжить работу"
}
404 Документ не найден
Модель
{...}
error: string

not_found

reason: string

Объект не найден

}
Пример
{...}
"error":"string",
"reason":"string"
}

Скачать вложение к документу (тело документа)

При скачивании в заголовке отдается mimetype документа, если его удалось определить.

Получить вложение по id документа
get /gw/atidocs/api/2.0/documents/{doc_id}/attachments/{attachment_id}/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
id документа Пример: string
attachment_id обязательный string path
id вложения Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/attachments/{attachment_id}/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Данные получены
Модель
binary
Пример
"binary"
404 Объект не найден
Модель
{...}
error: string
reason: string
}
Пример
{...}
"error":"not_found",
"reason":"Документ не найден"
}

Скачать zip-архив документа с вложениями и подписями

Позволяет скачать zip-архив документа, только если у документа есть подпись хотя бы с одной стороны.

Скачать zip-архив документа с вложениями и подписями
get /v1.0/atidocs/documents/{doc_id}/zip_archive/
Параметры
Параметр Тип Расположение Описание
doc_id обязательный string path
Идентификатор документа Пример: string
Запрос
Пример запроса
curl 'https://api.ati.su/v1.0/atidocs/documents/{doc_id}/zip_archive/' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 ZIP-архив
Успешный ответ