Skip to content
Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя

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

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

Содержание

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

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

  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/
Запрос
Пример запроса
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; boundary=boundary'
Ответ
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/
Запрос
Пример запроса
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":"Документ не найден"
}

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

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

Экспорт документа для подписи
post /gw/atidocs/api/2.0/documents/{doc_id}/export/
Запрос
Пример запроса
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":"Документ не найден"
}

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

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

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

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

Подписание документа
put /v1.0/atidocs/documents/{doc_id}/sign/
Запрос
Модель
{...}
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; boundary=boundary' \
--data-raw '{"sign":"string"}'
Ответ
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/
Запрос
Пример запроса
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; boundary=boundary'
Ответ
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/
Запрос
Пример запроса
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}/
Запрос
Пример запроса
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/
Запрос
Пример запроса
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/
Запрос
Пример запроса
curl 'https://api.ati.su/gw/atidocs/api/2.0/documents/{doc_id}/decline/' \
-X 'PUT' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: multipart/form-data; boundary=boundary'
Ответ
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}/
Запрос
Пример запроса
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/
Запрос
Пример запроса
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-архив
Модель
null
Пример
null