signatures[] в следующих местах:
GET /v3/session/{sessionId}/decision/для сессий «Проверка пользователей» (KYC) и «Верификация бизнеса» (KYB).decisionwebhook-ов сессий V3, отправляемых, когда сессия переходит в статусApproved,Declined,In ReviewилиAbandoned.- на вкладке Подпись сессии в консоли и в разделе подписи PDF-отчёта.
signatures присутствует в решении только тогда, когда в сценарии есть шаг «Электронная подпись». Это пустой массив до тех пор, пока подписант не дойдет до этого шага. Шаг KYC содержит один элемент; шаг KYB содержит по одному элементу для каждого подписанта.
Пример
Объект подписи
Никогда не считайте, что подписант поставил подпись, пока
status не станет signed. Для усиленной подписи (AES) значение null в полях certificate, timestamp или signed_file означает, что подпись ещё не поставлена. У подписанной простой подписи (Simple) есть signed_file, но поля certificate и timestamp всегда имеют значение null.
Подписант
Документы
Поля
Каждый элементdocuments[].fields[] представляет собой одно поле документа со значением в копии документа для этого подписанта:
Скачивание подписанных документов
Используйте пути изsigned_file и evidence_file с вашим API-ключом. Каждый маршрут возвращает сам PDF-файл.
Перед отправкой ответа Didit сверяет сохранённый файл с записанным значением SHA-256. Если они различаются, маршруты подписанного PDF и доказательств возвращают
409, а маршрут изображения возвращает 400, в каждом случае с signature_document_changed. Всегда передавайте signature_id в маршрут доказательств, когда в шаге KYB участвуют несколько подписантов.
Подписанный PDF
Подписанный PDF содержит по порядку:- Страницы документа, показанные подписанту, со всеми проставленными значениями полей там, где вы их разместили.
- Страницу с доказательствами, если вы не отключили
signature_evidence_page. - Только для Advanced (AES): подпись PAdES с меткой времени RFC 3161, выпущенной Didit, и данными об отзыве сертификата, необходимыми для её проверки в будущем. Файл Simple PDF заканчивается после страницы с доказательствами и не содержит цифровой подписи, печати или метки времени.
Signed with Didit ·, за которой следуют первые 8 символов id подписи.
Didit добавляет значения полей, страницу с доказательствами и подпись после байтов документа, показанного подписанту. Этот документ является точным префиксом подписанного файла, поэтому sha256_original по-прежнему можно сверять с подписанным PDF.
PDF с доказательствами
PDF с доказательствами фиксирует для одного подписанта:- Уровень и формат.
- Имя подписанта, его полномочия на подписание и, для KYB, компанию.
- Сессию проверки личности (только для Advanced (AES)).
- Подтверждение: канал, маскированный адрес назначения и время (только для Advanced (AES)).
- IP-адрес подписанта.
- Каждый документ: название, количество страниц и SHA-256 оригинала. Для документа Word: имя файла Word и его SHA-256, версию конвертера и SHA-256 файла PDF.
- Выбранную подпись: введённую текстом (с её рукописным стилем) или нарисованную, время её выбора, а также изображения подписи и инициалов.
- Каждое поле по документам: его метку, страницу и тип, значение (изображение для подписи или инициалов), источник значения (например, Введено подписантом, Проверенное удостоверение личности или Ваш API), время заполнения (UTC) и IP-адрес подписанта в тот момент для значения, введённого им.
- Финальное согласие: текст, с которым подписант согласился на экране проверки, и время согласия.
- SHA-256 каждого подписанного файла и, для Advanced (AES), сертификат (кому выдан, кем выдан, серийный номер и срок действия) и метку времени.
Проверить подпись снова
POST /v3/session/{session_id}/signatures/{node_id}/validate/ повторно считывает каждый подписанный PDF шага и проверяет его SHA-256. Для усиленной подписи (AES) он также валидирует подпись PAdES, её сертификат, данные об отзыве и метку времени. Простая подпись не содержит цифровой подписи, поэтому проверяется только целостность файла. Запрос сохраняет результат в validation и возвращает обновлённый массив signatures[]. Передайте signature_id, чтобы проверить одного подписанта. Для этого требуется разрешение write:sessions, а в консоли за это отвечает кнопка Проверить снова. Сохранённый подписанный PDF, который больше не совпадает со своим sha256_signed, возвращает ошибку 400 с кодом signature_document_changed.
До тех пор, пока документы не подписаны, validation имеет значение null. Если Didit не может подтвердить результат подписания, validation принимает значение { "valid": null, "reason": "signature_provider_outcome_unknown", "checked_at" }, а status остаётся в значении signing, пока ситуация не будет разрешена: считайте документ неподписанным.
В PDF-отчёте
В PDF-отчёте формируется раздел подписи с информацией о подписанте, подтверждении, сертификате, метке времени и документах с их хешами. Если документы содержат поля, следом идёт страница Электронная подпись · поля с одной таблицей на каждый документ: значение каждого поля, изображения подписи и инициалов, время и источники. Раздел подписи располагается после верификации банка в отчёте KYC и после документов в отчёте KYB. Передайтеpages=signature, чтобы напечатать только этот раздел.