Работа с предложением об аннулировании

Генерация предложения об аннулировании

Сгенерировать предложение об аннулировании можно с помощью метода GenerateRevocationRequestXml (V2). Диадок умеет работать с предложениями об аннулировании в формате 1.01 и 1.02.

Пример HTTP-запроса метода GenerateRevocationRequestXml:

POST V2/GenerateRevocationRequestXml?boxId={{boxId}}&messageId={{messageId}}&attachmentId={{attachmentId}}&contentTypeId=revocation_request_02 HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8

Пример тела запроса метода GenerateRevocationRequestXml:

{
    "Comment": "Текстовый комментарий",
    "Signer": {
        "SignerDetails": {
            "Surname": "Иванов",
            "FirstName": "Иван",
            "Patronymic": "Иванович",
            "JobTitle": "Сотрудник",
            "Inn": "7713964071"
        }
    }
}

Пример тела ответа метода GenerateRevocationRequestXml:

<?xml version="1.0" encoding="windows-1251"?><Файл ИдФайл="DP_PRANNUL_2BM-9147414342-757645784-202407101104400484330_2BM-1839264655-732644841-202407101103418496883_20250423_3d2a09bf-748d-4583-b4b3-fd91bf0092b3" ВерсПрог="Diadoc 1.0" ВерсФорм="1.02"><Документ><УчастЭДО ИдУчастЭДО="2BM-1839264655-732644841-202407101103418496883">
<ЮЛ НаимОрг="Отправитель" ИННЮЛ="1839264655" КПП="732644841" />
</УчастЭДО><СвПредАн><СведАнФайл ИмяАнФайла="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-1839264655-732644841-202407101103418496883_20250207_30f13ccc-deb2-4d49-8201-0ab211e8683d"><ЭЦПАнФайл>MIINLgYLwVeXpzCZ25uwFn
</ЭЦПАнФайл>
</СведАнФайл><ТекстПредАн>Текстовый комментарий
</ТекстПредАн>
</СвПредАн><НапрПредАн ИдУчастЭДО="2BM-9147414342-757645784-202407101104400484330">
<ЮЛ НаимОрг="Получатель" ИННЮЛ="9147414342" КПП="757645784" />
</НапрПредАн><Подписант Должность="Сотрудник">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
</Подписант>
</Документ>
</Файл>

В ответе метод вернет сгенерированный XML-файл предложения об аннулировании. Полученный XML-файл можно подписать электронной подписью и отправить с помощью метода PostMessagePatch (V4), передав его в поле RevocationRequests структуры MessagePatchToPostV2. Инструкция об отправке документа приведена в разделе Отправка предложения об аннулировании.

Получение предложения об аннулировании

Участник документооборота может сформировать предложение об аннулировании и отправить его контрагенту. Получить предложение об аннулировании можно с помощью метода GetMessage (V6).

В запросе нужно передать:

  • boxId — идентификатор ящика отправителя,

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

  • entityId — идентификатор документа, для которого сформировано предложение об аннулировании.

Эти значения можно получить из структуры Message.

В ответе метод вернет структуру Message с вложенной структурой Entity. Предложение об аннулировании будет представлено структурой Entity со следующими полями:

  • EntityType = Attachment,

  • AttachmentType = RevocationRequest.

Пример 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": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "ParentEntityId": "45d16c54-8700-4882-afaf-97678d6ed135",
    "Content": "lores ipsum",
    "AttachmentType": "RevocationRequest",
    "FileName": "DP_PRANNUL_2BM-9610384428-961001000-201510080625090688235_2BM-9653544919-965301000-201508270726013081470_20151008_6bbfab54-4e9f-4ca1-99eb-37f34880a784.xml",
    "NeedRecipientSignature": true,
    "SignerBoxId": "",
    "NotDeliveredEventId": "",
    "RawCreationDate": 635798950114653648,
    "SignerDepartmentId": "",
    "NeedReceipt": false,
    "IsApprovementSignature": false,
    "IsEncryptedContent": false
}

Парсинг предложения об аннулировании

Распарсить XML-файл предложения об аннулировании можно с помощью метода ParseRevocationRequestXml. В теле запроса нужно передать XML-файл предложения об аннулировании, соответствующий XSD-схеме.

Пример HTTP-запроса метода ParseRevocationRequestXml:

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

Пример тела запроса метода ParseRevocationRequestXml:

<Файл ИдФайл="DP_PRANNUL_2BM-1828306960-861201692-202407101104400484330_2BM-3990015462-927043935-202407101103418496883_20250911_db7897b1-6b7b-4c92-b58e-d9d5b42d02fe" ВерсПрог="Diadoc 1.0" ВерсФорм="1.02">
  <Документ>
    <УчастЭДО ИдУчастЭДО="2BM-3990015462-927043935-202407101103418496883">
      <ЮЛ НаимОрг="Организация-отправитель" ИННЮЛ="3990015462" КПП="927043935" />
    </УчастЭДО>
    <СвПредАн>
      <СведАнФайл ИмяАнФайла="ON_NSCHFDOPPR_2BM-1828306960-861201692-202407101104400484330_2BM-3990015462-927043935-202407101103418496883_20250911_db4dc51d-be0f-41b2-91d1-f18826a575fb_0_0_0_0_0_00">
        <ЭЦПАнФайл>MIIMiQYJKoZIhvcNAQcCoIIMej...cJewt7UKvE/MUiY0xqVne1l3NH</ЭЦПАнФайл>
      </СведАнФайл>
      <ТекстПредАн>Аннулируем</ТекстПредАн>
    </СвПредАн>
    <НапрПредАн ИдУчастЭДО="2BM-1828306960-861201692-202407101104400484330">
      <ЮЛ НаимОрг="Организация-получатель" ИННЮЛ="1828306960" КПП="861201692" />
    </НапрПредАн>
    <Подписант Должность="Сотрудник"><ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" /></Подписант>
  </Документ>
</Файл>

Пример тела ответа метода ParseRevocationRequestXml:

{
    "Comment": "Аннулируем",
    "Signer": {
        "SignerDetails": {
            "Surname": "Иванов",
            "FirstName": "Иван",
            "Patronymic": "Иванович",
            "JobTitle": "Сотрудник",
            "Inn": "",
            "SoleProprietorRegistrationCertificate": ""
        },
        "SignerCertificateThumbprint": ""
    }
}

В ответе метод вернет информацию о предложении об аннулировании в виде структуры RevocationRequestInfo.