Работа с машиночитаемой доверенностью

Для подписания документов сотрудники и уполномоченные лица организаций должны использовать сертификат физического лица и прикладывать к документу машиночитаемую доверенность (МЧД).

Управление доверенностями

API Диадока предоставляет функциональность для удобной работы с МЧД: вы можете зарегистрировать МЧД и привязать ее к сотруднику, чтобы управлять списком МЧД и выбирать их при подписании документа.

Использовать МЧД через API Диадока можно без регистрации. Но если вы хотите использовать МЧД в веб-интерфейсе Диадока, ее обязательно нужно зарегистрировать.

Зарегистрировать МЧД может администратор ящика организации или сам сотрудник. Для этого нужно:

  • выпустить доверенность в сервисе Контур.Доверенность по инструкции: Диадок не выпускает МЧД;

  • получить информацию о МЧД для ее добавления в Диадок: XML-файл МЧД + ЭП руководителя или регистрационный номер МЧД + ИНН доверителя;

  • зарегистрировать МЧД в Диадоке;

После этого можно:

Кроме этого Диадок позволяет управлять уже привязанными к сотруднику доверенностями:

  • получить список МЧД, привязанных к сотруднику,

  • отвязать МЧД от сотрудника,

  • изменить для МЧД настройку «по умолчанию».

Регистрация МЧД

Чтобы зарегистрировать МЧД, вызовите метод RegisterPowerOfAttorney. Метод вернет идентификатор задачи taskId.

Передайте идентификатор taskId в метод RegisterPowerOfAttorneyResult, чтобы узнать результат регистрации.

После регистрации МЧД можно привязать ее к сотруднику.

Работа с МЧД сотрудника

К каждому сотруднику можно привязать до 100 действующих или не вступивших в силу МЧД. Любую из них можно использовать как доверенность по умолчанию. Пользователь в любой момент может сделать доверенностью по умолчанию другую МЧД или убрать доверенность по умолчанию совсем. Любую МЧД, уже привязанную к сотруднику, можно отвязать.

Работать с МЧД сотрудника можно с помощью методов:

Предварительная проверка МЧД

Перед отправкой документа можно проверить МЧД:

  • соответствует ли МЧД установленному формату,

  • действительна ли подпись, которой подписана МЧД,

  • соответствует ли МЧД сертификату, которым будет подписан документ,

  • действительна ли МЧД: т.е. не просрочена, уже начала свое действие, не отозвана — проверяется в тех случаях, когда за отведенное время удастся получить информацию о статусе МЧД от сервиса ФНС.

Для предварительной проверки МЧД используйте метод PrevalidatePowerOfAttorney.

Проверка полномочий МЧД

При отправке или после получения документа с МЧД вы можете проверить, соответствуют ли полномочия в МЧД этому документу. Так вы сможете убедиться в корректности подписания документа сертификатом физического лица с указанной МЧД.

Посмотреть полномочия в МЧД можно в поле PermissionsInfo структуры PowerOfAttorney, полученной следующими способами:

Формирование документа с МЧД

При формировании формализованного документа нужно учесть данные об организации в блоке Подписант. Для этого вместе с сертификатом физического лица укажите данные МЧД:

Отправка документа с МЧД и ответное действие

Алгоритм заполнения МЧД при отправке первичного документа и при выполнении ответного действия с документом идентичны.

Отправить документ с МЧД или выполнить ответное действие можно с помощью методов:

Эти методы принимают на вход соответственно структуры SignedContent, DocumentSignature и DocumentSenderSignature, которые хранят информацию о МЧД внутри структуры PowerOfAttorneyToPost.

Передать МЧД можно одним из следующих способов:

  • Файлом в составе пакета документов. Этот способ может быть применен, например, если МЧД хранится в другой системе и не зарегистрирована в реестре ФНС.

  • С помощью реквизитов. Этот способ позволяет передать МЧД в составе пакета документов и при этом не прикладывать ее физически. Вы указываете реквизиты МЧД или выбираете МЧД по умолчанию. Тогда при формировании архива документооборота Диадок сам скачает файл МЧД из реестра ФНС.

  • В содержимом документа. Этот способ позволяет указать МЧД при генерации документа в XML-файле титула. Он применим только для обновленных форматов документов (см. в таблице ниже).

Для каждого способа передачи МЧД существуют свои правила заполнения структуры PowerOfAttorneyToPost и условия их применения.

Способы передачи МЧД

Способ передачи

Как указать МЧД

Условия

Файлом в составе пакета документов

Передать в поле Contents файл МЧД и подпись

Наличие файла МЧД и подписи

Выбрать UseDefault или заполнить FullId с признаком SendAsFile

Наличие у сотрудника доверенности по умолчанию или указанной доверенности

С помощью реквизитов

Выбрать UseDefault или заполнить FullId

В содержимом документа

Выбрать UseDocumentContent

Заполненный блок c МЧД в XML-файле титула, сформированного методом GenerateTitleXml. Применимо только для акта сверки формата приказа №405, акта о приемке выполненных работ КС-2 формата приказа №691, документов формата приказа №970, счета на оплату и счета-оферты формата приказа №29.

Приложить МЧД к документу можно только одним из вышеперечисленных способом. Если вы указали МЧД сразу несколькими способами, то с документом будет отправлена та, которая выбрана с помощью параметров структуры PowerOfAttorneyToPost: они взаимоисключают друг друга.

Если МЧД была выпущена в порядке передоверия, то вы можете указать ее следующими способами:

  • Передайте конечную МЧД файлом, с помощью реквизитов или в содержимом документа — так же, как и обычную МЧД. В этом случае Диадок попытается получить цепочку передоверия, и если это удалось, то в архиве документооборота будут хранится все МЧД цепочки. При отправке такого документа в роуминг с ним передаются данные всей цепочки передоверия.

  • Передайте всю цепочку передоверия МЧД в содержимом документа — в поле PowerOfAttorneyToPost.Contents. О том, как получить переданную цепочку файлов МЧД, написано в разделе Получение цепочки передоверия МЧД.

Получение документа с МЧД

Проверка приложенности МЧД к подписи

Чтобы при обработке входящих документов определить, к каким документам должна быть приложена МЧД, а к каким — нет, вы можете получить информацию о статусе приложенности МЧД к подписи. Например, если документ был подписан сертификатом ФЛ, то к подписи такого документа обязательно должна быть приложена МЧД.

Информация о статусе приложенности МЧД к подписи хранится в структуре PowerOfAttorneyAttachmentStatus и возвращается в поле PowerOfAttorneyAttachmentStatus в структурах Entity и SignatureV3.

Кроме этого вы можете узнать тип владельца сертификата — он возвращается в поле CertificateSubjectType структуры SignatureInfo, полученной методом GetSignatureInfo.

Получение содержимого МЧД

Если при отправке документа МЧД была приложена к нему файлом или указана с помощью реквизитов, то вы можете получить файл такой МЧД из отправленного сообщения. Для этого используйте метод GetPowerOfAttorneyContent (V2).

Получение цепочки передоверия МЧД

Если МЧД, приложенная к документу, была выпущена в порядке передоверия, то вы можете ее получить из отправленного сообщения методом GetPowerOfAttorneyInfo. Цепочка передоверия вернется в поле DelegationInfo структуры PowerOfAttorney.

В случае, если Диадок не смог сформировать всю цепочку передоверия, вы сможете получить информацию только о первоначальной (корневой) доверенности и ее доверителях: данные доверителей будут храниться в поле DelegationInfo.RootIssuers структуры PowerOfAttorney.

Получение МЧД в сообщении

Чтобы получить информацию о МЧД в сообщении, используйте методы:

Они возвращают информацию о МЧД и ее статусе внутри структуры Message в поле Entities.PowerOfAttorneyInfo, представленном структурой PowerOfAttorneyInfo.

Получение МЧД в документах

Чтобы получить информацию о МЧД в документах, используйте методы:

Они возвращают информацию об общем (сводном) статусе по всем МЧД для всех сущностей документа внутри структуры Document в поле DocflowStatus.PowerOfAttorneyValidationStatus, представленном структурой PowerOfAttorneyValidationStatus.

Чтобы получить подробную информацию о МЧД, отправленной с документом, используйте метод GetPowerOfAttorneyInfo. Он вернет данные в виде структуры PowerOfAttorney.

Получение МЧД в docflow

Чтобы получить информацию о МЧД в docflow, используйте методы:

Они возвращают:

  • информацию об общем (сводном) статусе по всем МЧД для всех сущностей документа внутри структуры DocflowStatusV3 в поле PowerOfAttorneyValidationStatus, представленном структурой PowerOfAttorneyValidationStatus;

  • информацию о МЧД и ее статусе из подписи под документом внутри структуры SignatureV3 в поле PowerOfAttorney, представленном структурой SignaturePowerOfAttorney;

  • статус приложенности машиночитаемой доверенности к подписи внутри структуры SignatureV3 в поле PowerOfAttorneyAttachmentStatus, представленном структурой PowerOfAttorneyAttachmentStatus.

Кроме этого, используя значение поля DocumentWithDocflowV3.DocumentId вы можете с помощью методов получения МЧД в документах получить подробную информацию о МЧД в виде структуры PowerOfAttorney.