Уровни подписей
Уровень Усовершенствованный (AES) поддерживает подписание только в формате PAdES. Значения
signature_format xades и cades отклоняются для AES с ошибкой signature_format_not_supported. Проверьте параметр signature_availability в сценарии перед сохранением шага AES: пока aes имеет значение false, сохранение нового шага возвращает ошибку 400 с кодом aes_not_available.
Как это работает
1
Для уровня Усовершенствованный (AES) сценарий сначала верифицирует подписанта
На уровне Усовершенствованный (AES) шаг подписания выполняется после шагов, устанавливающих личность подписанта: Верификации личности, а также Проверки электронной почты или Проверки телефона для контакта, на который отправляется код. См. раздел Перед началом работы. Уровень Простой не требует предварительных шагов.
2
Didit подготавливает документы
Когда подписант доходит до этого шага, Didit копирует документы и их поля в сессию и фиксирует SHA-256 каждого документа. Последующие изменения в сценарии не могут изменить то, что видит этот подписант.
3
Подписант просматривает каждый документ
Если в документе есть поля, подписант последовательно переходит от поля к полю. Он создаёт подпись один раз, и она применяется ко всем полям подписи и инициалов, после чего заполняет текстовые поля и чекбоксы. Значения, которые Didit получает из подтверждённой личности, сессии или вашей системы, уже подставлены на странице. Если полей в документе нет, пользователь просто читает его и даёт своё согласие.
4
Для уровня Усовершенствованный (AES) подписант подтверждает подписание кодом
Если в каком-либо документе есть поля, подписант сначала соглашается подписать документы в электронном виде. На уровне Усовершенствованный (AES) Didit затем отправляет шестизначный код на электронную почту или телефон, подтверждённые ранее в сессии, и его ввод авторизует подписание каждого документа на этом шаге. На уровне Простой код не требуется: авторизацией подписи служит само согласие.
5
Didit подписывает и заверяет документы
Didit проставляет дату подписания, вносит значение каждого поля в каждый PDF-файл и добавляет страницу с подтверждающими данными. На уровне Усовершенствованный (AES) затем накладываются подпись PAdES и метка времени, поэтому подпись охватывает всё содержимое страницы. На уровне Простой итоговый файл представляет собой PDF со страницей подтверждающих данных без цифровой подписи, печати и метки времени.
6
Вы получаете результаты
Webhook-и решения и сессии содержат массив
signatures[] с данными о подписанте, подтверждении, сертификате, метке времени, хешах каждого документа и значениях всех полей. Вы скачиваете подписанные PDF-файлы и PDF с подтверждающими данными, а Didit может отправить копию подписанту по электронной почте.Перед началом работы
На уровне Advanced (AES) подписант должен пройти верификацию перед подписанием. Didit берёт его имя и контактные данные только из подтверждённых записей самой сессии, но никогда из того, что вводите вы или подписант. Для уровня Simple ничего из этого не требуется: здесь не предусмотрены верификация личности, проверка электронной почты и проверка телефона, а также отсутствует код, и он недопустим для подписантов KYB. Для Проверки пользователей (KYC) добавьте эти шаги перед шагом «Электронная подпись» в сценарии:- Верификация личности должна быть одобрена и содержать читаемое имя. Без этого шаг фиксирует
SIGNATURE_IDENTITY_NOT_VERIFIED. - Проверка электронной почты, если код отправляется по электронной почте (по умолчанию), или Проверка телефона, если код отправляется по SMS. Код отправляется только на контакт, подтверждённый в той же сессии.
- Если в сценарии также есть Проверка живости, она должна быть одобрена.
В шаге KYB может быть от 1 до 20 подписантов, и к моменту подписания каждый из них должен иметь одобренный KYC. Каждый из них подписывает свой экземпляр документов и подтверждает подписание кодом, отправленным на контакт, проверенный в его собственной KYC-сессии. Имя, заявленное для ключевого лица, должно совпадать с его подтверждённым именем без учёта регистра и пробелов, иначе шаг фиксирует
SIGNATURE_NAME_MISMATCH. Шаг завершается, когда каждый подписант подпишет документы или отклонит подписание.
Документы
Откуда берутся документы
Параметрsignature_documents_source определяет, откуда шаг получает свои документы:
Документы на уровне сессии позволяют человеку подписать договор, в котором его имя, сумма или условия уже заполнены вашей системой.
Поддерживаемые файлы
Когда вы загружаете документ Word, Didit конвертирует его в PDF в процессе загрузки, максимум за 60 секунд. Подписант видит и подписывает именно сконвертированные страницы, поэтому проверьте их перед размещением полей: переносы строк могут незначительно отличаться от Word. Файл Word и его PDF относятся к одному и тому же документу и удаляются вместе с ним. PDF-файл подтверждения фиксирует факт конвертации и SHA-256 обоих файлов.
Didit отклоняет файл Word с ошибкой
signature_document_not_supported и указанием reason, если то, что подлежит подписанию, неоднозначно: файл содержит макросы (macros), непринятые исправления (tracked_changes), ссылки на внешний контент (external_links) или внедренные объекты (embedded_objects). Примите или отклоните исправления перед загрузкой, чтобы PDF содержал согласованный текст.
Файл, который не удается сконвертировать, отклоняется с ошибкой signature_document_conversion_failed и одной из следующих причин:
Поля на документе
Поля превращают документ в шаблон, который заполняет подписант, подобно подготовке конверта в настольном инструменте для подписания. Документ без полей использует более простой сценарий: подписант читает его и соглашается.
В этой версии средство выбора даты отсутствует. Используйте поле
text для даты, которую вводит подписант.
У поля есть следующие свойства:
role_not_used. Для каждой роли, для которой в документе есть поля, в документе должно быть как минимум одно поле signature или initials, иначе версию сценария нельзя будет опубликовать (signature_field_missing).
Валидация
validation применяется к полям text:
kind:any;letters(буквы в любой системе письма, пробелы, дефисы и апострофы);number(цифры с необязательным десятичным разделителем);emailилиpattern.min_length: от0доmax_length.max_length: от1до500. По умолчанию120.pattern: обязательно приkind: "pattern". Регулярное выражение длиной до 200 символов, которому должно соответствовать значение целиком. Упреждающие и ретроспективные проверки и обратные ссылки не поддерживаются.message: до 120 символов, отображается вместо стандартной ошибки.
Предзаполненные значения
prefill указывает источник значения поля:
Поле
data обязательно должно содержать prefill. Поле full_name всегда использует identity.full_name, поле email использует contact.email, и у поля text оно тоже может быть. Значения полей data, full_name и подтверждённого email фиксируются в момент, когда подписант начинает подписание: последующие изменения сессии на них не влияют. Предзаполненное поле text или email доступно только для чтения, если не включён параметр editable_when_prefilled.
Если у источника обязательного поля на тот момент нет значения (например, в сессии отсутствует адрес), поле остаётся пустым, и подписант всё равно может поставить подпись. Предупреждение не выдаётся, а причина указывается в value_unavailable_reason в отчёте.
Настройка в консоли
- Перейдите в раздел Рабочие процессы, откройте сценарий и добавьте шаг Электронная подпись после шагов, проверяющих подписанта.
- В разделе Документы нажмите Загрузить, чтобы добавить файлы PDF или Word, и перетащите их в том порядке, в котором их увидит подписант. Файлы Word конвертируются в PDF: проверьте сконвертированные страницы перед размещением полей. Кнопка Заменить заменяет файл документа с сохранением полей, кроме тех, что находились на страницах, отсутствующих в новом файле.
- В блоке Разместите поля в документах выберите Открыть редактор. Перетащите поле из палитры на страницу или выберите его и кликните в нужном месте, затем переместите и измените размер. Для каждого поля укажите Кто заполняет, его метку, обязательно ли оно (Обязательно), какие значения принимает, откуда берётся его значение и его API-ключ (
keyполя). Предпросмотр для подписанта показывает документ так, как его видит подписант на телефоне или компьютере. Редактор сохраняет изменения автоматически (Сохранено в черновик) и показывает список того, что нужно исправить, перед нажатием кнопки Готово. - В разделе Документы выберите источник документов: Этот рабочий процесс, Каждый сеанс или И то и другое. Для документов без полей укажите, должен ли подписант Прочитать до конца перед подписанием и дать Отдельное согласие для каждого документа.
- В разделе Подпись выберите Подписант, Уровень (Простой по умолчанию или Усовершенствованная (AES); Квалифицированная (QES) отображается со статусом Скоро), Формат и способ отправки кода (Одноразовый код через).
- В разделе Правила настройте, как каждое предупреждение влияет на решение.
- В разделе Дополнительно выберите, нужно ли Отправить подписанную копию по электронной почте и Добавить страницу доказательств, а также сколько дней ссылка на подписание остаётся действительной. Вы также можете настроить пользовательские правила статусов.
- Сохраните сценарий.
Процесс подписания
Шаг подписания работает на размещённой странице верификации, в Web SDK и в нативных SDK, как на десктопе, так и на смартфонах. Вам не нужно создавать собственный интерфейс подписания.- Введение. Подписант видит документы, которые ему предстоит подписать.
- Каждый документ по порядку. Если в документе есть поля, подписант проходит по ним в порядке
position. Первое поле подписи или инициалов открывает панель, где он принимает подпись. Необязательные поля отмечены как Необязательно. Значения, предварительно заполненные Didit, отображаются на странице с иконкой замка и не являются шагами ввода. Нажатие на поле на странице перемещает к нему. На телефоне отображается по одному полю за раз в панели, которая фиксируется над клавиатурой. На экранах шириной от 1200 px страница отображается рядом со списком полей. Если подписант пытается завершить работу с документом, оставив обязательное поле пустым, отображается количество оставшихся полей и происходит переход к первому из них. Документ без полей просто прочитывается и согласуется в соответствии с вашей конфигурацией. - Проверка. Подписант снова просматривает документы и, если в каком-либо из них есть поля, соглашается подписать их в электронном виде.
- Код (только для Advanced (AES)). Подписант запрашивает код. Код действует 5 минут, новый код можно отправить через 60 секунд, а всего подписанту доступно до 5 кодов и 3 неверные попытки. После исчерпания лимита фиксируется
SIGNATURE_OTP_FAILED. На уровне Simple код отсутствует: подписант переходит сразу от проверки к подписанию. - Подписано. После подписания подписант может скачать подписанные документы. Если вы включили эту опцию, Didit также отправит ему копию по электронной почте.
- Отклонение. Подписант может отказаться от подписания вместо того, чтобы подписать документы. В этом случае фиксируется
SIGNATURE_DECLINED. Отклонённое подписание можно возобновить, пока действительна ссылка на подписание, поэтому подписант всё ещё может подписать документ, если передумает.
signature_link_validity_days (от 1 до 30, по умолчанию 7), считая с момента создания сессии. Сессия остаётся открытой как минимум на этот срок.
В нативных SDK шаг подписания отображается начиная с релиза, в котором он был добавлен; этот релиз будет указан в обзоре нативных SDK после выхода. Для документов с полями требуется релиз с поддержкой полей: более старые релизы не могут их отобразить, и вместо этого на шаге появится ошибка. Документы без полей работают в любом релизе с шагом подписания. Пока в вашем приложении не используется релиз с поддержкой функций вашего сценария, направляйте пользователей на размещённую страницу или в Web SDK.
Выбор подписи
Подписант один раз выбирает свою подпись и инициалы в единой панели при первом запросе любого из этих элементов в документе:- Введено: подтверждённое имя в выбранном рукописном стиле с пометкой Из вашего удостоверения личности. Подписант не может ввести другое имя. Инициалы формируются автоматически из первых букв этого имени.
- Нарисовано: подпись и инициалы рисуются пальцем или мышью.
Результаты
Результат каждого подписанта представляет собой элемент массиваsignatures[] в решении по сессии и в объекте decision в webhook сессии. Отдельного webhook для подписи нет: событие сессии status.updated сообщает, когда следует запросить решение.
Вы получаете подписанный PDF каждого документа, доказательный PDF для каждого подписанта и хэш SHA-256 каждого исходного и подписанного файла, что позволяет в дальнейшем доказать неизменность данных. Для документов с полями вы также получаете значение каждого поля, источник его заполнения и время ввода, а также выбранные подпись и инициалы и время, когда подписант дал согласие на электронное подписание. Подробное описание всех полей, загрузок и повторной проверки подписи см. в отчёте об электронной подписи.
В панели управления на вкладке сессии Подпись отображаются документы, затем блок Поля с предварительным просмотром каждой страницы, выбранные подпись и инициалы, а также значение, время и источник каждого поля. PDF-отчёт содержит раздел подписи, а также страницу E-signature · fields, если в документах есть поля.
Цены
Электронная подпись стоит $0.10 за подписанную сессию и входит в ваш бесплатный кредит независимо от количества документов в рамках одного подписания и уровня подписи (Simple или Advanced (AES)). За подпись, которая была отклонена, завершилась ошибкой или истекла, плата не взимается. Qualified (QES) представляет собой дополнительную опцию, которая пока недоступна и не имеет установленной цены.Удаление данных подписи
При удалении сессии связанные с ней данные подписи удаляются вместе с ней: переданные в сессии документы и их исходные файлы Word, копии, подготовленные для каждого подписанта, подписанные PDF, доказательные PDF, изображения выбранной подписи и инициалов, а также значения всех полей. Ссылки на их скачивание перестают действовать. То же самое происходит при удалении сессии по окончании установленного периода хранения данных. Удаление необратимо, поэтому заранее скачайте всё, что вам необходимо сохранить.- Подписанные документы Верификации бизнеса (KYB) относятся к сессии компании. При удалении этой сессии удаляются и они.
- При удалении документа из сценария удаляется сам документ, его поля и исходный файл Word. Подписант, который уже начал процесс подписания, сохраняет показанную ему копию в рамках своей сессии до тех пор, пока вы не удалите эту сессию. Удаляйте документы только из тех сценариев, в которых нет сессий, ожидающих подписания.
- Копия, которую Didit уже отправил подписанту по электронной почте, находится в его почтовом ящике и не затрагивается удалением.
См. также
- Отчёт об электронной подписи:
signatures[], подписанный PDF, доказательный PDF и файлы для скачивания. - Предупреждения электронной подписи: каждое предупреждение и правило, управляющее им.
- Создание сессии: передача документов, полей и значений полей для каждой сессии.
- Конфигурация функций сценария: все настройки шага.