Работа со служебными документами
Генерация служебных документов
Диадок позволяет сгенерировать следующие ответные служебные документы:
универсальное сообщение,
извещение о получении,
предложение об аннулировании,
отказ от подписи,
отказ от предложения об аннулировании,
уведомление об уточнении,
документ для отмены сведений об отгрузке маркированных товаров.
Эти документы можно отправить (добавить к сообщению) с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4), передав ему структуру MessagePatchToPost или MessagePatchToPostV2 с соответствующим заполненным полем. Подробнее об отправке служебных документов в разделе Дополнение сообщения.
Генерация универсального сообщения
Подробная информация об использовании универсального сообщения приведена на странице Переход на универсальные сообщения.
Сгенерировать универсальное сообщение можно с помощью метода GenerateUniversalMessage. В запросе нужно передать идентификатор ящика получателя (boxId), идентификатор отправленного сообщения (messageId) и идентификатор родительской сущности, на которую нужно сформировать универсальное сообщение (attachmentId). Эти значения можно получить из структуры Message.
В теле запроса нужно передать XML-файл с данными для формирования универсального сообщения, соответствующий упрощенной XSD-схеме.
Пример HTTP-запроса метода GenerateUniversalMessage:
POST GenerateUniversalMessage?boxId={{boxId}}&messageId={{messageId}}&attachmentId={{attachmentId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/xml
Пример тела запроса метода GenerateUniversalMessage:
<UniversalMessage>
<UniversalMessageInfos>
<UniversalMessageInfo StatusCode="1999">
<PlainText>123</PlainText>
</UniversalMessageInfo>
</UniversalMessageInfos>
<Sender Position="Сотрудник" UseDefaultPersonInfo="false">
<Fio FirstName="Иван" LastName="Иванов" MiddleName="Иванович"/>
<Contacts OtherContactInfo="OtherContactInfo">
<Phones>
<Phone>8-343-123-4567</Phone>
</Phones>
<Emails>
<Email>email@sample.com</Email>
</Emails>
</Contacts>
</Sender>
<Recipient Position="Сотрудник" UseDefaultPersonInfo="false">
<Fio FirstName="Петров" LastName="Петр" MiddleName="Петрович"/>
<Contacts OtherContactInfo="OtherContactInfo">
<Phones>
<Phone>8-343-123-4567</Phone>
</Phones>
<Emails>
<Email>email@sample.com</Email>
</Emails>
</Contacts>
</Recipient>
</UniversalMessage>
Пример тела ответа метода GenerateUniversalMessage:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="DP_UNISOOBSCH_2BM-6125600340-732644841-202407101103418496883_2BM-9147414342-757645784-202407101104400484330_20250529_3839e349-99d5-4a54-9b5f-546bffbfb44a" ВерсПрог="Diadoc 1.0" ВерсФорм="5.01">
<Документ КНД="1115144">
<СведУС ДатаФорм="29.05.2025" ВремФорм="13.53.27" ИмяПолФайл="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-6125600340-732644841-202407101103418496883_20250207_30f13ccc-deb2-4d49-8201-0ab211e8683d" />
<СвСобытДок СтатусУС="1999">
<ТекстУС>123</ТекстУС>
</СвСобытДок>
<ОтпрУС ИдОтпрУС="2BM-9147414342-757645784-202407101104400484330">
<СвЛицОтпрУС Должн="Сотрудник">
<ФИО Фамилия="Иванов" Имя="Иван" Отчество="Иванович" />
<Контакт>
<Тлф>8-343-123-4567</Тлф>
<ЭлПочта>email@google.com</ЭлПочта>
<ИнКонт>OtherContactInfo</ИнКонт>
</Контакт>
</СвЛицОтпрУС>
</ОтпрУС>
<ПолучУС ИдПолучУС="2BM-6125600340-732644841-202407101103418496883">
<СвЛицПолучУС Должн="Сотрудник">
<ФИО Фамилия="Петр" Имя="Петров" Отчество="Петрович" />
<Контакт>
<Тлф>8-343-123-4567</Тлф>
<ЭлПочта>email@google.com</ЭлПочта>
<ИнКонт>OtherContactInfo</ИнКонт>
</Контакт>
</СвЛицПолучУС>
</ПолучУС>
</Документ>
</Файл>
В ответе метод вернет сгенерированный XML-файл универсального сообщения, соответствующий XSD-схеме, для сущности attachmentId из сообщения messageId в ящике boxId. Отправить полученный XML-файл можно с помощью метода PostMessagePatch (V4), передав его в поле UniversalMessages структуры MessagePatchToPostV2. Инструкция об отправке документа приведена в разделе Отправка универсального сообщения.
Генерация извещения о получении
Сгенерировать извещение о получении можно с помощью метода GenerateReceiptXml (V2). В запросе нужно передать идентификатор ящика получателя (boxId) и структуру ReceiptGenerationRequestV2 со следующими данными:
messageId— идентификатор сообщения,
attachmentId— идентификатор сущности, для которой нужно сформировать извещение.
Эти значения можно получить из структуры Message.
Данные подписанта нужно передать в универсальном формате в виде XML-файла, сконвертированного в Base64-строку.
Пример HTTP-запроса метода GenerateReceiptXml:
POST V2/GenerateReceiptXml?boxid={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Content-Type: application/json charset=utf-8
Пример тела запроса метода GenerateReceiptXml:
{
"MessageId": "bbcedb0d-ce34-4e0d-b321-3f600c920935",
"AttachmentId": "30cf2c07-7297-4d48-bc6f-ca7a80e2cf95",
"SignerContent": "PD94bWwgdmVyc2l...LDQudC7Pg==" // содержимое XML-файла с данными подписанта в кодировке Base-64
}
Пример тела ответа метода GenerateReceiptXml:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="DP_IZVPOL_2BM-9616675014-961601000-201906250926373816603_2BM-7770357771-2012082810454029703720000000000_20230904_54c96f37-a745-4e02-8dda-41404992952f" ВерсПрог="Diadoc 1.0" ВерсФорм="1.03">
<Документ КНД="1115110">
<УчастЭДО ИдУчастЭДО="2BM-7770357771-2012082810454029703720000000000">
<ЮЛ НаимОрг="ОАО" ИННЮЛ="7770357771" КПП="770101001"/>
</УчастЭДО>
<СвИзвПолуч ДатаПол="04.09.2023" ВремяПол="13.32.26">
<СведПолФайл ИмяПолФайла="ON_NSCHFDOPPR_2BM-7770357771-2012082810454029703720000000000_2BM-9616675014-961601000-201906250926373816603_20200826_6efc7ad3-88ff-485d-86bb-c84c2262caf2">
<ЭППолФайл>MIINB3RI=...</ЭППолФайл>
</СведПолФайл>
</СвИзвПолуч>
<ОтпрДок ИдУчастЭДО="2BM-9616675014-961601000-201906250926373816603">
<ЮЛ НаимОрг="ООО" ИННЮЛ="9616675014" КПП="961601000"/>
</ОтпрДок>
<Подписант ТипПодпис="1" СтатПодп="2" Должн="Подписант-Должн">
<ФИО Фамилия="Петров" Имя="Петр" Отчество="Петрович"/>
<СвДоверЭл СпособПредставл="1" НомДовер="4a743152-e772-4249-9a47-e2e290258e79" ДатаВыдДовер="17.09.2018" ВнНомДовер="123" ДатаВнРегДовер="18.09.2018" ИдСистХран="СвДоверЭл-ИдСистХран"/>
</Подписант>
</Документ>
</Файл>
В ответе метод вернет сгенерированный XML-файл извещения о получении для сущности attachmentId из сообщения messageId в ящике boxId. Полученный XML-файл можно подписать электронной подписью и отправить с помощью метода PostMessagePatch (V4), передав его в поле Receipts структуры MessagePatchToPostV2. Инструкция об отправке документа приведена в разделе Отправка извещения о получении.
Генерация уведомления об уточнении
Сгенерировать уведомление об уточнении можно с помощью метода GenerateInvoiceCorrectionRequestXml (V2). В запросе нужно передать идентификатор ящика получателя (boxId) и структуру InvoiceCorrectionRequestGenerationRequestV2 со следующими данными:
ErrorMessage— текст уведомления об уточнении,
messageId— идентификатор сообщения,
attachmentId— идентификатор сущности, для которой нужно сформировать уведомление.
Эти значения можно получить из структуры Message.
Данные подписанта нужно передать в универсальном формате в виде XML-файла, сконвертированного в Base64-строку.
Пример HTTP-запроса метода GenerateInvoiceCorrectionRequestXml:
POST /V2/GenerateInvoiceCorrectionRequestXml?boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Content-Type: application/json
Пример тела запроса метода GenerateInvoiceCorrectionRequestXml:
{
"ErrorMessage": "Текстовый комментарий",
"MessageId": "{{messageId}}",
"AttachmentId": "{{documentId}}",
"SignerContent": "PD94bWwgdmVyc2l...LDQudC7Pg==" // содержимое XML-файла с данными подписанта в кодировке Base-64
}
Пример тела ответа метода GenerateInvoiceCorrectionRequestXml:
<?xml version="1.0" encoding="windows-1251"?>
<Файл ИдФайл="DP_UVUTOCH_2BM-1839264655-732644841-202407101103418496883_2BM-9147414342-757645784-202407101104400484330_20250207_8bc3aae6-ce88-459e-943a-37094526c16c" ВерсПрог="Diadoc 1.0" ВерсФорм="1.03">
<Документ КНД="1115113">
<УчастЭДО ИдУчастЭДО="2BM-9147414342-757645784-202407101104400484330">
<ЮЛ НаимОрг="Получатель" ИННЮЛ="8147414342" КПП="857645784" />
</УчастЭДО>
<СвУведУточ ДатаПол="07.02.2025" ВремяПол="10.06.17">
<СведПолФайл ИмяПолФайла="ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-1839264655-732644841-202407101103418496883_20250207_30f13ccc-deb2-4d49-8201-0ab211e8683d">
<ЭППолФайл>...</ЭППолФайл>
</СведПолФайл>
<ТекстУведУточ>Текстовый комментарий</ТекстУведУточ>
</СвУведУточ>
<ОтпрДок ИдУчастЭДО="2BM-1839264655-732644841-202407101103418496883">
<ЮЛ НаимОрг="Отправитель" ИННЮЛ="8125600340" КПП="832644841" />
</ОтпрДок>
<Подписант ТипПодпис="1" СтатПодп="2" Должн="Подписант-Должн">
<ФИО Фамилия="Фамилия" Имя="Имя" Отчество="Отчество" />
<СвДоверЭл СпособПредставл="1" НомДовер="c8a8949a-4907-4c36-9f48-7efb2fba1987" ДатаВыдДовер="17.09.2024" ВнНомДовер="123" ДатаВнРегДовер="18.09.2024" СвСистХран="СвДоверЭл-ИдСистХран" />
</Подписант>
</Документ>
</Файл>
В ответе метод вернет сгенерированный XML-файл уведомления. Полученный XML-файл можно подписать электронной подписью и отправить с помощью метода PostMessagePatch (V4), передав его в поле CorrectionRequests структуры MessagePatchToPostV2. Инструкция об отправке документа приведена в разделе Отправка уведомления об уточнении.
Генерация предложения об аннулировании
Сгенерировать предложение об аннулировании можно с помощью метода 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. Инструкция об отправке документа приведена в разделе Отправка предложения об аннулировании.
Генерация отказа от подписи и отказа от предложения об аннулировании
Сгенерировать отказ в подписи можно с помощью метода 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. Инструкция об отправке документа приведена в разделе Отправка предложения об аннулировании.
Генерация документа для отмены сведений об отгрузке маркированных товаров
Чтобы отменить сведения об отгрузке маркированных товаров, сгенерируйте и отправьте специальный служебный документ.
Сгенерировать документ для отмены сведений об отгрузке можно с помощью метода GenerateTtGisFixationCancellationRequest.
Пример HTTP-запроса метода GenerateTtGisFixationCancellationRequest:
POST /GenerateTtGisFixationCancellationRequest?boxId={{boxId}}&messageId={{messageId}}&documentId={{documentId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json; charset=utf-8
Пример тела ответа метода GenerateTtGisFixationCancellationRequest:
{
"fixation_document_id": "FIX_ON_NSCHFDOPPR_2BM-9147414342-757645784-202407101104400484330_2BM-3175546205-732644841-202407101103418496883_20250620_fc857ac8-5e25-4cd3-91fd-77f0a8e141d4_0_1_1_0_0_00",
"inn": "1234567890"
}
В ответе метод вернет сгенерированный JSON-файл документа. Полученный файл нужно подписать электронной подписью и поместить в структуру TtGisFixationCancellationRequestAttachment. Отправить эту структуру можно с помощью метода PostMessagePatch (V3) или PostMessagePatch (V4), передав ее в поле TtGisFixationCancellationRequests структуры MessagePatchToPost или MessagePatchToPostV2 соответственно. Инструкция об отправке документа приведена в разделе Отправка документа для отмены сведений об отгрузке маркированных товаров.
Универсальный формат данных подписанта в служебных документах
При генерации извещения о получении, отказа от подписи и уведомления об уточнении нужно в поле SignerContent передать упрощенный XML-файл с данными подписанта в универсальном бинарном формате (подробнее в разделе Универсальный формат заполнения данных подписанта). Файл необходимо сформировать в соответствии с упрощенной XSD-схемой подписанта для служебных документов.
Пример упрощенного XML-файла подписанта:
<?xml version="1.0" encoding="UTF-8"?>
<Signer SignerStatus="2" SignatureType="1">
<Certificate CertificateBytes="PD94bWwgdmVy...c2l"/>
<Fio LastName="Петров" FirstName="Петр" MiddleName="Петрович"/>
<Position PositionSource="Manual">Подписант-Должн</Position>
<PowerOfAttorney>
<Electronic MethodOfProviding="1">
<Manual RegistrationNumber="4a743152-e772-4249-9a47-e2e290258e79" RegistrationDate="17.09.2018" InternalNumber="123" InternalDate="18.09.2018" SystemId="СвДоверЭл-ИдСистХран"/>
</Electronic>
</PowerOfAttorney>
</Signer>
SignerStatus— статус подписанта, может принимать значения:1— лицо, имеющее полномочия на подписание документа без доверенности,2— лицо, имеющее полномочия на подписание документа на основании доверенности в электронной форме,3— лицо, имеющее полномочия на подписание документа на основании доверенности на бумажном носителе.
SignatureType— тип подписи, может принимать значения:1— усиленная квалифицированная электронная подпись,2— простая электронная подпись,3— усиленная неквалифицированная электронная подпись.
Certificate— данные сертификата подписанта. Обязательное поле. Можно передать:CertificateThumbprint— отпечаток сертификата,CertificateBytes— сертификат, сериализованный в массив байтов в DER-кодировке.
Fio— фамилия, имя, отчество подписанта.LastName— фамилия подписанта, обязательное поле,FirstName— имя подписанта, обязательное поле,MiddleName— отчество подписанта.
Position— должность подписанта.PositionSource— способ заполнения должности сотрудника. Может принимать значения:Employee— заполнение из данных сотрудника в Диадоке,Certificate— заполнение из данных в сертификате,Manual— ручное заполнение данных.
PowerOfAttorney— сведения о машиночитаемой доверенности. Доверенность может быть электронной или бумажной.Electronic— электронная доверенность. Данные доверенности можно заполнить автоматически (выбрать из хранилища Диадока) или вручную.MethodOfProviding— способ представления доверенности. Обязательное поле. Может принимать значения:1— представление доверенности осуществляется посредством ее включения в пакет электронных документов,2— представление доверенности способом, не предусматривающим его включение в пакет электронных документов.
Storage— автоматическое заполнение информации по доверенности на основе номера и ИНН:RegistrationNumber— номер доверенности, обязательное поле,IssuerInn— ИНН организации, выдавшей доверенность, обязательное поле,UseDefault— признак того, что нужно автоматически заполнить информацию на основе доверенности, используемой сотрудником по умолчанию. Обязательное поле.
Manual— ручное заполнение данных доверенности. Можно указать следующие данные:RegistrationNumber— номер доверенности, обязательное поле,RegistrationDate— дата совершения (выдачи) доверенности, обязательное поле,InternalNumber— внутренний регистрационный номер доверенности,InternalDate— дата внутренней регистрации доверенности,SystemId— идентифицирующая информация об информационной системе, в которой осуществляется хранение доверенности.
Paper— бумажная доверенность. Можно указать следующие данные:Fio— фамилия, имя, отчество (при наличии) лица, подписавшего доверенность,InternalNumber— внутренний регистрационный номер доверенности, обязательное поле,RegistrationDate— дата совершения (выдачи) доверенности, обязательное поле,IssuerInfo— сведения о доверителе.
Получение служебных документов
Диадок позволяет получить информацию о служебных документах из сообщения.
Получение универсального сообщения
Чтобы получить универсальное сообщение, можно воспользоваться следующими способами:
методы работы с сообщениями, например, GetMessage (V6),
методы работы с документооборотом, например, GetDocflows (V4).
Метод GetMessage
Чтобы получить универсальное сообщение методом GetMessage (V6), нужно передать в запросе:
boxId— идентификатор ящика отправителя,
messageId— идентификатор отправленного сообщения,
entityId— идентификатор родительской сущности, на которую сформировано универсальное сообщение.
Эти значения можно получить из структуры Message.
В ответе метод вернет структуру Message с вложенной структурой Entity. Универсальное сообщение будет представлено структурой Entity со следующими полями:
EntityType = Attachment,
AttachmentType = UniversalMessage.
Информация об универсальном сообщении будет хранится в поле Entity.UniversalMessageInfo в виде структуры UniversalMessageInfo.
Пример HTTP-запроса метода GetMessage:
GET /V6/GetMessage?boxId={{boxId}}&messageId={{messageId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Accept: application/json
Пример ответа метода GetMessage:
{
"CreatedFromDraftId": "",
"DraftIsLocked": false,
"DraftIsRecycled": false,
"DraftIsTransformedToMessageIdList": [
],
"Entities": [
{
"AttachmentType": "XmlTorg12",
<...>
},
{
"AttachmentType": "XmlTorg12BuyerTitle",
<...>
},
{
"AttachmentType": "InvoiceReceipt",
"AuthorUserId": "",
"Content": {
"Size": 5575
},
"ContentTypeId": "receipt_133_01_03",
"EntityId": "529b4e21-a982-4364-a52b-fff1f1cd8409",
"EntityType": "Attachment",
"FileName": "DP_IZVPOL_2BM-7743911253-774301001-201512151245491116742_2BM-7717704518-770101001-201708200655456926042_20250528_7ce74dc9-0943-4fb9-90cd-327d445e5198.xml",
"IsApprovementSignature": false,
"IsEncryptedContent": false,
"Labels": [
],
"NeedReceipt": false,
"NeedRecipientSignature": false,
"ParentEntityId": "e9bfc749-51e7-4575-a587-7033b9f2e882",
"RawCreationDate": 638840213353178450
},
{
"AttachmentType": "UniversalMessage",
"AuthorUserId": "",
"Content": {
"Size": 856
},
"ContentTypeId": "receipt_uni_01",
"EntityId": "647250f0-c833-4cd2-a6b1-afe2ee812986",
"EntityType": "Attachment",
"FileName": "DP_UNISOOBSCH_2BM-7743911253-774301001-201512151245491116742_2BM-7717704518-770101001-201708200655456926042_20250528_6ca0fdf6-0ab4-461b-9c67-1b5d9c200bbb.xml",
"IsApprovementSignature": false,
"IsEncryptedContent": false,
"Labels": [
],
"NeedReceipt": false,
"NeedRecipientSignature": false,
"ParentEntityId": "e9bfc749-51e7-4575-a587-7033b9f2e882",
"RawCreationDate": 638840213353178450,
"UniversalMessageInfo": {
"CodeGroup": "Receipt",
"Events": [
{
"PlainText": "",
"StatusCode": 1999
}
]
}
}
],
"FromBoxId": "eab6c66b8f644ada8cf04c6a2b7ba915@diadoc.ru",
"FromTitle": "Отправитель",
"IsDeleted": false,
"IsDraft": false,
"IsInternal": false,
"IsProxified": false,
"IsReusable": false,
"IsTest": false,
"LastPatchTimestampTicks": 638840428633821944,
"LockMode": "None",
"MessageId": "d213fc6e-1c0c-4ced-ae35-9078c895b92b",
"MessageType": "Letter",
"PacketIsLocked": false,
"ProxyBoxId": "",
"ProxyTitle": "",
"TimestampTicks": 638840213224709349,
"ToBoxId": "1234b472842f47baa1a309100064ace4@diadoc.ru",
"ToTitle": "Получатель"
}
Метод GetMessage (V6) не возвращает содержимое универсального сообщения, а только информацию о нем. Чтобы получить содержимое, используйте метод GetEntityContent (V4).
Метод GetDocflows
Чтобы получить универсальное сообщение методом GetDocflows (V4), нужно передать в запросе идентификатор ящика отправителя boxId, а в теле запроса — идентификатор документа в виде пары MessageId и EntityId.
Эти значения можно получить из структуры Message.
В ответе метод вернет структуру GetDocflowBatchResponseV4 с вложенной структурой Documents.Docflow, в которой универсальное сообщение UniversalMessageAttachmentDocflow вернется в поле UniversalMessage одной из следующих структур:
ReceiptDocflowV4 — для извещения о получении,
AmendmentRequestDocflowV4 — для уведомления об уточнении,
SignatureRejectionDocflowV4 — для отказа в подписи.
Пример HTTP-запроса метода GetDocflows:
POST /V4/GetDocflows?boxId={{boxId}} HTTP/1.1
Host: diadoc-api.kontur.ru
Authorization: Bearer {{access_token}}
Content-Type: application/json charset=utf-8
Accept: application/json
Пример тела запроса метода GetDocflows:
{
"Requests": [
{
"DocumentId": {
"MessageId": "d213fc6e-1c0c-4ced-ae35-9078c895b92b",
"EntityId": "e9bfc749-51e7-4575-a587-7033b9f2e882"
}
}
]
}
Пример ответа метода GetDocflows:
{
"Documents": [
{
"Docflow": {
"Confirmation": {...},
"DocflowStatus": {...},
"OuterDocflowEntities": [...],
"OuterDocflows": [...],
"RecipientReceipt": {
"Confirmation": {...},
"DeliveredAt": {...},
"IsFinished": true,
"ReceiptAttachment": {
"Attachment": {
"AttachmentFilename": "DP_IZVPOL_2BM-7743911253-774301001-201512151245491116742_2BM-7717704518-770101001-201708200655456926042_20250528_7ce74dc9-0943-4fb9-90cd-327d445e5198.xml",
"DisplayFilename": "Извещение о получении исправления",
"Entity": {
"Content": {
"Size": 5575
},
"CreationTimestamp": {
"Ticks": 638840213353178450
},
"EntityId": "529b4e21-a982-4364-a52b-fff1f1cd8409"
}
},
"ContentTypeId": "receipt_133_01_03",
"Signature": {
"CadesT": {
"Content": {
"Size": 7098
},
"CreationTimestamp": {
"Ticks": 638840213356162462
},
"EntityId": "5a6cdfb3-973f-47b2-b1cb-19b228d1eb2f"
},
"Cms": {
"Content": {
"Size": 3466
},
"CreationTimestamp": {
"Ticks": 638840213353178450
},
"EntityId": "620dcec7-1a09-4525-8ccd-4e6a273201ab"
},
"DeliveredAt": {
"Ticks": 638840213356162462
},
"IsValid": true,
"PowerOfAttorneyAttachmentStatus": {
"StatusName": "PowerOfAttorneyNotRequired"
},
"SignerBoxId": "4926b472842f47baa1a309100064ace4@diadoc.ru",
"SignerDepartmentId": "00000000-0000-0000-0000-000000000000"
}
},
"SentAt": {...},
"Status": "Finished",
"UniversalMessage": {
"Attachment": {
"AttachmentFilename": "DP_UNISOOBSCH_2BM-7743911253-774301001-201512151245491116742_2BM-7717704518-770101001-201708200655456926042_20250528_6ca0fdf6-0ab4-461b-9c67-1b5d9c200bbb.xml",
"DisplayFilename": "Извещение о получении исправления",
"Entity": {
"Content": {
"Size": 856
},
"CreationTimestamp": {
"Ticks": 638840213353178450
},
"EntityId": "647250f0-c833-4cd2-a6b1-afe2ee812986"
}
},
"ContentTypeId": "receipt_uni_01",
"MessageInfo": {
"CodeGroup": "Receipt",
"Events": [
{
"PlainText": "",
"StatusCode": 1999
}
]
}
}
},
"RecipientResponse": {...},
"ResolutionEntities": {...},
"SenderReceipt": {...},
"SenderTitle": {...}
},
"DocumentId": {...},
"DocumentInfo": {...},
"LastEvent": {...}
}
]
}
Получение извещения о получении
После получения титула продавца покупатель формирует извещение о получении титула и отправляет его продавцу. Получить извещение о получении можно с помощью метода GetMessage (V5).
В запросе нужно передать:
boxId— идентификатор ящика отправителя,
messageId— идентификатор отправленного сообщения с титулом продавца,
entityId— идентификатор отправленного титула продавца.
Эти значения можно получить из структуры Message.
В ответе метод вернет структуру Message с вложенной структурой Entity. Извещение о получении будет представлено структурой Entity со следующими полями:
EntityType = Attachment,
AttachmentType = InvoiceReceipt.
Пример 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": "1d7b2e96-9945-41ab-aeea-2f310382bfad",
"ParentEntityId": "45d16c54-8700-4882-afaf-97678d6ed135",
"Content": "lores ipsum",
"AttachmentType": "InvoiceReceipt",
"FileName": "DP_IZVPOL_2BM-9610384428-961001000-201510080625090688235_2BM-9653544919-965301000-201508270726013081470_20151008_6bbfab54-4e9f-4ca1-99eb-37f34880a784.xml",
"NeedRecipientSignature": false,
"SignerBoxId": "",
"NotDeliveredEventId": "",
"RawCreationDate": 635798950114653648,
"SignerDepartmentId": "",
"NeedReceipt": false,
"IsApprovementSignature": false,
"IsEncryptedContent": false
}
Получение подтверждения оператора
После отправки титула продавца Диадок автоматически формирует подтверждение оператора о дате получения документа. Получить подтверждение оператора можно с помощью метода GetMessage (V5).
В запросе нужно передать:
boxId— идентификатор ящика отправителя,
messageId— идентификатор отправленного сообщения с титулом продавца,
entityId— идентификатор отправленного титула продавца.
Эти значения можно получить из структуры Message.
В ответе метод вернет структуру Message с вложенной структурой Entity. Подтверждение оператора будет представлено структурой Entity со следующими полями:
EntityType = Attachment,
AttachmentType = InvoiceConfirmation.
Пример 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
Пример ответа метода GetMessage:
{
"EntityType": "Attachment",
"EntityId": "9955dccd-82fd-4412-b953-7854e102f782",
"ParentEntityId": "736aa0c4-12f5-4412-bfea-1de59948b904",
"Content": "lores ipsum",
"AttachmentType": "InvoiceConfirmation",
"FileName": "DP_PDPOL_2BM-7750370234-4012052808304878702630000000000_2BM_20150927_324c290e-f049-4906-baac-1ddcd7f3c2ff.xml",
"NeedRecipientSignature": false,
"SignerBoxId": "",
"NotDeliveredEventId": "",
"RawCreationDate": 635789700936777240,
"SignerDepartmentId": "",
"NeedReceipt": false,
"IsApprovementSignature": false,
"IsEncryptedContent": false
}
Получение документа для отмены сведений об отгрузке маркированных товаров
Чтобы получить служебный документ для отмены сведений об отгрузке, можно воспользоваться следующими способами:
Методы для работы с документами, сообщениями и событиями:
Информация о документе для отмены сведений об отгрузке будет представлена структурой Entity со следующими полями:
EntityType = Attachment,AttachmentType = TtGisFixationCancellationRequest.
Методы для работы с документооборотом:
Статус подписания документа для отмены сведений об отгрузке хранится в поле
CancellationStatusструктуры Document в виде значения TtGisFixationCancellationStatus.Информация о документе для отмены сведений об отгрузке хранится в поле
TtGisFixationструктур DocflowV3 и DocflowV4 в виде структуры TtGisFixationDocflow.