DssSign

Метод DssSign запускает асинхронную операцию подписания файлов сертификатом без носителя.

POST /DssSign
Query Parameters:
  • boxId – идентификатор ящика организации.

  • certificateThumbprint – отпечаток сертификата без носителя, которым требуется подписать файлы. Если не передан, будет использован неистекший сертификат без носителя с самым длительным сроком действия, привязанный к пользователю в Диадоке.

Request Headers:
Request Body:

Тело запроса должно содержать структуру DssSignRequest.

Status Codes:
  • 200 OK – операция успешно завершена.

  • 400 Bad Request – данные в запросе имеют неверный формат или отсутствуют обязательные параметры.

  • 401 Unauthorized – в запросе отсутствует HTTP-заголовок Authorization или в этом заголовке содержатся некорректные авторизационные данные.

  • 402 Payment Required – у организации с указанным идентификатором boxId закончилась подписка на API.

  • 403 Forbidden – доступ к ящику с предоставленным авторизационным токеном запрещен.

  • 404 Not Found – не найден ящик с указанным идентификатором или DSS-сертификат.

  • 405 Method Not Allowed – используется неподходящий HTTP-метод.

  • 500 Internal Server Error – при обработке запроса возникла непредвиденная ошибка.

Response Body:

Тело ответа содержит идентификатор операции taskId в структуре AsyncMethodResult. По этому идентификатору с помощью метода DssSignResult можно узнать результат обработки запроса.

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

POST /DssSign?boxId=54e9ca30-09c3-4bc9-926f-8f3c1ab56ca3&certificateThumbprint=8A80C2723DBC4F0A94F8CEE21C0A15A68A80C272 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: DiadocAuth ddauth_api_client_id=key, ddauth_token=token
Content-Type: application/json; charset=utf-8

{
    "Files": [
        {
            "Content": {
                "Content": "<fileBytesBase64>"
            },
            "FileName": "first.xml"
        },
        {
            "Content": {
                "NameOnShelf": "__userId__/478DCC82-6CD1-4A26-B8F7-7E3E52DC5C81"
            },
            "FileName": "second.xml"
        },
        {
            "Content": {
                "EntityId": {
                    "MessageId": "ab149008-561e-42aa-a639-8873a64ceaaf",
                    "EntityId": "f92492f0-f5fc-4de6-898c-6b77c83d0dba"
                }
            },
            "FileName": "third.xml"
        },
        {
            "Content": {
                "PatchedContentId": "0AD643FD-C76F-4408-B6B8-1964F9A40AD5"
            },
            "FileName": "fourth.xml"
        }
    ]
}

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

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "TaskId": "2fd45887-138e-4e08-aeb2-bcd55bf0dd85"
}