Дополнение сообщения

Сформированные сообщения можно дополнять титулами последующих участников и служебными документами.

Дополняя существующее сообщение с документом, получатель может подписать документ, отправить на него ответный титул или отказать в подписи, запросить уточнение или корректировку. Также с помощью дополнения отправитель и получатель документа могут запросить согласование или аннулирование. В дополнениях к сообщению хранятся все извещения о получении и подтверждения оператора. Одно сообщение может содержать неограниченное количество дополнений к исходному документу. Подробнее механизм работы с сообщением описан на странице Обмен документами в Диадоке.

Дополнить существующее сообщение с документом можно с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4). Пользователь, вызывающий метод, должен иметь доступ к ящику, в котором хранится сообщение.

В теле запроса метода передайте структуру MessagePatchToPost или MessagePatchToPostV2, заполненную следующими данными:

  • BoxId — идентификатор ящика, в котором находится исходное сообщение.

  • MessageId — идентификатор сообщения, к которому относится дополнение.

  • сущность дополнения — данные, которыми нужно дополнить существующее сообщение:

    • RecipientTitles — ответный титул на документ; передайте структуру RecipientTitleAttachment для передачи XML-файла ответного титула:

      • ParentEntityId — идентификатор первого титула документа (титула отправителя).

      • SignedContent.Content — XML-файл документа.

      • SignedContent.Signature — файл подписи.

      • NeedReceipt — запрос извещения о получении документа отправителем; если имеет значение true, то отправитель первого титула документа будет обязан сформировать и отправить ИоП после получения титула получателя. Возможность запросить извещение о получении зависит от вида документооборота.

    • Signatures — подпись под документом.

    • RequestedSignatureRejections — отказ в подписи под документом.

    • Receipts — извещение о получении документа.

    • CorrectionRequests — запрос уточнения или корректировки.

    • ResolutionRequests — запрос согласования.

    • Resolutions — согласование документа.

    • RevocationRequests — предложение об аннулировании.

Все возможные варианты дополнения сообщения перечислены в структуре MessagePatchToPost и MessagePatchToPostV2.

Примечание

Обратите внимание, что API Диадока не создает файл подписи, его нужно сгенерировать самостоятельно.

Пример HTTP-запроса метода PostMessagePatch с ответным титулом:

POST /V3/PostMessagePatch HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json; charset=utf-8

Пример тела запроса метода PostMessagePatch с ответным титулом:

{
    "BoxId": "{{boxId}}",
    "MessageId": "bbcedb0d-ce34-4e0d-b321-3f600c920935",
    "RecipientTitles": [
        {
            "ParentEntityId":"30cf2c07-7297-4d48-bc6f-ca7a80e2cf95&",
            "SignedContent":
            {
                "Content": "PD94bWwgdmVyc2l...LDQudC7Pg==",      // содержимое XML-файла в кодировке base-64
                "Signature": "MIIN5QYJKoZIhvc...KsTM6zixgz"      // содержимое файла подписи в кодировке base-64
            }
        }
    ]
}

Метод вернет в ответе отправленное дополнение, представленное структурой MessagePatch.

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