> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API электронной подписи: подписание документов после KYC

> Подписывайте PDF и Word с Didit в процессе верификации физлиц и представителей бизнеса на простом или усиленном (AES) уровне.

Электронная подпись позволяет пользователю подписывать ваши документы в рамках единого сценария. Он просматривает каждый документ, ставит свою подпись, инициалы и указывает любые запрашиваемые вами данные, а на уровне Усовершенствованный (AES) подтверждает подписание одноразовым кодом, отправленным на подтверждённый ранее адрес электронной почты или номер телефона. Didit возвращает каждый документ подписанным, а также отчёт в формате PDF с подтверждающими данными о том, кто и как подписал документ.Электронная подпись имеет три уровня. **Простой** используется по умолчанию и не требует верификации личности, проверки электронной почты или телефона. **Усовершенствованный (AES)** требует одобренной верификации личности, подтверждённой электронной почты или телефона и связывает подпись с подтверждённой личностью. **Квалифицированный (QES)** является дополнительной опцией, которая пока недоступна. См. раздел [Уровни подписей](#уровни-подписей).Функция работает как для Проверки пользователей (KYC), где подписывает верифицированное лицо, так и для Верификации бизнеса (KYB), где от имени компании подписывают её законные представители или ключевые лица.

Промпт для интеграции электронной подписи
        Скопировать промпт в буфер обмена



      
      

\<pre>

\`Goal:
Add Didit E-signature to a verification workflow: the verified person (KYC) or a company's representatives (KYB) sign PDF or Word documents inside the Didit flow, and your backend receives the signed PDFs and the evidence.

Delivery mode:
E-signature is a workflow step (feature SIGNATURE). There is no standalone signing API: the signer signs inside the hosted Didit flow, the Web SDK or a native SDK.

Prerequisites in the workflow (Advanced (AES) level only; the default Simple level needs no earlier step and no code):
\- KYC: an ID Verification step before the signature step (the signer's identity must be Approved), plus Email Verification (email codes, the default) or Phone Verification (SMS codes) so the code goes to a verified contact. If the workflow has Liveness, it must be Approved too.
\- KYB: a Key People step whose people complete their own KYC with the same prerequisites. signature_signer "legal_representative" picks the key people with the role representative or authorized_signatory; "key_people" picks every eligible key person (1 to 20 signers). For these KYB signers always set signature_level to "aes": "simple" is refused with signature_simple_requires_verified_person, so the workflow cannot be saved.

Steps:
1\. Add the E-signature step to the workflow in the Business Console (or POST /v3/workflows/ with {"feature": "SIGNATURE", "config": {...}}). Upload the documents in the console, or set signature_documents_source to "session" (or "both") to send them per session.
2\. Optional: place fields on each document: signature, initials, full_name, date_signed, text, checkbox, email and read-only data. Workflow documents get their fields in the console's template editor. Session documents carry them in sign.documents[].fields, placed by page and position or by anchor text. Every field has a key; a field with prefill "api.<key>" takes its value from sign.field_values.
3\. Create a session. For per-session documents, send sign.documents with base64 content:

curl -X POST 'https://verification.didit.me/v3/session/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"workflow_id": "YOUR_WORKFLOW_ID",
"vendor_data": "user-1234",
"sign": {
  "documents": [
    \{
      "title": "Account agreement",
      "file_name": "agreement.pdf",
      "content_base64": "<base64 of the PDF>",
      "fields": [
        \{ "key": "signature", "type": "signature", "page": 3, "x": 0.09, "y": 0.62, "width": 0.36, "height": 0.085 },
        \{ "key": "credit_limit", "type": "data", "page": 1, "x": 0.34, "y": 0.31, "width": 0.3, "height": 0.03, "prefill": "api.credit_limit" }
      ]
    }
  ],
  "field_values": { "credit_limit": "3,000 EUR" }
}
}'

4\. Send the user to session.url (or open it with the Web or native SDK). Documents with fields need a native SDK release that supports fields; the hosted page and the Web SDK always do.
5\. Wait for the status.updated webhook, then GET /v3/session/{session_id}/decision/.

Decision surface:
signatures[] (one item per signer and signature step). Read:
\- status: the signing stage (intro, review, code, signing, signed, declined).
\- verdict: Not Finished | Approved | In Review | Declined.
\- level ("simple" or "aes"), format ("pdf" for simple, "pades" for aes), profile ("PAdES-B-LT" once an aes step is signed, otherwise null).
\- signer, identity_used, confirmation, certificate, timestamp, adopted_signature, electronic_signature_consent_at.
\- documents[]: mode ("fields" or "read_and_agree"), sha256_original, sha256_signed, status, signed_file (download path), source_format, conversion, fields[] (key, type, value, display_value, value_source, filled_at, image_url).
\- evidence_file (download path), warnings[] ({code, node_id}).

Downloads (x-api-key works):
\- GET /v3/session/{session_id}/signatures/{node_id}/documents/{document_id}/file/ -> signed PDF
\- GET /v3/session/{session_id}/signatures/{node_id}/evidence/?signature_id={id} -> evidence PDF
\- GET /v3/session/{session_id}/signatures/{node_id}/fields/{field_id}/image/ -> applied signature or initials (PNG); use the image_url of the field
\- POST /v3/session/{session_id}/signatures/{node_id}/validate/ -> re-checks the stored signatures

Warnings:
SIGNATURE_DECLINED (default REVIEW), SIGNATURE_OTP_FAILED, SIGNATURE_NAME_MISMATCH, SIGNATURE_IDENTITY_NOT_VERIFIED, SIGNATURE_DOCUMENT_CHANGED (default DECLINE). Each maps to a signature_*_action setting.

Rules:
\- Level: "simple" (default) or "aes". "qes" is an add-on that is not available yet and saving it returns 400 qes_not_available. While signature_availability.aes is false on the workflow, saving a new "aes" step returns 400 aes_not_available.
\- PDF: up to 20 MB and 100 pages each, no password, scripts or attachments. Up to 20 documents and 50 MB per signer.
\- Word: .docx only (.doc, .docm, .odt and .rtf are refused with unsupported_type), up to 20 MB, converted to PDF while the upload or create-session request runs. Fields refer to the converted pages. Macros, tracked changes, external links and embedded objects are refused with signature_document_not_supported; a file that can't be converted returns signature_document_conversion_failed. Both carry a reason.
\- Fields: key matches ^[a-z][a-z0-9_]{0,63}$ and is unique in its document; role defaults to the step's signer; up to 200 fields per document and 500 per signer. Every role with fields on a document needs a signature or initials field. There is no date picker type: use text.
\- Never show success until status is "signed". That is the check at every level. For an aes signature a null certificate, timestamp or signed_file also means "not signed"; a signed simple signature has a signed_file but a null certificate and timestamp.

See also:
\- /core-technology/electronic-signature/report-electronic-signature
\- /core-technology/electronic-signature/warnings-electronic-signature
\- /management-api/workflows/feature-configs#e-signature`

\</pre>



      
      

Вставьте в

## Уровни подписей| Уровень | Требования | Описание |
| - | - | - |
| **Простой** | По умолчанию. Без верификации личности, электронной почты или телефона | Пользователь подписывает документы по ссылке на сессию без верификации личности, электронной почты, телефона или кода. Если в сессии уже есть подтверждённое имя, используется оно; в противном случае пользователь вводит своё имя вручную, а в подписи и отчёте указывается, что имя было введено вручную и не верифицировано. Подписать документ может любой, у кого есть ссылка на сессию, поэтому выбирайте уровень Простой для договоров с низким уровнем риска; для регулируемых или ценных контрактов следует использовать уровень Усовершенствованный (AES). Подписанный файл представляет собой PDF-документ со страницей подтверждающих данных и не содержит цифровой подписи, печати или метки времени. Didit сохраняет SHA-256 записи и каждого подписанного файла, что позволяет выявить любые последующие изменения. |
| **Усовершенствованный (AES)**, усовершенствованная электронная подпись | Одобренная верификация личности и подтверждённые адрес электронной почты или номер телефона в той же сессии | Каждый документ подписывается в формате PAdES (формат подписи PDF) с профилем долгосрочной проверки (`PAdES-B-LT`): подпись содержит метку времени RFC 3161, выпущенную Didit, и данные об отзыве, необходимые для последующей проверки. Она однозначно связана с подписантом через его подтверждённую личность и подтверждённый им одноразовый код, а любое изменение документа после подписания делает её недействительной. |
| **Квалифицированный (QES)**, квалифицированная электронная подпись | Дополнительная опция, пока недоступна | Документы подписывались бы с использованием квалифицированного сертификата, выданного подписанту. В консоли этот вариант отображается как **Скоро**, а сохранение `signature_level: "qes"` через API возвращает ошибку `400` с кодом `qes_not_available`. Он никогда не заменяется на AES автоматически. |Уровень Усовершенствованный (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. Код отправляется только на контакт, подтверждённый в той же сессии.
- Если в сценарии также есть **Проверка живости**, она должна быть одобрена.Чтобы отправить подписанту копию подписанных документов по электронной почте, в сессии также требуется подтверждённый адрес электронной почты, даже если код отправляется по SMS.**Для Верификации бизнеса (KYB)** подписантами являются ключевые лица компании, каждое из которых должно иметь собственный одобренный KYC:| `signature_signer` | Кто подписывает |
| - | - |
| `legal_representative` | Каждое ключевое лицо с ролью `representative` или `authorized_signatory` |
| `key_people` | Каждое физическое лицо из числа ключевых лиц с сессией KYC |В шаге KYB может быть от 1 до 20 подписантов, и к моменту подписания каждый из них должен иметь одобренный KYC. Каждый из них подписывает свой экземпляр документов и подтверждает подписание кодом, отправленным на контакт, проверенный в его собственной KYC-сессии. Имя, заявленное для ключевого лица, должно совпадать с его подтверждённым именем без учёта регистра и пробелов, иначе шаг фиксирует `SIGNATURE_NAME_MISMATCH`. Шаг завершается, когда каждый подписант подпишет документы или отклонит подписание.## Документы### Откуда берутся документыПараметр `signature_documents_source` определяет, откуда шаг получает свои документы:| Значение | Документы |
| - | - |
| `workflow` (по умолчанию) | Документы, которые вы загрузили в сценарий в консоли. Каждая сессия подписывает одни и те же документы. |
| `session` | Документы, которые вы передаете в `sign.documents` при [создании сессии](https://docs.didit.me/ru/sessions-api/create-session.md#документы-для-электронной-подписи). Каждая сессия подписывает собственные документы. |
| `both` | Сначала документы сценария, затем документы сессии. |Документы на уровне сессии позволяют человеку подписать договор, в котором его имя, сумма или условия уже заполнены вашей системой.### Поддерживаемые файлы| | Лимит |
| - | - |
| PDF | До 20 МБ и до 100 страниц каждый. Без паролей, скриптов и прикрепленных файлов. |
| Word (`.docx`) | До 20 МБ. Конвертируется в PDF при загрузке или при создании сессии; к сконвертированному PDF применяются те же лимиты, что и к обычному PDF. Файлы `.doc`, `.docm`, `.odt` и `.rtf` отклоняются с ошибкой `unsupported_type`. |
| На одного подписанта | До 20 документов и не более 50 МБ в сумме. |Когда вы загружаете документ 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` и одной из следующих причин:| `reason` | Что пошло не так |
| - | - |
| `docx_password_protected` | Файл защищен паролем. Снимите защиту и загрузите снова. |
| `docx_unreadable` | Файл не является читаемым документом Word. |
| `docx_too_many_pages` | Сконвертированный PDF содержит более 100 страниц. |
| `docx_too_large` | Файл слишком велик для конвертации. |
| `conversion_timeout` | Конвертация заняла слишком много времени. Попробуйте еще раз или загрузите документ в формате PDF. |### Поля на документеПоля превращают документ в шаблон, который заполняет подписант, подобно подготовке конверта в настольном инструменте для подписания. Документ без полей использует более простой сценарий: подписант читает его и соглашается.| Тип | Что делает подписант | Значение |
| - | - | - |
| `signature` | Нажимает, чтобы применить выбранную подпись. Первое поле подписи или инициалов открывает шаг, на котором подписант принимает свою подпись или инициалы. | `true` после применения |
| `initials` | Нажимает для нанесения принятых инициалов. | `true` после применения |
| `text` | Вводит значение, проверяемое с помощью [валидации](#валидация) поля. Может быть предзаполнено. | Строка |
| `checkbox` | Устанавливает или снимает флажок. Обязательный чекбокс должен быть отмечен. | Булево значение |
| `email` | Ничего, если в сессии есть подтвержденный адрес электронной почты (он подставляется только для чтения). В противном случае вводит значение вручную. | Строка |
| `full_name` | Ничего: Didit подставляет подтвержденное полное имя только для чтения. | Строка |
| `date_signed` | Ничего: Didit подставляет дату подписания документов. | Строка |
| `data` | Ничего: Didit подставляет значение из подтвержденной личности, сессии или вашей системы только для чтения. Задайте источник в `prefill`. | Строка |В этой версии средство выбора даты отсутствует. Используйте поле `text` для даты, которую вводит подписант.У поля есть следующие свойства:| Свойство | Правила |
| - | - |
| `id` | Задается платформой Didit. |
| `key` | Имя поля в результатах и в `sign.field_values`. Строчные буквы, цифры и знаки подчеркивания, начинается с буквы, до 64 символов (`^[a-z][a-z0-9_]{0,63}$`), уникально в пределах документа. |
| `type` | Один из указанных выше типов. |
| `role` | Кто заполняет поле, со значениями из `signature_signer`: `verified_person`, `legal_representative` или `key_people`. В документе сессии по умолчанию соответствует подписанту шага. |
| `page` | От 1 до общего количества страниц документа. Для документа Word это страница сконвертированного PDF. |
| `x`, `y`, `width`, `height` | Доли страницы в том виде, как она отображается (от `0` до `1`), отсчитываемые от верхнего левого угла и округленные до 4 знаков после запятой. Поле должно помещаться на странице. Его ширина составляет не менее `0.02`, а высота не менее `0.012`, при этом подпись должна быть размером не менее `0.12` на `0.035`. |
| `required` | Поля `signature` и `initials` обязательны, если не указано `false`. Поля `full_name`, `date_signed` и `data` всегда обязательны. |
| `label` | От 1 до 80 символов, отображается подписанту и в результатах. |
| `placeholder` | Только для `text` и `email`. До 80 символов. |
| `position` | Порядок перемещения подписанта по полям, начиная с `0`. Didit рассчитывает его по положению поля: по страницам, затем сверху вниз и слева направо. |
| `validation` | Только для `text`. См. [Валидация](#валидация). |
| `prefill` | Источник значения. См. [Предзаполненные значения](#предзаполненные-значения). |
| `editable_when_prefilled` | Только для `text` и `email`: может ли подписант изменить предзаполненное значение. По умолчанию `false`. |
| `checked_by_default` | Только для `checkbox`: чекбокс изначально отмечен. |
| `date_format` | Только для `date_signed`: `DD/MM/YYYY` (по умолчанию), `MM/DD/YYYY`, `YYYY-MM-DD` или `D MMMM YYYY`. |```json theme={null}
{
  "id": "6a2f1c0e-4d8b-4f5e-9a51-0c7b2e9d3f10",
  "key": "occupation",
  "type": "text",
  "role": "verified_person",
  "page": 1,
  "x": 0.34,
  "y": 0.4618,
  "width": 0.57,
  "height": 0.0325,
  "required": true,
  "label": "Occupation",
  "placeholder": "For example, nurse",
  "position": 5,
  "validation": { "kind": "any", "min_length": 0, "max_length": 80, "pattern": null, "message": null },
  "prefill": null,
  "editable_when_prefilled": false,
  "checked_by_default": false,
  "date_format": null
}
```Документ может содержать до 200 полей, а один подписант до 500 полей во всех своих документах.Шаг заполняет и ставит отметки только на полях своего подписанта. Документ может содержать поля для нескольких ролей только в том случае, если несколько шагов Электронной подписи в сценарии используют его: каждый шаг заполняет поля своей роли и оставляет остальные пустыми в своей копии. Поле для роли, которую не использует ни один шаг Электронной подписи сценария, отклоняется с ошибкой `role_not_used`. Для каждой роли, для которой в документе есть поля, в документе должно быть как минимум одно поле `signature` или `initials`, иначе версию сценария нельзя будет опубликовать (`signature_field_missing`).#### Валидация`validation` применяется к полям `text`:```json theme={null}
{ "kind": "any", "min_length": 0, "max_length": 80, "pattern": null, "message": null }
```- `kind`: `any`; `letters` (буквы в любой системе письма, пробелы, дефисы и апострофы); `number` (цифры с необязательным десятичным разделителем); `email` или `pattern`.
- `min_length`: от `0` до `max_length`.
- `max_length`: от `1` до `500`. По умолчанию `120`.
- `pattern`: обязательно при `kind: "pattern"`. Регулярное выражение длиной до 200 символов, которому должно соответствовать значение целиком. Упреждающие и ретроспективные проверки и обратные ссылки не поддерживаются.
- `message`: до 120 символов, отображается вместо стандартной ошибки.Предпросмотр в консоли, процесс подписания и API применяют одинаковые правила.#### Предзаполненные значения`prefill` указывает источник значения поля:| `prefill` | Значение |
| - | - |
| `identity.full_name`, `identity.first_name`, `identity.last_name` | Имя как в проверенном удостоверении личности подписанта. |
| `identity.date_of_birth` | Из проверенного удостоверения личности в формате `DD/MM/YYYY`. |
| `identity.nationality`, `identity.document_number`, `identity.document_type`, `identity.issuing_country` | Из проверенного удостоверения личности. |
| `identity.address` | Отформатированный адрес из проверенного удостоверения личности или из подтверждения адреса в той же сессии. |
| `contact.email`, `contact.phone` | Подтверждённый адрес электронной почты или подтверждённый номер телефона подписанта. |
| `company.name`, `company.registration_number`, `company.address`, `company.country` | Подтверждённая компания (для KYB). |
| `session.vendor_data` | `vendor_data` сессии. |
| `metadata.<key>` | Значение `<key>` в `metadata` сессии в виде строки. |
| `api.<key>` | Значение `<key>` в `sign.field_values`, переданное при [создании сессии](https://docs.didit.me/ru/sessions-api/create-session.md#значения-полей). |Поле `data` обязательно должно содержать `prefill`. Поле `full_name` всегда использует `identity.full_name`, поле `email` использует `contact.email`, и у поля `text` оно тоже может быть. Значения полей `data`, `full_name` и подтверждённого `email` фиксируются в момент, когда подписант начинает подписание: последующие изменения сессии на них не влияют. Предзаполненное поле `text` или `email` доступно только для чтения, если не включён параметр `editable_when_prefilled`.Если у источника обязательного поля на тот момент нет значения (например, в сессии отсутствует адрес), поле остаётся пустым, и подписант всё равно может поставить подпись. Предупреждение не выдаётся, а причина указывается в `value_unavailable_reason` в [отчёте](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md).## Настройка в консоли1) Перейдите в раздел **Рабочие процессы**, откройте сценарий и добавьте шаг **Электронная подпись** после шагов, проверяющих подписанта.
2) В разделе **Документы** нажмите **Загрузить**, чтобы добавить файлы PDF или Word, и перетащите их в том порядке, в котором их увидит подписант. Файлы Word конвертируются в PDF: проверьте сконвертированные страницы перед размещением полей. Кнопка **Заменить** заменяет файл документа с сохранением полей, кроме тех, что находились на страницах, отсутствующих в новом файле.
3) В блоке **Разместите поля в документах** выберите **Открыть редактор**. Перетащите поле из палитры на страницу или выберите его и кликните в нужном месте, затем переместите и измените размер. Для каждого поля укажите **Кто заполняет**, его метку, обязательно ли оно (**Обязательно**), какие значения принимает, откуда берётся его значение и его **API-ключ** (`key` поля). **Предпросмотр для подписанта** показывает документ так, как его видит подписант на телефоне или компьютере. Редактор сохраняет изменения автоматически (**Сохранено в черновик**) и показывает список того, что нужно исправить, перед нажатием кнопки **Готово**.
4) В разделе **Документы** выберите источник документов: **Этот рабочий процесс**, **Каждый сеанс** или **И то и другое**. Для документов без полей укажите, должен ли подписант **Прочитать до конца перед подписанием** и дать **Отдельное согласие для каждого документа**.
5) В разделе **Подпись** выберите **Подписант**, **Уровень** (**Простой** по умолчанию или **Усовершенствованная (AES)**; **Квалифицированная (QES)** отображается со статусом **Скоро**), **Формат** и способ отправки кода (**Одноразовый код через**).
6) В разделе **Правила** настройте, как каждое [предупреждение](https://docs.didit.me/ru/core-technology/electronic-signature/warnings-electronic-signature.md) влияет на решение.
7) В разделе **Дополнительно** выберите, нужно ли **Отправить подписанную копию по электронной почте** и **Добавить страницу доказательств**, а также сколько дней ссылка на подписание остаётся действительной. Вы также можете настроить пользовательские правила статусов.
8) Сохраните сценарий.Чтобы настроить этот же шаг через API, см. раздел [Конфигурации функций сценариев](https://docs.didit.me/ru/management-api/workflows/feature-configs.md#электронная-подпись). Документы сценария и их поля настраиваются в консоли; через API отправляйте документы и поля для каждой сессии.## Процесс подписанияШаг подписания работает на размещённой странице верификации, в [Web SDK](https://docs.didit.me/ru/integration/web-sdks/overview.md) и в [нативных SDK](https://docs.didit.me/ru/integration/native-sdks/overview.md), как на десктопе, так и на смартфонах. Вам не нужно создавать собственный интерфейс подписания.1) **Введение.** Подписант видит документы, которые ему предстоит подписать.
2) **Каждый документ по порядку.** Если в документе есть поля, подписант проходит по ним в порядке `position`. Первое поле подписи или инициалов открывает панель, где он [принимает подпись](#выбор-подписи). Необязательные поля отмечены как **Необязательно**. Значения, предварительно заполненные Didit, отображаются на странице с иконкой замка и не являются шагами ввода. Нажатие на поле на странице перемещает к нему. На телефоне отображается по одному полю за раз в панели, которая фиксируется над клавиатурой. На экранах шириной от 1200 px страница отображается рядом со списком полей. Если подписант пытается завершить работу с документом, оставив обязательное поле пустым, отображается количество оставшихся полей и происходит переход к первому из них. Документ без полей просто прочитывается и согласуется в соответствии с вашей конфигурацией.
3) **Проверка.** Подписант снова просматривает документы и, если в каком-либо из них есть поля, соглашается подписать их в электронном виде.
4) **Код (только для Advanced (AES)).** Подписант запрашивает код. Код действует 5 минут, новый код можно отправить через 60 секунд, а всего подписанту доступно до 5 кодов и 3 неверные попытки. После исчерпания лимита фиксируется `SIGNATURE_OTP_FAILED`. На уровне Simple код отсутствует: подписант переходит сразу от проверки к подписанию.
5) **Подписано.** После подписания подписант может скачать подписанные документы. Если вы включили эту опцию, Didit также отправит ему копию по электронной почте.
6) **Отклонение.** Подписант может отказаться от подписания вместо того, чтобы подписать документы. В этом случае фиксируется `SIGNATURE_DECLINED`. Отклонённое подписание можно возобновить, пока действительна ссылка на подписание, поэтому подписант всё ещё может подписать документ, если передумает.Сценарий сообщает подписанту, если срок действия кода истёк, документ изменился, подписание не удалось или срок действия ссылки на подписание истёк.Ссылка на подписание остаётся действительной в течение `signature_link_validity_days` (от 1 до 30, по умолчанию 7), считая с момента создания сессии. Сессия остаётся открытой как минимум на этот срок.> [!NOTE]
>
> В нативных SDK шаг подписания отображается начиная с релиза, в котором он был добавлен; этот релиз будет указан в [обзоре нативных SDK](https://docs.didit.me/ru/integration/native-sdks/overview.md) после выхода. Для документов с полями требуется релиз с поддержкой полей: более старые релизы не могут их отобразить, и вместо этого на шаге появится ошибка. Документы без полей работают в любом релизе с шагом подписания. Пока в вашем приложении не используется релиз с поддержкой функций вашего сценария, направляйте пользователей на размещённую страницу или в Web SDK.### Выбор подписиПодписант один раз выбирает свою подпись и инициалы в единой панели при первом запросе любого из этих элементов в документе:- **Введено**: подтверждённое имя в выбранном рукописном стиле с пометкой **Из вашего удостоверения личности**. Подписант не может ввести другое имя. Инициалы формируются автоматически из первых букв этого имени.
- **Нарисовано**: подпись и инициалы рисуются пальцем или мышью.Каждое последующее поле подписи или инициалов заполняется одним нажатием, а повторное нажатие на уже заполненное поле снимает применённую подпись или инициалы.## РезультатыРезультат каждого подписанта представляет собой элемент массива `signatures[]` в [решении по сессии](https://docs.didit.me/ru/sessions-api/retrieve-session.md) и в объекте `decision` в [webhook сессии](https://docs.didit.me/ru/integration/webhooks.md). Отдельного webhook для подписи нет: событие сессии `status.updated` сообщает, когда следует запросить решение.Вы получаете подписанный PDF каждого документа, доказательный PDF для каждого подписанта и хэш SHA-256 каждого исходного и подписанного файла, что позволяет в дальнейшем доказать неизменность данных. Для документов с полями вы также получаете значение каждого поля, источник его заполнения и время ввода, а также выбранные подпись и инициалы и время, когда подписант дал согласие на электронное подписание. Подробное описание всех полей, загрузок и повторной проверки подписи см. в [отчёте об электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md).В панели управления на вкладке сессии **Подпись** отображаются документы, затем блок **Поля** с предварительным просмотром каждой страницы, выбранные подпись и инициалы, а также значение, время и источник каждого поля. [PDF-отчёт](https://docs.didit.me/ru/sessions-api/generate-pdf.md) содержит раздел подписи, а также страницу **E-signature · fields**, если в документах есть поля.## ЦеныЭлектронная подпись стоит \$0.10 за подписанную сессию и входит в ваш бесплатный кредит независимо от количества документов в рамках одного подписания и уровня подписи (Simple или Advanced (AES)). За подпись, которая была отклонена, завершилась ошибкой или истекла, плата не взимается. Qualified (QES) представляет собой дополнительную опцию, которая пока недоступна и не имеет установленной цены.## Удаление данных подписиПри [удалении сессии](https://docs.didit.me/ru/sessions-api/delete-session.md) связанные с ней данные подписи удаляются вместе с ней: переданные в сессии документы и их исходные файлы Word, копии, подготовленные для каждого подписанта, подписанные PDF, доказательные PDF, изображения выбранной подписи и инициалов, а также значения всех полей. Ссылки на их скачивание перестают действовать. То же самое происходит при удалении сессии по окончании установленного периода хранения данных. Удаление необратимо, поэтому заранее скачайте всё, что вам необходимо сохранить.- Подписанные документы Верификации бизнеса (KYB) относятся к сессии компании. При удалении этой сессии удаляются и они.
- При удалении документа из сценария удаляется сам документ, его поля и исходный файл Word. Подписант, который уже начал процесс подписания, сохраняет показанную ему копию в рамках своей сессии до тех пор, пока вы не удалите эту сессию. Удаляйте документы только из тех сценариев, в которых нет сессий, ожидающих подписания.
- Копия, которую Didit уже отправил подписанту по электронной почте, находится в его почтовом ящике и не затрагивается удалением.## См. также- [Отчёт об электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/report-electronic-signature.md): `signatures[]`, подписанный PDF, доказательный PDF и файлы для скачивания.
- [Предупреждения электронной подписи](https://docs.didit.me/ru/core-technology/electronic-signature/warnings-electronic-signature.md): каждое предупреждение и правило, управляющее им.
- [Создание сессии](https://docs.didit.me/ru/sessions-api/create-session.md#документы-для-электронной-подписи): передача документов, полей и значений полей для каждой сессии.
- [Конфигурация функций сценария](https://docs.didit.me/ru/management-api/workflows/feature-configs.md#электронная-подпись): все настройки шага.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.