Контур.Диадок API: Подписать входящий документ

Сценарий из mcp-everything. Актуально на 2026-10-25.

Для двусторонних документов (УПД, акт) получатель формирует и подписывает свой титул.

  1. Сгенерируй титул получателя: POST /GenerateTitleXml с titleIndex титула получателя, letterId (сообщение) и documentId (документ отправителя).
  2. Подпиши XML своей КЭП.
  3. Отправь дополнение: POST /V3/PostMessagePatch с BoxId, MessageId и RecipientTitles[] (ParentEntityId — титул отправителя, SignedContent).
curl -X POST "https://diadoc-api.kontur.ru/V3/PostMessagePatch" \
  -H "Authorization: DiadocAuth ddauth_api_client_id=$CLIENT_ID, ddauth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BoxId": "'"$BOX_ID"'",
    "MessageId": "'"$MESSAGE_ID"'",
    "RecipientTitles": [{
      "ParentEntityId": "'"$ENTITY_ID"'",
      "SignedContent": {"Content": "'"$XML_BASE64"'", "Signature": "'"$SIGNATURE_BASE64"'"}
    }]
  }'

Базовые URL

Авторизация

Тип: Другое

Нужны ключ разработчика (выдаётся по заявке на https://www.diadoc.ru/integrations/api) и авторизационный токен пользователя. Оба передаются в заголовке по схеме DiadocAuth:

Токен выдаёт POST /V3/Authenticate: по логину и паролю (type=password, JSON с login и password), по сертификату (type=certificate, ответ расшифровывается закрытым ключом и подтверждается через /V3/AuthenticateConfirm) или по auth.sid (type=sid).

Authorization: DiadocAuth ddauth_api_client_id={{client_id}}, ddauth_token={{auth_token}}

Методы сценария

POST /GenerateTitleXml — Генерация XML титула

Тело — упрощённый XML UserDataXml по XSD-схеме контракта типа документа.

Документация: https://developer.kontur.ru/doc/diadoc.api/method?type=post&path=%2FGenerateTitleXml

Параметр Где Тип Обяз. Описание
boxId query string да Ящик (GUID)
documentTypeNamedId query string да Тип документа из GetDocumentTypes
documentFunction query string да Функция документа
documentVersion query string да Версия документа
titleIndex query integer да Номер титула
letterId query string нет Сообщение с титулом отправителя (для титула получателя)
documentId query string нет Документ с титулом отправителя
editingSettingId query string нет Настройка редактирования
disableValidation query boolean нет Отключить проверку по XSD

POST /V3/PostMessagePatch — Дополнение к сообщению

Подписи, титулы получателя, извещения, отказы, аннулирование, согласование.

Документация: https://developer.kontur.ru/doc/diadoc.api/method?type=post&path=%2FV3%2FPostMessagePatch

Параметр Где Тип Обяз. Описание
operationId query string нет ID операции для идемпотентности
BoxId body string да Ящик с исходным сообщением
MessageId body string да Исходное сообщение
RecipientTitles[].ParentEntityId body string нет Титул отправителя, к которому относится титул получателя
RecipientTitles[].SignedContent body object нет Титул получателя и подпись
Signatures body array нет Подписи под документами (ParentEntityId, Signature)
XmlSignatureRejections body array нет Отказы в подписи
RevocationRequests body array нет Предложения об аннулировании

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://developer.kontur.ru/doc/diadoc-api/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/diadoc.md