### Register Response Examples Source: https://developer.kontur.ru/docs/diadoc-api/http/Register Examples of responses from the POST /Register endpoint, showing different registration statuses and required actions. ```HTTP HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "RegistrationStatus": "RegistrationIsCompleted", "BoxId": "99a4b249-a144-4f11-9d7b-4d84fdb68f8b" } ``` ```HTTP HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "RegistrationStatus": "CertificateOwnershipProofIsRequired", "BoxId": "2d81936a-d304-4b70-83bc-ab964e7a0f60", "DataToSign": "" } ``` -------------------------------- ### Register Request Examples Source: https://developer.kontur.ru/docs/diadoc-api/http/Register Examples of POST /Register requests, demonstrating how to send certificate content or thumbprint in the request body. ```HTTP POST /Register HTTP/1.1 Host: diadoc-api.kontur.ru Authorization: Bearer {{access_token}} Content-Type: application/json; charset=utf-8 { "CertificateContent":"" } ``` ```HTTP POST /Register HTTP/1.1 Host: diadoc-api.kontur.ru Authorization: Bearer {{access_token}} Content-Type: application/json; charset=utf-8 { "Thumbprint":"B0E10292B0024E7197A76B741CE0D271FEAD7E10" } ``` -------------------------------- ### HTTP Request Example Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateDocumentProtocol Example of an HTTP request to the GenerateDocumentProtocol endpoint. ```HTTP GET /GenerateDocumentProtocol?boxId=YOUR_BOX_ID&messageId=YOUR_MESSAGE_ID&documentId=YOUR_DOCUMENT_ID HTTP/1.1 Host: api.diadoc.ru Authorization: DiadocAuth YOUR_TOKEN ``` -------------------------------- ### HTTP Request Example for MoveDocuments Source: https://developer.kontur.ru/docs/diadoc-api/http/MoveDocuments An example of an HTTP POST request to the /V3/MoveDocuments endpoint, including the Host header and Authorization token. ```HTTP POST /V3/MoveDocuments HTTP/1.1 Host: diadoc-api.kontur.ru Authorization: Bearer {{access_token}} ``` -------------------------------- ### Отправка неформализованного документа через API Диадок (C#) Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/quickstart Пример на C# для отправки неформализованного документа через API Диадок. Включает авторизацию, получение идентификаторов организаций и контрагентов, подготовку и отправку документа, а также проверку статуса. ```C# var diadocApi = new DiadocApi( clientId, apiUrl, new WinApiCrypt()); // Авторизация с помощью логина и пароля var authToken = diadocApi.Authenticate(login, password); // Получение идентификатора ящика отправителя var organizationList = diadocApi.GetMyOrganizations(authToken); var organizations = organizationList.Organizations; var myOrgBoxIds = organizations.Select(org => org.Boxes.First().BoxId); // Получение идентификатора ящика получателя string counteragentStatus = null; string afterIndexKey = null; var counteragentList = diadocApi.GetCounteragents(authToken, myOrgId, counteragentStatus, afterIndexKey); var counteragents = counteragentList.Counteragents; var myCounteragentOrgBoxIds = counteragents.Select(c => c.Organization.Boxes.First().BoxId); // Подготовка документа // Заполнение содержимого документа string NonformalizedDocumentPath = "<путь_к_файлу>"; // путь к файлу, который нужно отправить var content = File.ReadAllBytes(NonformalizedDocumentPath); // бинарное содержимое файла // Заполнение информации о документе в структуре DocumentAttachment var documentAttachment = new DocumentAttachment { TypeNamedId = "nonformalized", SignedContent = new SignedContent { Content = content, SignWithTestSignature = true }, Comment = "Текстовый комментарий к документу", CustomDocumentId = "Строковый идентификатор учетной системы", Metadata = { new MetadataItem { Key = "FileName", Value = Path.GetFileNameWithoutExtension(NonformalizedDocumentPath) } } }; // Заполнение информации о документе в MessageToPost var messageToPost = new MessageToPost { FromBoxId = myOrgBoxIds, ToBoxId = myCounteragentOrgBoxIds }; messageToPost.DocumentAttachments.Add(documentAttachment); // Отправка документа var response = diadocApi.PostMessage(authToken, messageToPost); var responseDocument = response.Entities.FirstOrDefault(e => string.IsNullOrEmpty(e.ParentEntityId)); // т.к. у документа нет "родительских сущностей" // Проверка статуса var document = diadocApi.GetDocument(authToken, myOrgBoxIds, response.MessageId, responseDocument.EntityId); var status = document.DocflowStatus.PrimaryStatus; Console.WriteLine("Сообщение отправлено, статус: " + status); ``` -------------------------------- ### Диадок API: Работа с контрагентами Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/overview API Диадока позволяет искать организации по реквизитам, управлять списком контрагентов-партнеров, группировать их и отслеживать изменения отношений через ленту событий. ```APIDOC Работа с контрагентами: - Поиск организаций по реквизитам и получение списка ее подразделений - Установление партнерских отношений для обмена документами и управление списком контрагентов-партнеров - Объединение контрагентов-партнеров в группы и управление этими группами - Отслеживание событий изменения отношений с контрагентами с помощью ленты событий ``` -------------------------------- ### Response Body Example Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateDocumentProtocol Example of a successful response body containing the document protocol and signature in Base64 encoding. ```JSON { "PrintForm":"JVBERi0xLjQKJdP0zOEKM...E4MTcKJSVFT0YK",// PDF file content of the print form in Base-64 encoding "Signature":"MIINIAYJKoZIhvcNAQcCo...M4qZkbzpR34Q=="// XML file content with signatory data in Base-64 encoding } ``` -------------------------------- ### Диадок API: Работа со своей организацией Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/overview API Диадока предоставляет возможности для управления подразделениями и сотрудниками организации, а также для подписки сотрудников на уведомления о событиях документооборота. ```APIDOC Работа со своей организацией: - Управление подразделениями: получение списка, создание, удаление и обновление данных - Управление сотрудниками: получение списка, создание, удаление и обновление данных - Подписка сотрудников на уведомления по событиям документооборота ``` -------------------------------- ### Response Body Example (XML) Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateRevocationRequestXml An example of the XML response body containing the generated revocation request file. ```XML <ФайлИдФайл="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"/> <ПодписантДолжность="Сотрудник"> <ФИОФамилия="Иванов"Имя="Иван"Отчество="Иванович"/> ``` -------------------------------- ### Диадок API: Работа с документами Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/overview API Диадока поддерживает обмен неформализованными и формализованными документами, генерацию документов, использование машиночитаемых доверенностей, создание шаблонов, работу с черновиками, согласование, получение статусов и событий, поиск документов и получение печатных форм. ```APIDOC Работа с документами: - Обмен любыми документами с контрагентами и внутри организации: - Неформализованными (договоры, акты, счета на оплату и т.д.) - Формализованными (счета-фактуры, УПД, товарные накладные и т.д.) - Упрощенная генерация формализованных документов - Использование машиночитаемой доверенности при подписании - Создание шаблонов документов - Использование черновиков и хранение неотправленных документов - Согласование документов - Получение актуальных статусов документов - Отслеживание событий по документам с помощью ленты событий - Поиск документов по заданным параметрам - Получение печатных форм для формализованных документов ``` -------------------------------- ### Request and Response Body Examples Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateRevocationRequestXml Provides examples for the request and response bodies when using the GenerateRevocationRequestXml (V2) API endpoint. ```JSON { "Comment": "Текстовый комментарий", "Signer": { "SignerDetails": { "Surname": "Иванов", "FirstName": "Иван", "Patronymic": "Иванович", "JobTitle": "Сотрудник", "Inn": "7713964071" } } } ``` -------------------------------- ### GetDepartment SDK Example (C#) Source: https://developer.kontur.ru/docs/diadoc-api/http/Departments/GetDepartment Example of using the GetDepartmentByFullId SDK method in C# to retrieve department information. ```C# var department = api.GetDepartmentByFullId(token, boxId, departmentId); ``` -------------------------------- ### Create Employee Example using C# SDK Source: https://developer.kontur.ru/docs/diadoc-api/http/CreateEmployee Demonstrates how to use the C# SDK to create an employee in Diadoc. The example shows the instantiation of the `api.CreateEmployee` method with necessary parameters like token, boxId, and the employee creation details, including credentials, position, and permissions. ```C# var employee=api.CreateEmployee( token, boxId, new EmployeeToCreate { Credentials=new EmployeeToCreateCredentials { Login=new EmployeeToCreateByLogin { Login="email@example.com", FullName=new FullName { FirstName="Иван", MiddleName="Иванович", LastName="Иванов" } } }, Position="Бухгалтер", Permissions=new EmployeePermissions { UserDepartmentId="15d57c9b-645d-4710-85fa-b166e2cfcfc8", IsAdministrator=false, DocumentAccessLevel=DocumentAccessLevel.DepartmentAndSubdepartments, Actions= { new EmployeeAction{Name="CreateDocuments",IsAllowed=true}, new EmployeeAction{Name="DeleteRestoreDocuments",IsAllowed=true}, new EmployeeAction{Name="SignDocuments",IsAllowed=true}, new EmployeeAction{Name="AddResolutions",IsAllowed=false}, new EmployeeAction{Name="RequestResolutions",IsAllowed=false}, new EmployeeAction{Name="ManageCounteragents",IsAllowed=true} } } }); ``` -------------------------------- ### SDK Диадока и готовые решения Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/integrationChoise Готовые решения для упрощения интеграции с HTTP API Диадока. Включают Диадок.Коннектор, SDK на различных языках (C#, Java, C++), модули для 1С и SAP, а также внешнюю COM-компоненту. ```ru Готовые интеграционные решения: - Диадок.Коннектор: Облачное решение для интеграции с учетными системами. - SDK Диадока: Набор инструментов для разработки клиентских приложений. - Языки: C#, Java, C++ (не поддерживается с 01.01.2024). - Клиентская библиотека .NET/COM для стека Microsoft. - 1С модуль: Для стыковки 1С-решений с Диадоком. - Внешняя компонента: Библиотека на C++ для интеграции через COM-интерфейс. - SAP модуль: Комплекс Контур-ERP для SAP. ``` -------------------------------- ### UpdateEmployee HTTP Response Body Example Source: https://developer.kontur.ru/docs/diadoc-api/http/UpdateEmployee Example JSON response body after successfully updating an employee using the UpdateEmployee API. ```json { "User":{ "UserId":"4b5a02e7-1b9a-4d97-8dc7-1c7eed1ccbfc", "Login":"email@example.com", "FullName":{ "LastName":"Иванов", "FirstName":"Иван", "MiddleName":"Иванович" }, "IsRegistered":true }, "Permissions":{ "UserDepartmentId":"32cb2cd3-ed3a-403a-b220-7dfd59c757db", "IsAdministrator":false, "DocumentAccessLevel":"SelectedDepartments", "SelectedDepartmentIds":[ "b651ed54-04d8-4ca8-99b5-960fba733147", "32cb2cd3-ed3a-403a-b220-7dfd59c757db" ], "Actions":[ { "Name":"CreateDocuments", "IsAllowed":true }, { "Name":"DeleteRestoreDocuments", "IsAllowed":false }, { "Name":"SignDocuments", "IsAllowed":false }, { "Name":"AddResolutions", "IsAllowed":false }, { "Name":"RequestResolutions", "IsAllowed":true }, { "Name":"ManageCounteragents", "IsAllowed":false } ], "AuthorizationPermission":{ "IsBlocked":false } }, "Position":"Главный бухгалтер", "CanBeInvitedForChat":false, "CreationTimestamp":{ "Ticks":638781280420601889 } } ``` -------------------------------- ### Процесс интеграции с API Диадока Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/integration Пошаговое руководство для начала работы с API Диадока, включая получение ключа разработчика, ознакомление с передачей данных и построение интеграционного решения. ```APIDOC 1. Зарегистрируйте свое интеграционное решение для получения ключа разработчика и идентификатора доступа к API (см. страницу Авторизация). 2. Ознакомьтесь с порядком передачи данных в API Диадока и выберите удобный формат. 3. Постройте интеграционное решение, следуя инструкциям. Используйте пример со страницы Быстрый старт для проверки работоспособности API. ``` -------------------------------- ### Example Response Body (XML) for GenerateInvoiceCorrectionRequestXml Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateInvoiceCorrectionRequestXml Example XML structure for the response of the GenerateInvoiceCorrectionRequestXml V2 API endpoint, detailing invoice correction information. ```xml <ФайлИдФайл="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"СвСистХран="СвДоверЭл-ИдСистХран"/> ``` -------------------------------- ### Полезная информация для разработки с API Диадока Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/integration Список ресурсов, которые могут быть полезны при разработке интеграционных решений с API Диадока, включая документооборот, технические особенности, авторизацию и инструкции. ```APIDOC * Документооборот — описание принципов документооборота в Диадоке. * Технические особенности и передача данных — информация об особенностях API и способах передачи данных. * Авторизация — схема авторизации в API Диадока. * Инструкции — инструкции по работе с API. * Глоссарий — информация о сущностях Диадока и интерфейсах. ``` -------------------------------- ### Работа с актом о выполнении работ/оказании услуг Source: https://developer.kontur.ru/docs/diadoc-api/howto/example_acceptance_certificate Описывает шаги для исполнителя и заказчика при работе с актами о выполнении работ/оказании услуг. Включает генерацию, подписание и отправку титулов. ```APIDOC Исполнитель: * генерирует титул исполнителя, * подписывает и отправляет его заказчику. Заказчик: * получает титул исполнителя, * генерирует и отправляет извещение о получении титула исполнителя — если оно было запрошено исполнителем, * парсит полученный титул — при необходимости, * генерирует титул заказчика — если это предусмотрено видом документооборота, * подписывает и отправляет его исполнителю. ``` -------------------------------- ### Example Request Body for GenerateInvoiceCorrectionRequestXml Source: https://developer.kontur.ru/docs/diadoc-api/http/GenerateInvoiceCorrectionRequestXml Example JSON payload for the GenerateInvoiceCorrectionRequestXml V2 API endpoint, including optional error messages and attachment/message IDs. ```json { "ErrorMessage":"Текстовый комментарий", "MessageId":"{{messageId}}", "AttachmentId":"{{documentId}}", "SignerContent":"PD94bWwgdmVyc2l...LDQudC7Pg=="// содержимое XML-файла с данными подписанта в кодировке Base-64 } ``` -------------------------------- ### DetectCustomPrintForms Response Body Example Source: https://developer.kontur.ru/docs/diadoc-api/http/DetectCustomPrintForms Example of the JSON payload for the DetectCustomPrintForms API response, indicating whether each document has a custom print form. ```JSON { "Items": [ { "DocumentId": { "EntityId": "6c69e5bd-f421-4825-9f31-970182fee429", "MessageId": "b93e4464-b14d-4c30-a8f5-b714c390d0a0" }, "HasCustomPrintForm": false }, { "DocumentId": { "EntityId": "bf16d371-3b18-47dd-b5f1-5a959628d0ef", "MessageId": "f2f388b8-4a96-4ce5-bd85-23fe10131ea4" }, "HasCustomPrintForm": true } ] } ``` -------------------------------- ### Инструменты для упрощения интеграции с API Диадока Source: https://developer.kontur.ru/docs/diadoc-api/howtostart/integration Ресурсы, предоставляемые для упрощения процесса интеграции с API Диадока, такие как SDK с примерами и документация в спецификации OpenAPI. ```APIDOC * SDK с примерами * Документация в спецификации OpenAPI ``` -------------------------------- ### C# SDK: Отправка Уведомления об Уточнении Source: https://developer.kontur.ru/docs/diadoc-api/howto/example_receive_invoice Примеры кода на C# с использованием Diadoc SDK для генерации и отправки уведомления об уточнении счета-фактуры. ```cs // Пример использования SDK для генерации и отправки уведомления об уточнении // Требуется предварительная настройка клиента Diadoc и получение токена доступа. // Шаг 1: Генерация XML уведомления (предполагается, что у вас есть метод для этого) // string correctionXml = GenerateInvoiceCorrectionRequestXml(invoiceData); // Шаг 2: Отправка уведомления с помощью PostMessagePatch // var response = diaDocClient.PostMessagePatch(new PostMessagePatchRequest // { // BoxId = "your-box-id", // Message = new MessageToPost // { // ToBoxId = "target-box-id", // Documents = new Document[] // { // new Document // { // Type = DocumentType.InvoiceCorrectionRequest, // XmlContent = correctionXml // } // } // } // }); // Обработка ответа и возможных ошибок ``` -------------------------------- ### UpdateEmployee HTTP Request Body Example Source: https://developer.kontur.ru/docs/diadoc-api/http/UpdateEmployee Example JSON payload for updating an employee's permissions and position via the UpdateEmployee API. ```json { "Permissions":{ "DocumentAccessLevel":{ "DocumentAccessLevel":"SelectedDepartments" }, "SelectedDepartments":{ "SelectedDepartmentIds":[ "b651ed54-04d8-4ca8-99b5-960fba733147", ] }, }, "Position":{ "Position":"Главный бухгалтер" } } ``` -------------------------------- ### Register API Usage with C# SDK Source: https://developer.kontur.ru/docs/diadoc-api/http/Register Example demonstrating how to use the Register and RegisterConfirm methods of the Diadoc API via the C# SDK, including handling the certificate ownership proof requirement and polling for registration status. ```C# varrequest=newRegistrationRequest { Thumbprint=certificate.Sha1Thumbprint }; varresponse=api.Register(token,request); if(response.RegistrationStatus==RegistrationStatus.CertificateOwnershipProofIsRequired) { api.RegisterConfirm( token, newRegistrationConfirmRequest { Thumbprint=certificate.Sha1Thumbprint, DataToSign=response.DataToSign, Signature=Sign(response.DataToSign,certificate) }); response=api.Register(token,request); } if(response.RegistrationStatus==RegistrationStatus.RegistrationIsInProcess) { Thread.Sleep(TimeSpan.FromSeconds(5)); response=api.Register(token,request); } Console.WriteLine(string.Format("BoxId: {0}, Status: {1}",response.BoxId,response.RegistrationStatus)); ``` -------------------------------- ### UpdateEmployee C# SDK Example Source: https://developer.kontur.ru/docs/diadoc-api/http/UpdateEmployee Example of using the C# SDK to update an employee's access level, selected departments, and position. ```csharp var employee = api.UpdateEmployee( token, boxId, userId, new EmployeeToUpdate { Permissions = new EmployeePermissionsPatch { DocumentAccessLevel = new EmployeeDocumentAccessLevelPatch { DocumentAccessLevel = DocumentAccessLevel.SelectedDepartments }, SelectedDepartments = new EmployeeSelectedDepartmentsPatch { SelectedDepartmentIds = { "b651ed54-04d8-4ca8-99b5-960fba733147" } } }, Position = new EmployeePositionPatch { Position = "Главный бухгалтер" } } ); ``` -------------------------------- ### UpdateSubscriptions Response Example Source: https://developer.kontur.ru/docs/diadoc-api/http/UpdateSubscriptions An example of a successful HTTP response (200 OK) from the UpdateSubscriptions endpoint, showing the updated subscription status for an employee. ```HTTP HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "Subscriptions": [ { "Id": "CounteragentInvitation", "IsSubscribed": "false" }, ... { "Id": "NewIncomingDocuments", "IsSubscribed": "true" }, { "Id": "News", "IsSubscribed": "false" }, ... { "Id": "ChatMessages", "IsSubscribed": "true" } ] } ``` -------------------------------- ### C# SDK: Отправка Уведомления об Уточнении Source: https://developer.kontur.ru/docs/diadoc-api/howto/example_send_invoice Примеры кода на C# с использованием Diadoc SDK для генерации и отправки уведомления об уточнении счета-фактуры. ```cs // Пример использования SDK для генерации и отправки уведомления об уточнении // Требуется предварительная настройка клиента Diadoc и получение токена доступа. // Шаг 1: Генерация XML уведомления (предполагается, что у вас есть метод для этого) // string correctionXml = GenerateInvoiceCorrectionRequestXml(invoiceData); // Шаг 2: Отправка уведомления с помощью PostMessagePatch // var response = diaDocClient.PostMessagePatch(new PostMessagePatchRequest // { // BoxId = "your-box-id", // Message = new MessageToPost // { // ToBoxId = "target-box-id", // Documents = new Document[] // { // new Document // { // Type = DocumentType.InvoiceCorrectionRequest, // XmlContent = correctionXml // } // } // } // }); // Обработка ответа и возможных ошибок ``` -------------------------------- ### C# SDK: Подписание титулов документа Source: https://developer.kontur.ru/docs/diadoc-api/instructions/documents/predefinedtitle Примеры кода на C# для подписи титулов документа в Диадок API. Включает подписание титула отправителя и получение подписи для титула получателя. ```csharp var senderTitleContent = message .Entities .FirstOrDefault(e => e.EntityId == documentId) .Content; var signatureForSenderTitlePatch = new MessagePatchToPost { Signatures = { new DocumentSignature { ParentEntityId = documentId; Signature = crypt.Sign(senderTitleContent.Data, senderCertificateContent) } } }; ``` ```csharp var recipientTitleContent = message .Entities .FirstOrDefault(e => e.EntityId == recipientTitleEntityId) .Content; var signatureForRecipientTitlePatch = new MessagePatchToPost { Signatures = { new DocumentSignature { ParentEntityId = documentId; Signature = crypt.Sign(recipientTitleContent.Data, recipientCertificateContent) } } }; api.PostMessagePatch(authToken, signatureForRecipientTitlePatch); ```