Постановка задачи на печать

Запрос: POST /print
HTTP-заголовки:
Authorization: Bearer access_token
Content-Type: application/json
Accept: text/plain

Тело запроса:

{
    "ClientRequestId": "string",    // клиентский идентификатор запроса
    "ContentType": "string",        // идентификатор типа содержимого, для которого нужно сгенерировать ПФ
    "PrintformTypes": [             // идентификаторы типов ПФ, которые нужно сгенерировать
        "string"
    ],
    "Files": [                      // исходные файлы для генерации ПФ
    ]
}

Описание запроса

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

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

В поле ContentType передается идентификатор типа содержимого, для которого нужно сгенерировать ПФ. Перечень типов можно получить, выполнив отдельный запрос. Тип можно не указывать. В этом случае API попробует определить тип самостоятельно на основе первого переданного файла в коллекции Files:

  • сначала тип определяется по расширению файла;

  • если у файла расширение .XML, то анализируется наличие и значение атрибута Файл/@ИдФайл.

В поле PrintformTypes задаются идентификаторы типов ПФ, которые должны быть сгенерированы. Перечень типов можно получить, выполнив отдельный запрос.

Исходные файлы для генерации печатной формы

Для генерации ПФ по документу требуется один или несколько файлов. Например, для генерации ПФ для принятого УПД требуется титул продавца и титул покупателя, т. е. два отдельных файла.

Коллекция исходных файлов для генерации печатной формы передается в поле Files. Структура элемента коллекции:

{
    "FileName": "string",                                           // имя файла
    "Content": "base64",                                            // данные файла в виде массива байт в Base64
    "Signatures": [                                                 // подписи под файлом
        {
            "Certificate": {                                        // сведения о сертификате подписанта
                "FirstName": "string",                              // имя владельца сертификата
                "Surname": "string",                                // фамилия владельца сертификата
                "LastName": "string",                               // отчество владельца сертификата
                "OrganizationName": "string",                       // наименование организации, в которой работает владелец сертификата
                "SerialNumber": "string",                           // серийный номер сертификата
                "ValidFrom": "YYYY-MM-DDThh:mm:ss.fffZ",            // дата и время, с которого действует сертификат
                "ValidTo": "YYYY-MM-DDThh:mm:ss.fffZ"               // дата и время, по которое действует сертификат
            },
            "SigningTime": "YYYY-MM-DDThh:mm:ss.fffZ",              // дата и время, когда подпись была сформирована
            "SignatureTimeStampTime": "YYYY-MM-DDThh:mm:ss.fffZ"    // дата и время, когда подпись была заверена TSP-сервером
        }
    ]
}

В поле FileName передается имя файла с расширением.

В поле Content передаются данные файла виде массива байт в Base64.

В поле Signatures передается коллекция подписей под файлом. Элементы коллекции будут использованы для генерации штампов с информацией о подписантах на печатной форме. Коллекция подписей может быть пустой, в этом случае штампы не генерируются. Каждый элемент коллекции содержит сведения о сертификате подписанта и дополнительные атрибуты CAdES-подписи:

  • дату и время, когда подпись была сформирована;

  • дату и время, когда подпись была заверена TSP-сервером.

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

Ответ на запрос

В случае успешного выполнения возвращается идентификатор запроса.

Если идентификатор запроса был передан в ClientRequestId, то возвращается переданное значение.
Если идентификатор запроса не был передан в ClientRequestId, то возвращается значение, сгенерированное при обработке запроса в API.

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