Работа с отказом в подписи и отказом от предложения об аннулировании
Генерация отказа от подписи и отказа от предложения об аннулировании
Сгенерировать отказ в подписи можно с помощью метода GenerateSignatureRejectionXml (V2). Данные подписанта нужно передать в универсальном формате в виде XML-файла, сконвертированного в Base64-строку.
Пример HTTP-запроса метода GenerateSignatureRejectionXml:
POST V2/GenerateSignatureRejectionXml?boxid={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json charset=utf-8
Пример тела запроса метода GenerateSignatureRejectionXml:
{
"ErrorMessage": "Текстовый комментарий",
"MessageId": "bbcedb0d-ce34-4e0d-b321-3f600c920935",
"AttachmentId": "30cf2c07-7297-4d48-bc6f-ca7a80e2cf95",
"SignerContent": "PD94bWwgdmVyc2l...LDQudC7Pg==" // содержимое XML-файла с данными подписанта в кодировке Base-64
}
Пример тела ответа метода GenerateSignatureRejectionXml:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="DP_UVUTOCH_2BM-9017770974-757645784-202407101104400484330_2BM-5242989368-732644841-202407101103418496883_20250416_6a0d86e6-f052-455d-a62b-7e684a3906ad" ВерсПрог="Diadoc 1.0" ВерсФорм="1.03">
<Документ КНД="1115113">
<УчастЭДО ИдУчастЭДО="2BM-5242989368-732644841-202407101103418496883">
<ЮЛ НаимОрг="Продавец" ИННЮЛ="5242989368" КПП="732644841"/>
</УчастЭДО>
<СвУведУточ ДатаПол="16.04.2025" ВремяПол="10.05.46">
<СведПолФайл ИмяПолФайла="Group12">
<ЭППолФайл>MIIMiQYJKoZIhv...UNp8A
</ЭППолФайл>
</СведПолФайл>
<ТекстУведУточ>Текстовый комментарий
</ТекстУведУточ>
</СвУведУточ>
<ОтпрДок ИдУчастЭДО="2BM-9017770974-757645784-202407101104400484330">
<ЮЛ НаимОрг="Покупатель" ИННЮЛ="9017770974" КПП="757645784"/>
</ОтпрДок>
<Подписант ТипПодпис="1" СтатПодп="2" Должн="Не указана">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович"/>
<СвДоверЭл СпособПредставл="1" НомДовер="4a743152-e772-4249-9a47-e2e290258e79" ДатаВыдДовер="17.09.2018" ВнНомДовер="123" ДатаВнРегДовер="18.09.2018" СвСистХран="СвДоверЭл-ИдСистХран"/>
</Подписант>
</Документ>
</Файл>
В ответе метод вернет сгенерированный XML-файл отказа. Полученный XML-файл можно подписать электронной подписью и отправить с помощью метода PostMessagePatch (V4), передав его в поле XmlSignatureRejections структуры MessagePatchToPostV2. Инструкция об отправке документа приведена в разделе Отправка предложения об аннулировании.
Получение отказа в подписи
Получатель может сформировать отказ в подписи и отправить его отправителю. Получить отказ в подписи можно с помощью метода GetMessage (V6).
В запросе нужно передать:
boxId— идентификатор ящика отправителя,
messageId— идентификатор отправленного сообщения с документом,
entityId— идентификатор документа или предложения об аннулировании, для которого сформирован отказ.
Эти значения можно получить из структуры Message.
В ответе метод вернет структуру Message с вложенной структурой Entity. Отказ в подписи будет представлен структурой Entity со следующими полями:
EntityType = Attachment,
AttachmentType = XmlSignatureRejection.
Пример HTTP-запроса метода GetMessage:
GET /V5/GetMessage?boxId={{boxId}}&messageId={{messageId}}&entityId={{entityId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
Пример тела ответа метода GetMessage:
{
"EntityType": "Attachment",
"EntityId": "33ba16c68-cc54-4b25-b81c-0e79134e219d",
"ParentEntityId": "30cf2c07-7297-4d48-bc6f-ca7a80e2cf95",
"Content": "lores ipsum",
"AttachmentType": "XmlSignatureRejection",
"FileName": "DP_UVUTOCH_2BM-5242989368-732644841-202407101103418496883_2BM-9147414342-757645784-202407101104400484330_20250416_c31a643c-8384-4e90-bef0-a8cd65c9ee90.xml",
"NeedRecipientSignature": false,
"SignerBoxId": "",
"NotDeliveredEventId": "",
"RawCreationDate": 638932613721445085,
"SignerDepartmentId": "",
"NeedReceipt": false,
"IsApprovementSignature": false,
"IsEncryptedContent": false
}
Парсинг отказа в подписи
Распарсить XML-файл отказа в подписи можно с помощью метода ParseSignatureRejectionXml. В теле запроса нужно передать XML-файл отказа в подписи, соответствующий XSD-схеме.
Пример HTTP-запроса метода ParseSignatureRejectionXml:
POST /ParseSignatureRejectionXml HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml; charset=utf-8
Пример тела запроса метода ParseSignatureRejectionXml:
<Файл ИдФайл="DP_UVUTOCH_2BM-1828306960-2012052807192968181080000000000_2BM-3990015462-927043935-201407110304450252964_20260122_9fe6c957-110a-47ea-9547-f04aed04456f" ВерсПрог="Diadoc 1.0" ВерсФорм="1.03">
<Документ КНД="1115113">
<УчастЭДО ИдУчастЭДО="2BM-3990015462-927043935-201407110304450252964">
<ЮЛ НаимОрг="Организация-отправитель" ИННЮЛ="3990015462" КПП="927043935"/>
</УчастЭДО>
<СвУведУточ ДатаПол="22.01.2026" ВремяПол="08.00.50">
<СведПолФайл ИмяПолФайла="ON_NSCHFDOPPR_2BM-3990015462-927043935-201407110304450252964_2BM-1828306960-2012052807192968181080000000000_20260122_36e8755d-83a8-4674-925f-2e0f45300beb_0_0_0_0_0_00">
<ЭППолФайл>MIIVmwYJKoZIhvcNAQc...W1etE7sMjjzlXj2aRVTQ8Br9MsAxk+I2/92vW9urxm2df2A8sCVK6SQkAyj</ЭППолФайл>
</СведПолФайл>
<ТекстУведУточ>Отказываю в подписи. В дате ошибка </ТекстУведУточ>
</СвУведУточ>
<ОтпрДок ИдУчастЭДО="2BM-1828306960-2012052807192968181080000000000">
<ЮЛ НаимОрг="Организация-получатель" ИННЮЛ="1828306960" КПП="861201692"/>
</ОтпрДок>
<Подписант Должн="Сотрудник">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
</Подписант>
</Документ>
</Файл>
Пример тела ответа метода ParseSignatureRejectionXml:
{
"ErrorMessage": "Отказываю в подписи. В дате ошибка",
"Signer": {
"SignerDetails": {
"Surname": "Иванов",
"FirstName": "Иван",
"Patronymic": "Иванович",
"JobTitle": "Сотрудник",
"Inn": "",
"SoleProprietorRegistrationCertificate": ""
},
"SignerCertificateThumbprint": ""
}
}
В ответе метод вернет информацию об отказе в подписи в виде структуры SignatureRejectionInfo.