> ## 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 и KYB

> Didit: импорт сессии KYC или KYB по токену партнёра через POST /v3/session/import-shared/. Оплата за использование, без повторной верификации.



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



      
      

\<pre>

\`Import a verification session shared by a partner application (Reusable KYC / KYB).

Endpoint:
POST https://verification.didit.me/v3/session/import-shared/

Authentication:
Use the x-api-key header with the receiving application's Didit API key. Privilege: write:sessions.

Request body:
\- share_token (string, required) — JWT minted by the partner via POST /v3/session/{id}/share/. Didit decodes it, reads the embedded session_kind, and clones the matching kind.
\- workflow_id (string, UUID, required) — Workflow in YOUR application to attach the imported session to. KYC token → pass a KYC workflow_id. KYB token → pass a KYB workflow_id.
\- vendor_data (string, optional) — Your stable identifier for the entity. Auto-creates a User or Business entity if it does not already exist.
\- trust_review (boolean, optional, default false) — false → imported session lands in "In Review" so your team can re-review. true → imported session preserves the original status (e.g. "Approved"). Use true only when you fully trust the sharing partner's decision.

curl example:
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
-H "x-api-key: <RECEIVING_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"share_token": "<JWT_FROM_PARTNER>",
"workflow_id": "<YOUR_WORKFLOW_ID>",
"vendor_data": "partner-user-42",
"trust_review": false
}'

Response (201 Created):
\- session_id (UUID) — NEW UUID minted in your application.
\- session_kind ("user" | "business") — same as the original.
\- session_number — fresh sequence in your application.
\- status — original status (if trust_review=true) or "In Review" (if trust_review=false).
\- shared_from_session — pointer to the original session in the source application.
\- vendor_data, workflow_id — what you sent.
\- All cloned feature arrays: KYC tokens clone id_verifications + liveness_checks + face_matches + face + AML + location + POA + phone + email + database_validations + logs; KYB tokens clone registry_checks + key_people_checks + document_verifications + AML + phone + email + location + questionnaire + logs.

Backward compatibility:
Tokens minted before the unified-sharing rollout (no session_kind field) default to "user" when decoded.

Idempotency:
Importing the same share_token twice into the same application is rejected with 403, for user and business sessions alike.

Failure modes:
\- 400 - { "share_token": ["Invalid share token."] } when the token is malformed or was not issued by Didit.
\- 400 - { "share_token": ["Share token has expired."] } when its exp has passed.
\- 400 - { "share_token": ["This token is not valid for this application."] } when the token was issued for another application.
\- 400 - { "share_token": ["Original session does not exist."] } when the shared session was deleted.
\- 403 - { "detail": "This session has already been shared with your application." } when the session was already imported into this application.
\- 404 - { "detail": "Workflow does not exist for this application." } when workflow_id is not a workflow of your application.

When to call:
\- Cross-organization Reusable KYC (bank → fintech, marketplace → payment provider, etc.).
\- Promoting a verified user from your sandbox application to your production application.
\- Group-company sharing across sibling applications.

After import:
\- The new session works like any other session — fetch with GET /v3/session/{session_id}/decision/ (see /sessions-api/retrieve-session) and react to status / data webhooks.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Вставьте в

## Поддержка KYC и KYBDidit декодирует токен общего доступа, читает встроенное значение `session_kind` и клонирует соответствующий тип сессии:- `session_kind: "user"`: клонирует пользовательскую сессию и связанные с ней записи о личности, лице, проверке живости, сравнении лиц, AML, местоположении, подтверждении адреса, телефоне, электронной почте, проверке по базам данных и журналы.
- `session_kind: "business"`: клонирует сессию компании и связанные с ней записи: проверку по реестру, записи о ключевых лицах, документы, AML-скрининги, телефон, электронную почту, местоположение, анкету и журналы.Если токен выпущен до внедрения единого общего доступа и не содержит поля `session_kind`, Didit для обратной совместимости использует значение `"user"`.## Что создаётся- **Новая сессия** того же типа в вашем приложении с новыми значениями `session_id`, `session_number` и `session_url`.
- Поле `shared_from_session` новой сессии указывает на исходную сессию в приложении-источнике.
- Статус новой сессии либо совпадает с исходным (`trust_review: true`), либо равен `IN_REVIEW` (`trust_review: false`).
- Если для `vendor_data` сущность (User или Business) не существует, она создаётся автоматически.## Примеры> [tab] Импорт сессии проверки пользователей (KYC)
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/session/import-shared/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "share_token": "eyJhbGciOiJIUzI1NiJ9...",
>     "workflow_id": "your-kyc-workflow-id",
>     "vendor_data": "partner-user-42",
>     "trust_review": false
>   }'
> ```
>
> **Ответ (201 Created):**
>
> ```json theme={null}
> {
>   "session_id": "new-uuid",
>   "session_kind": "user",
>   "shared_from_session": "original-uuid",
>   "status": "In Review",
>   "vendor_data": "partner-user-42",
>   "id_verifications": [...],
>   "liveness_checks": [...],
>   "...": "..."
> }
> ```> [tab] Импорт сессии верификации бизнеса (KYB)
>
> ```bash theme={null}
> curl -X POST https://verification.didit.me/v3/session/import-shared/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "share_token": "eyJhbGciOiJIUzI1NiJ9...",
>     "workflow_id": "your-kyb-workflow-id",
>     "vendor_data": "partner-biz-acme",
>     "trust_review": true
>   }'
> ```
>
> **Ответ (201 Created):**
>
> ```json theme={null}
> {
>   "session_id": "new-uuid",
>   "session_kind": "business",
>   "shared_from_session": "original-uuid",
>   "status": "Approved",
>   "vendor_data": "partner-biz-acme",
>   "registry_checks": [...],
>   "key_people_checks": [...],
>   "document_verifications": [...],
>   "...": "..."
> }
> ```## Параметр `trust_review`| Значение | Эффект |
| - | - |
| `true` | Импортированная сессия сохраняет исходный статус (например, `APPROVED`). Используйте, если полностью доверяете решению партнёра, который поделился сессией. |
| `false` | Импортированная сессия переходит в статус `IN_REVIEW`, чтобы ваша команда могла повторно проверить её прежде чем действовать. Безопасное значение по умолчанию для внешних партнёров. |## Ошибки| Статус | Причина |
| - | - |
| `400` | `share_token` недействителен, истёк, выпущен для другого приложения или указывает на удалённую сессию. Сообщение об ошибке находится в ключе `share_token`. |
| `403` | Сессия уже импортирована в ваше приложение. |
| `404` | `workflow_id` не является сценарием вашего приложения. |## ИдемпотентностьПовторный импорт того же `share_token` в одно и то же приложение отклоняется с кодом `403` как для пользовательских сессий, так и для сессий компаний.## Связанные материалы- [Совместный доступ к сессии](https://docs.didit.me/ru/sessions-api/share-session/share.md)
- [Руководство по многоразовому KYC](https://docs.didit.me/ru/core-technology/reusable-kyc/share-kyc-via-api.md)
- [Обзор сессий](https://docs.didit.me/ru/sessions-api/overview.md)


## OpenAPI

````yaml ru/openapi-25.json POST /v3/session/import-shared/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: >-
    API верификации личности. Аутентификация выполняется с помощью заголовка
    x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/import-shared/:
    post:
      tags:
        - Sessions
      summary: >-
        Использовать токен общего доступа для клонирования сессии верификации в
        ваше приложение
      description: >-
        Использовать токен общего доступа для клонирования сессии KYC или KYB в
        вызывающее приложение с новым `session_id`. Не идемпотентно — токен
        можно погасить только один раз для каждого получателя.
      operationId: post_v3_session_import_shared
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - share_token
                - trust_review
                - workflow_id
              properties:
                share_token:
                  type: string
                  description: >-
                    JWT-токен общего доступа, выпущенный [`POST
                    /v3/session/{sessionId}/share/`](/sessions-api/share-session).
                  example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                trust_review:
                  type: boolean
                  description: >-
                    Если `true`, клонированная сессия сохраняет окончательный
                    `status` исходной сессии. Если `false`, она принудительно
                    переводится в `In Review`.
                  example: false
                workflow_id:
                  type: string
                  format: uuid
                  description: >-
                    UUID сценария в вызывающем приложении. Идентификаторы из
                    других приложений отклоняются с кодом `404`.
                  example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                vendor_data:
                  type: string
                  nullable: true
                  description: >-
                    Необязательное переопределение для `vendor_data`
                    клонированной сессии.
                  example: user-1
            example:
              share_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
              trust_review: false
              workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
              vendor_data: user-1
      responses:
        '201':
          description: >-
            Сессия клонирована. Тело ответа представляет собой payload решения
            V3 для обоих типов, разделяемых по `session_kind`: `"user"` (KYC) со
            списочными блоками функций, такими как `id_verifications`,
            `liveness_checks`, `aml_screenings`; `"business"` (KYB) с такими
            блоками, как `registry_checks` и `key_people_checks`. Оба содержат
            `shared_from_session` — `session_id` исходной сессии в исходном
            приложении. При `trust_review: false` параметру `status`
            клонированной сессии принудительно задаётся значение `In Review`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDecision'
              examples:
                User session imported:
                  summary: >-
                    Клонированная сессия KYC (сокращено — в реальности полный
                    payload решения V3)
                  value:
                    session_id: 11111111-2222-3333-4444-555555555555
                    session_kind: user
                    shared_from_session: 99999999-8888-7777-6666-555555555555
                    session_number: 43762
                    session_url: null
                    status: In Review
                    workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                    vendor_data: user-1
                    created_at: '2026-05-17T08:42:11Z'
                    expires_at: '2026-05-24T08:42:11Z'
                Business session imported:
                  summary: >-
                    Клонированная сессия KYB (сокращено — в реальности полный
                    payload решения V3 KYB)
                  value:
                    session_id: 22222222-3333-4444-5555-666666666666
                    session_kind: business
                    shared_from_session: 88888888-7777-6666-5555-444444444444
                    session_number: 982
                    session_url: null
                    status: Approved
                    workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                    vendor_data: company-1
        '400':
          description: >-
            Ошибка валидации (token недействителен, истёк срок действия, указан
            неверный целевой объект или сессия больше не существует).
          content:
            application/json:
              examples:
                Invalid Share Token:
                  summary: Недействительный JWT
                  value:
                    share_token:
                      - Invalid share token.
                Expired Share Token:
                  summary: Срок действия token истёк по `exp`
                  value:
                    share_token:
                      - Share token has expired.
                Wrong audience:
                  summary: Token не привязан к этому приложению
                  value:
                    share_token:
                      - This token is not valid for this application.
                Original missing:
                  summary: Исходная сессия была удалена
                  value:
                    share_token:
                      - Original session does not exist.
        '403':
          description: >-
            Отсутствует API-ключ (при неверном, отозванном или истекшем ключе
            возвращается `401`), либо эта исходная сессия уже была импортирована
            в вызывающее приложение (одно погашение на каждого получателя).
          content:
            application/json:
              examples:
                Forbidden:
                  summary: Запрещено
                  value:
                    detail: You do not have permission to perform this action.
                Already imported:
                  summary: Источник уже был импортирован
                  value:
                    detail: >-
                      This session has already been shared with your
                      application.
        '404':
          description: '`workflow_id` не принадлежит вызывающему приложению.'
          content:
            application/json:
              examples:
                Workflow not found:
                  summary: Неизвестный сценарий
                  value:
                    detail: Workflow does not exist for this application.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST \
              https://verification.didit.me/v3/session/import-shared/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "share_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                "trust_review": false,
                "workflow_id": "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                "vendor_data": "user-1"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.import_shared(
                share_token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                trust_review=False,
                workflow_id="9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                vendor_data="user-1",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.sessions.importShared({
              share_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
              trust_review: false,
              workflow_id: "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
              vendor_data: "user-1",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.ImportShared(ctx, didit.SessionsImportSharedParams{\n\tShareToken:  \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n\tTrustReview: false,\n\tWorkflowID:  \"9f9b1234-aaaa-bbbb-cccc-1234567890ab\",\n\tVendorData:  didit.String(\"user-1\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.SessionsImportSharedParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().importShared(SessionsImportSharedParams.builder()
                    .shareToken("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...")
                    .trustReview(false)
                    .workflowId("9f9b1234-aaaa-bbbb-cccc-1234567890ab")
                    .vendorData("user-1")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->sessions->importShared([
                'share_token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
                'trust_review' => false,
                'workflow_id' => '9f9b1234-aaaa-bbbb-cccc-1234567890ab',
                'vendor_data' => 'user-1',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.sessions.import_shared(
              share_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
              trust_review: false,
              workflow_id: "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
              vendor_data: "user-1"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Sessions.ImportSharedAsync(new
            SessionsImportSharedParams

            {
                ShareToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                TrustReview = false,
                WorkflowId = "9f9b1234-aaaa-bbbb-cccc-1234567890ab",
                VendorData = "user-1",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionDecision:
      type: object
      properties:
        session_id:
          type: string
          format: uuid
          description: Уникальный идентификатор сессии.
        session_kind:
          type: string
          enum:
            - user
            - business
          description: >-
            Дискриминатор, указывающий, является ли эта сессия сессией проверки
            пользователей (KYC) или верификации бизнеса (KYB). При значении
            `user` применяются массивы функций KYC (`id_verifications`,
            `nfc_verifications`, `liveness_checks`, `face_matches`,
            `poa_verifications`, `document_ai_documents`,
            `database_validations`, ...), а массивы для бизнеса отсутствуют. При
            значении `business` payload вместо этого содержит `registry_checks`,
            `document_verifications`, `key_people_checks`, а также общие массивы
            (`aml_screenings`, `phone_verifications`, `email_verifications`,
            `ip_analyses`, `questionnaire_responses`). **Опускается при передаче
            `include=events`** — формат событий существует только для сессий
            пользователей, поэтому дискриминатор удаляется из этого варианта.
        shared_from_session:
          type: string
          format: uuid
          nullable: true
          description: >-
            Для сессии, клонированной с помощью `POST
            /v3/session/import-shared/`: `session_id` исходной сессии в исходном
            приложении. `null` для всех остальных сессий. Опускается при
            передаче `include=events`.
        shared_from_session_number:
          type: integer
          nullable: true
          description: >-
            `session_number` исходной сессии, если эта сессия была импортирована
            из другого приложения вашей организации. В противном случае `null`.
        session_number:
          type: integer
          description: Номер сессии.
          nullable: true
        session_url:
          type: string
          format: uri
          description: URL сессии.
          nullable: true
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Awaiting User
            - In Review
            - Approved
            - Declined
            - Resubmitted
            - Expired
            - Kyc Expired
            - Abandoned
          description: >-
            Общий статус жизненного цикла сессии — суммарный результат сценария.
            Конечные значения: `Approved`, `Declined`, `In Review`, `Expired`,
            `Kyc Expired` и `Abandoned`; статусы `Not Started`, `In Progress`,
            `Awaiting User` и `Resubmitted` указывают на то, что сессия всё ещё
            проходит сценарий.
        status_override:
          type: object
          nullable: true
          description: >-
            Присутствует, если проверяющий установил `status` вручную. `null`,
            когда статус был присвоен автоматически. Используйте это поле, чтобы
            отличить ручное одобрение от автоматического.
          properties:
            overridden_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: Статус по результатам собственных проверок платформы.
        decision_trace:
          type: object
          description: >-
            Как был получен статус: кто его установил и какие предупреждения к
            этому привели.
          properties:
            status:
              type: string
              description: Статус сессии.
            decided_by:
              type: string
              nullable: true
              enum:
                - manual
                - automatic
                - investigator
                - null
              description: Кто установил статус. `null`, пока решение по сессии не принято.
            decided_at:
              type: string
              format: date-time
              nullable: true
            automatic_status:
              type: string
              nullable: true
              description: >-
                К какому выводу пришли собственные проверки платформы;
                отличается от `status` после ручного решения.
            terminal_node_id:
              type: string
              nullable: true
              description: Узел статуса сценария, завершивший сессию, если таковой был.
            actor:
              type: object
              nullable: true
              description: Проверяющий, принявший ручное решение.
              properties:
                user:
                  type: string
                  nullable: true
                actor_type:
                  type: string
                  nullable: true
            warning_counts:
              type: object
              description: >-
                Предупреждения по `log_type` (`error`, `warning`, `information`)
                и `total`.
              additionalProperties:
                type: integer
            status_warnings:
              type: array
              description: Предупреждения, установившие статус `Declined` или `In Review`.
              items:
                type: object
                properties:
                  risk:
                    type: string
                  feature:
                    type: string
                    nullable: true
                  node_id:
                    type: string
                    nullable: true
                  log_type:
                    type: string
                    nullable: true
                  check_status:
                    type: string
                    nullable: true
                  source:
                    type: string
                    description: >-
                      Список в payload, из которого поступило предупреждение,
                      например `id_verifications`.
                  short_description:
                    type: string
                    nullable: true
        linked_records:
          type: object
          nullable: true
          description: >-
            Сводка других записей, связанных с сессией. `null`, если отображать
            нечего, а также для сценариев, декларирующих стандарт подтверждения
            возраста.
          properties:
            same_face:
              type: object
              nullable: true
              description: >-
                Другие люди, чьи лица совпали в рамках одного из поисков по лицу
                в этой сессии.
              properties:
                count:
                  type: integer
                best_match:
                  type: object
                  nullable: true
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                    similarity_percentage:
                      type: number
                      nullable: true
            earlier_verifications:
              type: object
              nullable: true
              properties:
                count:
                  type: integer
                vendor_user_id:
                  type: string
                  format: uuid
                  nullable: true
            networks:
              type: object
              nullable: true
              properties:
                count:
                  type: integer
                open:
                  type: integer
                dismissed:
                  type: integer
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      network_id:
                        type: string
                        format: uuid
                      display_number:
                        type: integer
                        nullable: true
                      name:
                        type: string
                      status:
                        type: string
                      risk_score:
                        type: number
                        nullable: true
        workflow_id:
          type: string
          format: uuid
          description: >-
            Постоянный идентификатор группы сценариев, создавшей эту сессию.
            Сценарии версионируются — это значение определяет сам сценарий, а не
            конкретную версию.
          nullable: true
        features:
          type: array
          items:
            type: string
            description: Функция сессии.
          description: >-
            Список функций верификации, настроенных для этой сессии, в виде
            отображаемых имён: `ID_VERIFICATION`, `NFC`, `LIVENESS`,
            `FACE_MATCH`, `POA`, `PHONE`, `EMAIL_VERIFICATION`, `AML`,
            `IP_ANALYSIS`, `DATABASE_VALIDATION`, `QUESTIONNAIRE`,
            `AGE_ESTIMATION`, `FACE_SEARCH`, `GEOLOCATION` (проверка
            местоположения) (сессии Верификации бизнеса используют набор функций
            KYB: `KYB_REGISTRY`, `KYB_DOCUMENTS`, `KYB_KEY_PEOPLE`, `AML`,
            `PHONE`, `EMAIL_VERIFICATION`, `IP_ANALYSIS`, `QUESTIONNAIRE`). При
            `include=events` каждая запись становится объектом `{feature,
            node_id}` вместо простой строки, а функция электронной почты
            переименовывается: в режиме событий она отображается как `EMAIL`
            вместо используемого здесь `EMAIL_VERIFICATION`.
        vendor_data:
          type: string
          description: Данные вендора сессии.
          nullable: true
        metadata:
          type: object
          description: Метаданные сессии.
          nullable: true
        expected_details:
          type: object
          description: >-
            Ожидаемые данные, переданные при создании сессии — используются для
            перекрёстной проверки с извлечёнными данными (KYC) или для
            автозаполнения поиска в реестре компаний (KYB). Возвращает в
            точности те ключи, которые были предоставлены; `null`, если данные
            не передавались. Сессии KYC содержат поля физического лица; сессии
            верификации бизнеса (KYB) содержат `company_name`,
            `registry_country` и `registration_number`.
          properties:
            first_name:
              type: string
              description: Имя пользователя. Например, `John`.
            last_name:
              type: string
              description: Фамилия пользователя. Например, `Doe`.
            date_of_birth:
              type: string
              format: date
              description: >-
                Дата рождения пользователя в формате YYYY-MM-DD. Например,
                `1990-05-15`.
            gender:
              type: string
              nullable: true
              enum:
                - M
                - F
              default: null
              description: Пол пользователя. Должен быть 'M', 'F' или null.
            nationality:
              type: string
              description: >-
                Код страны по стандарту ISO 3166-1 alpha-3, представляющий
                страну происхождения заявителя. Например, `USA`.
            country:
              type: string
              description: >-
                Код страны по стандарту ISO 3166-1 alpha-3, представляющий
                страну документа подтверждения адреса или страну документа,
                удостоверяющего личность заявителя, которая может отличаться от
                гражданства. Например, `GBR`.
            address:
              type: string
              description: >-
                Адрес в удобочитаемом для человека формате, содержащий как можно
                больше информации. Например, `123 Main St, San Francisco, CA
                94105, USA`.
            identification_number:
              type: string
              description: >-
                Номер документа, личный номер или налоговый номер пользователя.
                Например, `123456789`.
            ip_address:
              type: string
              format: ipv4
              description: >-
                Ожидаемый IP-адрес для сессии. Если фактический IP-адрес
                отличается от этого значения, в журнал будет записано
                предупреждение. Например, `192.168.1.100`.
            expected_document_types:
              type: array
              description: >-
                Типы документов, которыми был ограничен шаг верификации личности
                при создании сессии. Пустое или незаданное значение означает
                отсутствие ограничений. Коды: `P` (паспорт), `ID` (национальное
                удостоверение личности), `DL` (водительские права), `RP` (вид на
                жительство), `HIC` (медицинская страховая карта), `TC`
                (налоговая карта), `SSC` (карта социального страхования).
              items:
                type: string
                enum:
                  - P
                  - ID
                  - DL
                  - RP
                  - HIC
                  - TC
                  - SSC
            id_country:
              type: string
              nullable: true
              description: >-
                Ожидаемая страна выдачи документа, удостоверяющего личность (ISO
                3166-1 alpha-3), если она была ограничена при создании.
              example: ESP
            poa_country:
              type: string
              nullable: true
              description: >-
                Ожидаемая страна документа «Подтверждение адреса» (ISO 3166-1
                alpha-3), если она была ограничена при создании.
              example: ESP
            company_name:
              type: string
              description: >-
                Ожидаемое юридическое наименование компании. Только для сессий
                верификации бизнеса (KYB).
            registry_country:
              type: string
              description: >-
                Ожидаемая страна реестра в формате `XX` или `XX-YY` (ISO 3166-1
                alpha-2, при необходимости с подразделом ISO 3166-2 для реестров
                уровня штата/региона, например `US-CA`). Только для сессий
                верификации бизнеса (KYB).
            registration_number:
              type: string
              description: >-
                Ожидаемый регистрационный номер компании. Только для сессий
                верификации бизнеса (KYB).
          nullable: true
        contact_details:
          type: object
          description: >-
            Контактные данные, указанные при создании сессии (используются для
            уведомлений по email, предзаполненной проверки телефона/email и
            выбора языка коммуникации). Равно `null`, если не были указаны ни
            email, ни номер телефона.
          properties:
            email:
              type: string
              description: >-
                Адрес электронной почты пользователя (например,
                "john.doe@example.com"), который будет использоваться на шаге
                «Проверка электронной почты». Если не указан, пользователь
                должен ввести его в процессе верификации.
            email_lang:
              type: string
              description: >-
                Код языка (ISO 639-1) для email-уведомлений. Определяет язык
                всех сообщений по электронной почте (например, «en», «es»,
                «fr»).
            send_notification_emails:
              type: boolean
              default: false
              description: >-
                Если true и указан адрес электронной почты, Didit асинхронно
                отправляет начальное письмо «Подтвердите вашу личность» при
                создании сессии Проверки пользователей (KYC) или Верификации
                бизнеса (KYB). Didit также отправляет уведомления о статусе
                верификации для сессий, требующих ручной проверки, на указанный
                адрес электронной почты.
            phone:
              type: string
              nullable: true
              description: >-
                Номер телефона пользователя в формате E.164 при наличии
                (например, +14155552671). Возвращает `null`, если при создании
                сессии был указан только email. Примечание: это поле возвращает
                исходный номер телефона, указанный при создании сессии. Если
                номер был некорректным, он может быть не в формате E.164.
          nullable: true
        callback:
          type: string
          format: uri
          description: URL обратного вызова сессии.
          nullable: true
        id_verifications:
          type: array
          nullable: true
          description: >-
            **Массив отчётов верификации личности (OCR)**, сформированных шагами
            проверки документов, удостоверяющих личность, в графе сценария.
            Всегда JSON-массив — считывайте `id_verifications[0]` и выполняйте
            итерацию, если ваш сценарий может выполнять более одной проверки
            документов, удостоверяющих личность (например, основную проверку
            плюс дополнительную). Имеет значение `null`, пока хотя бы один шаг
            проверки документов, удостоверяющих личность, не предоставит данные.
            Каждый элемент представляет собой полный отчёт, включая `node_id`,
            `status` на уровне функции, извлечённые поля документа, URL-адреса
            изображений, оценки качества, MRZ, разобранный адрес, совпадения
            между сессиями и `warnings[]`.
          items:
            type: object
            description: >-
              Один отчёт о верификации личности - полный отчёт для одного шага
              Верификации личности. Поле `verification_method` указывает, какой
              из трёх методов создал его (захват документа, проверка без
              документов или вход через кошелёк), а блок данных, относящийся к
              методу, заполняется соответствующим образом.
            properties:
              node_id:
                type: string
                description: ID узла графа сценария для шага OCR, создавшего этот отчёт.
              verification_method:
                type: string
                enum:
                  - document
                  - id_lookup
                  - wallet
                description: >-
                  Какой метод Верификации личности сформировал этот отчёт.
                  `document` - пользователь сфотографировал физический документ
                  (значение по умолчанию и значение для каждой сессии, созданной
                  до появления других методов). `id_lookup` - пользователь ввёл
                  номер своего национального удостоверения личности, и он был
                  проверен по государственному реестру или другому авторитетному
                  источнику для этой страны (в `id_lookup.source` указано,
                  какому именно). `wallet` - пользователь вошёл с помощью
                  государственной или банковской цифровой идентификации.
              assurance:
                type: string
                enum:
                  - documentary
                  - data_match
                  - cryptographic
                description: >-
                  Уровень надёжности, полученный из `verification_method`:
                  `documentary` для документа, который был захвачен и проверен;
                  `data_match` для данных, совпавших с записью в запрошенном
                  источнике; `cryptographic` для атрибутов, аутентифицированных
                  и подписанных провайдером идентификации.
              wallet_provider:
                type: string
                nullable: true
                description: >-
                  Каталожный идентификатор кошелька, если `verification_method`
                  имеет значение `wallet` (`mitid`, `bankid_se`, `itsme`, ...).
                  В остальных случаях `null`.
              fallback_from:
                type: object
                nullable: true
                description: >-
                  Причина, по которой бездокументный метод не завершил шаг
                  проверки личности. Устанавливается при сбое поиска или входа
                  через кошелёк: в отчёте о верификации документа, к которой
                  перешёл пользователь, если переключатель резервного варианта
                  для страны был установлен в `fallback_to_document` (`action`
                  имеет значение `fallback_to_document`), либо в отчёте об
                  отклонении, если он был установлен в `decline`. В противном
                  случае `null`.
                properties:
                  method:
                    type: string
                    enum:
                      - id_lookup
                      - wallet
                    description: Метод, завершившийся ошибкой.
                  reason:
                    type: string
                    description: >-
                      Результат, завершивший процесс, например `no_match`,
                      `provider_error`, `cancelled`, `timeout`.
                  action:
                    type: string
                    enum:
                      - fallback_to_document
                      - decline
                    description: >-
                      Настроенное действие, которое было предпринято:
                      `fallback_to_document` или `decline`.
              id_lookup:
                type: object
                nullable: true
                description: >-
                  Данные из реестра. Присутствуют, только если
                  `verification_method` имеет значение `id_lookup`; в противном
                  случае `null`.
                properties:
                  source:
                    type: string
                    description: >-
                      Отображаемое клиенту название запрошенного источника,
                      например `Department of Home Affairs` (государственный
                      реестр) или `UK credit bureau and financial services
                      records` (не государственный реестр). Это единственное
                      указание на происхождение данных для проверки; не считайте
                      источник по умолчанию государственным.
                  checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Время ответа реестра.
                  attempts:
                    type: integer
                    description: >-
                      Номер попытки (начиная с 1), к которой относится этот
                      отчёт.
                  max_attempts:
                    type: integer
                    description: >-
                      Лимит попыток, настроенный для страны (от 1 до 5, по
                      умолчанию 1).
                  outcome:
                    type: string
                    enum:
                      - match
                      - partial_match
                      - no_match
                      - provider_error
                      - format_rejected
                    nullable: true
                    description: >-
                      Ответ реестра. Только `match`, `partial_match` и
                      `no_match` списываются с лимита попыток и тарифицируются.
                  comparison:
                    type: array
                    description: >-
                      Одна строка на каждое сопоставимое поле, по которому
                      источник предоставил ответ, плюс одна строка на каждую
                      ошибку источника. В строках сравнения используются
                      нормализованные имена полей, приведённые ниже, а не ключи
                      полей запроса для конкретной страны, поскольку несколько
                      полей запроса (имя и фамилия или любые псевдонимы
                      идентификаторов) объединяются в одно сравнение. Источник,
                      завершившийся ошибкой, добавляет строку с `field:
                      "provider"` и `result: "error"`, поэтому проверяйте
                      `result`, прежде чем рассматривать строку как вердикт по
                      полю.
                    items:
                      type: object
                      required:
                        - field
                        - label
                        - provided
                        - record
                        - result
                      properties:
                        field:
                          type: string
                          enum:
                            - identification_number
                            - full_name
                            - date_of_birth
                            - address
                            - provider
                          description: >-
                            Нормализованное поле сравнения. `provider` не
                            является пользовательским полем: оно обозначает
                            строку с ошибкой источника.
                        label:
                          type: string
                          description: >-
                            Отображаемая метка для строки, например `ID number`,
                            `Full name`, `Provider`.
                        provided:
                          type: string
                          nullable: true
                          description: >-
                            То, что ввёл пользователь. `null` в строке ошибки
                            `provider`.
                        record:
                          type: string
                          nullable: true
                          description: >-
                            Данные, содержавшиеся в источнике. В строке с
                            ошибкой `provider` вместо этого содержится сообщение
                            об ошибке.
                        result:
                          type: string
                          enum:
                            - match
                            - partial
                            - no_match
                            - error
                          description: >-
                            Результат сравнения по полям. Значение `error`
                            появляется только в строке `provider` и означает,
                            что данный источник не ответил; интерпретируйте это
                            как свидетельство о запросе, а не как несовпадение
                            полей.
                  registry_portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      Временный предварительно подписанный URL к портретному
                      фото, возвращённому источником. Только для четырёх
                      государственных реестров, которые его возвращают (Южная
                      Африка, Нигерия, Аргентина, Панама).
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Селфи относительно фото из реестра, 0-100. Только если
                      реестр возвращает фотопортрет.
              wallet_verification:
                type: object
                nullable: true
                description: >-
                  Данные, подтверждающие учётные данные. Присутствуют только в
                  том случае, если `verification_method` равен `wallet`; в
                  противном случае `null`.
                properties:
                  provider:
                    type: string
                    description: Каталожный идентификатор кошелька, например `mitid`.
                  provider_name:
                    type: string
                    nullable: true
                    description: >-
                      Название кошелька, известное конечному пользователю,
                      например `MitID`.
                  issuing_authority:
                    type: string
                    nullable: true
                    description: >-
                      Организация, стоящая за кошельком, например `Danish Agency
                      for Digital Government`.
                  issuing_country:
                    type: string
                    description: >-
                      Страна по стандарту ISO 3166-1 alpha-3, в которой был
                      предложен кошелёк.
                  credential_type:
                    type: string
                    nullable: true
                    description: >-
                      Учётные данные, предоставленные кошельком, например
                      `person_identification`.
                  level_of_assurance:
                    type: string
                    enum:
                      - low
                      - substantial
                      - high
                    nullable: true
                    description: >-
                      Уровень доверия, заявленный кошельком. Вход в систему с
                      уровнем ниже запрошенного завершается ошибкой вместо
                      понижения уровня.
                  verified_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Момент времени аутентификации кошелька.
                  signature_valid:
                    type: boolean
                    nullable: true
                    description: >-
                      Прошла ли проверку подписанная аттестация, возвращённая
                      кошельком.
                  attributes:
                    type: object
                    additionalProperties: true
                    description: >-
                      Атрибуты, переданные кошельком, с ключами,
                      соответствующими их перечислению в каталоге кошелька.
                  portrait:
                    type: string
                    format: uri
                    nullable: true
                    description: >-
                      Временный предварительно подписанный URL к портретному
                      фото, переданному кошельком, если он его передаёт.
                  face_match_score:
                    type: number
                    nullable: true
                    description: >-
                      Селфи относительно фотопортрета из кошелька, 0-100, если
                      кошелёк его передаёт.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
                description: >-
                  Статус этого шага верификации личности на уровне функции. Не
                  зависит от общего `status` сессии: сессия может получить
                  итоговое решение, пока отдельная функция остаётся на проверке
                  (`In Review`).
              document_type:
                type: string
                description: Тип документа, удостоверяющего личность
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Принятый код подтипа документа из настроек документов
                  сценария, включая регион документа, если применимо. Примеры:
                  `ID_CARD_GENERIC`, `QUEENSLAND_DRIVER_LICENSE_GENERIC`.
              document_number:
                type: string
                description: Идентификационный номер документа
              personal_number:
                type: string
                description: Личный идентификационный номер
              portrait_image:
                type: string
                format: uri
                description: URL портретного изображения
              front_image:
                type: string
                format: uri
                description: URL изображения лицевой стороны документа
              front_video:
                type: string
                format: uri
                description: URL видеозаписи лицевой стороны документа
              back_image:
                type: string
                format: uri
                description: URL-адрес изображения оборотной стороны документа
              back_video:
                type: string
                format: uri
                description: URL видеозаписи оборотной стороны документа
              full_front_image:
                type: string
                format: uri
                description: URL полного изображения лицевой стороны документа
              full_back_image:
                type: string
                format: uri
                description: URL полного изображения оборотной стороны документа
              front_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL изображения лицевой стороны документа, снятого на
                  фронтальную камеру
              back_image_camera_front:
                type: string
                format: uri
                description: >-
                  URL изображения оборотной стороны документа, снятого на
                  фронтальную камеру
              date_of_birth:
                type: string
                format: date
                description: Дата рождения из документа
              age:
                type: integer
                description: Вычисленный возраст на основе даты рождения
              expiration_date:
                type: string
                format: date
                description: Срок действия документа
              date_of_issue:
                type: string
                format: date
                description: Дата выдачи документа
              issuing_state:
                type: string
                description: ISO-код государства выдачи
              issuing_state_name:
                type: string
                description: Полное название штата выдачи
              first_name:
                type: string
                description: Имя из документа
              last_name:
                type: string
                description: Фамилия из документа
              full_name:
                type: string
                description: Полное имя из документа
              gender:
                type: string
                description: Пол из документа
              address:
                type: string
                description: Необработанный адрес из документа
              formatted_address:
                type: string
                description: Отформатированный полный адрес
              place_of_birth:
                type: string
                description: Место рождения из документа
              marital_status:
                type: string
                description: Семейное положение из документа
              nationality:
                type: string
                description: Код гражданства по стандарту ISO
              extra_fields:
                type: object
                description: >-
                  Дополнительные поля документа. Включает атрибуты, специфичные
                  для документа (например, `dl_categories`, `blood_group`,
                  `sponsor`, `employer`, `dl_class_code_b_from`,
                  `dl_class_code_b_to`). Сроки действия классов водительских
                  прав возвращаются как `dl_class_code_<class>_from` и
                  `dl_class_code_<class>_to`, а коды ограничений или информации
                  по классам (например, колонка 12 прав Великобритании) как
                  `dl_class_code_<class>_notes`. Когда документ содержит имена,
                  адрес или место рождения в нескольких системах письма, этот
                  объект также включает версии этих полей в альтернативной
                  системе письма. Настройка сценария `preferred_characters`
                  (`latin` или `non_latin`) определяет, какая система письма
                  заполняет поля верхнего уровня (`first_name`, `last_name`,
                  `full_name`, `address`, `place_of_birth`); противоположная
                  система письма попадает сюда как `first_name_non_latin` /
                  `last_name_non_latin` / `full_name_non_latin` /
                  `middle_name_non_latin` / `address_non_latin` /
                  `place_of_birth_non_latin` (когда `preferred_characters` равно
                  `latin`) или с суффиксом `_latin` (когда
                  `preferred_characters` равно `non_latin`). Ключи появляются
                  только тогда, когда OCR фактически извлекает реальное значение
                  в альтернативной системе письма: поле, чьё альтернативное
                  значение находится в той же системе письма, что и
                  предпочтительный набор (например, поле с кириллической меткой,
                  чьё значение OCR вернулось в виде латинских омоглифов),
                  пропускается. Если `preferred_characters` имеет значение
                  `latin`, но документ содержит только нелатинский текст, Didit
                  транслитерирует извлечённые значения и предоставляет
                  `first_name_latin` / `last_name_latin` / и т. д. в качестве
                  резервного варианта.
                additionalProperties: true
                properties:
                  dl_categories:
                    type: array
                    items:
                      type: string
                  blood_group:
                    type: string
                    nullable: true
                  first_name_non_latin:
                    type: string
                    description: >-
                      Имя в нелатинской системе письма, если
                      `preferred_characters=latin` и на документе присутствует
                      нелатинская версия (например, `Айна` для кыргызского
                      удостоверения личности).
                  last_name_non_latin:
                    type: string
                    description: >-
                      Фамилия в нелатинской системе письма, если
                      `preferred_characters=latin` и нелатинская версия
                      присутствует в документе.
                  middle_name_non_latin:
                    type: string
                    description: >-
                      Второе имя / отчество в нелатинской системе письма, когда
                      `preferred_characters=latin` и нелатинская версия
                      присутствует в документе.
                  full_name_non_latin:
                    type: string
                    description: >-
                      Составное полное имя в нелатинской системе письма.
                      Формируется из отдельных компонентов, когда доступны и
                      имя, и фамилия.
                  address_non_latin:
                    type: string
                    description: >-
                      Адрес в нелатинской системе письма, когда
                      `preferred_characters=latin` и нелатинская версия
                      присутствует в документе.
                  place_of_birth_non_latin:
                    type: string
                    description: >-
                      Место рождения в нелатинской системе письма, когда
                      `preferred_characters=latin` и в документе присутствует
                      нелатинская версия.
                  first_name_latin:
                    type: string
                    description: >-
                      Имя латиницей. Заполняется, если
                      `preferred_characters=non_latin` и на документе
                      присутствует версия латиницей, либо — в качестве резервной
                      транслитерации — если `preferred_characters=latin`, но
                      документ содержит только нелатинский текст.
                  last_name_latin:
                    type: string
                    description: >-
                      Фамилия латиницей. Те же правила, что и для
                      `first_name_latin`.
                  middle_name_latin:
                    type: string
                    description: >-
                      Второе имя / отчество латиницей. Те же правила, что и для
                      `first_name_latin`.
                  full_name_latin:
                    type: string
                    description: >-
                      Составное полное имя в латинице. Всегда формируется из
                      отдельных компонентов, когда доступны и имя, и фамилия.
                  address_latin:
                    type: string
                    description: >-
                      Адрес латиницей. Те же правила, что и для
                      `first_name_latin`.
                  place_of_birth_latin:
                    type: string
                    description: >-
                      Место рождения латиницей. Те же правила, что и для
                      `first_name_latin`.
              mrz:
                type: object
                nullable: true
                description: >-
                  Распознанные поля машиночитаемой зоны (MRZ), извлеченные из
                  документа. `null`, если MRZ не обнаружена.
                properties:
                  surname:
                    type: string
                    example: MARTINEZ<SANCHEZ
                  name:
                    type: string
                    example: ELENA
                  country:
                    type: string
                    example: ESP
                  nationality:
                    type: string
                    example: ESP
                  birth_date:
                    type: string
                    example: '850315'
                  expiry_date:
                    type: string
                    example: '220821'
                  sex:
                    type: string
                    example: F
                  document_type:
                    type: string
                    example: ID
                  document_number:
                    type: string
                    example: YZA123456
                  optional_data:
                    type: string
                    example: X9876543L
                  optional_data_2:
                    type: string
                    example: ''
                  birth_date_hash:
                    type: string
                    example: '7'
                  expiry_date_hash:
                    type: string
                    example: '4'
                  document_number_hash:
                    type: string
                    example: '9'
                  final_hash:
                    type: string
                    example: '2'
                  personal_number:
                    type: string
                    example: X9876543L
                  warnings:
                    type: array
                    items:
                      type: string
                  errors:
                    type: array
                    items:
                      type: string
                  mrz_type:
                    type: string
                    example: TD1
                  mrz_string:
                    type: string
                    example: |-
                      IDESPMARTINEZ<SANCHEZ<<<<<<<<<<
                      YZA123456<9ESP8503157F3208214<X9876543L<<<<<<<2
                      MARTINEZ<SANCHEZ<<ELENA<<<<<<<<<<
                  mrz_key:
                    type: string
                    example: YZA123456985031573208214
              parsed_address:
                type: object
                description: Структурированные детали адреса
                properties:
                  city:
                    type: string
                  label:
                    type: string
                  region:
                    type: string
                  country:
                    type: string
                    description: Двухбуквенный код страны
                  category:
                    type: string
                    description: Категория адреса (например, Residential, Commercial)
                  street_1:
                    type: string
                  street_2:
                    type: string
                    nullable: true
                  is_verified:
                    type: boolean
                    description: Верифицирован ли адрес
                  postal_code:
                    type: string
                  raw_results:
                    type: object
                    properties:
                      types:
                        type: array
                        items:
                          type: string
                      geometry:
                        type: object
                        properties:
                          location:
                            type: object
                            properties:
                              lat:
                                type: number
                              lng:
                                type: number
                          viewport:
                            type: object
                            properties:
                              northeast:
                                type: object
                                properties:
                                  lat:
                                    type: number
                                  lng:
                                    type: number
                              southwest:
                                type: object
                                properties:
                                  lat:
                                    type: number
                                  lng:
                                    type: number
                          location_type:
                            type: string
                      place_id:
                        type: string
                      formatted_address:
                        type: string
                      navigation_points:
                        type: array
                        items:
                          type: object
                          properties:
                            location:
                              type: object
                              properties:
                                latitude:
                                  type: number
                                longitude:
                                  type: number
                      address_components:
                        type: array
                        items:
                          type: object
                          properties:
                            types:
                              type: array
                              items:
                                type: string
                            long_name:
                              type: string
                            short_name:
                              type: string
                  address_type:
                    type: string
                  document_location:
                    type: object
                    properties:
                      latitude:
                        type: number
                      longitude:
                        type: number
                  formatted_address:
                    type: string
              extra_files:
                type: array
                items:
                  type: string
                  format: uri
                description: Дополнительные файлы верификации документа
              front_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Оценка совпадения лиц между портретом, извлеченным с лицевой
                  стороны документа, и изображением с фронтальной камеры
              back_image_camera_front_face_match_score:
                type: number
                nullable: true
                description: >-
                  Оценка совпадения лиц между портретом, извлеченным с обратной
                  стороны документа, и изображением с фронтальной камеры
              document_selfie_face_matches:
                type: array
                description: >-
                  Предыдущие сессии или записи списка блокировки лиц, чьё лицо
                  совпало с селфи, сделанным фронтальной камерой во время съёмки
                  документа (Silent Capture Face Search). Тот же формат записи,
                  что и в `liveness_checks[].matches`. `null` для сессий,
                  созданных до появления этого поля или когда поиск не
                  выполнялся; пустой массив, если поиск выполнялся и ничего не
                  нашёл. Поле `match_image_url` представляет собой
                  предварительно подписанный URL с ограниченным сроком действия.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID сессии совпадающего лица. `null`, если `source` имеет
                        значение `imported`, `list_entry` или
                        `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Схожесть лиц на двух изображениях, ограниченная
                        диапазоном 0–100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` совпавшей сессии или связанного
                        пользователя для импортированных лиц и лиц с сохранённым
                        шаблоном.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Идентификатор связанного пользователя для совпадений
                        типа `imported` и `retained_template`, а также для
                        совпадений сессий, привязанных к пользователю. `null`
                        для записей списка и сессий без пользователя.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Идентификатор сохранённого биометрического шаблона.
                        Задаётся, только если `source` равен
                        `retained_template`; в противном случае `null`.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Время захвата совпадающего лица или время создания
                        сохранённого шаблона. `null` для записей списка.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Данные личности из совпавшей сессии или импортированного
                        профиля пользователя. Всегда `null` для совпадений с
                        `retained_template` и `list_entry`.
                      properties:
                        full_name:
                          type: string
                          nullable: true
                        document_type:
                          type: string
                          nullable: true
                        document_number:
                          type: string
                          nullable: true
                    match_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Эталонное изображение для сопоставлений на основе
                        изображений. Всегда `null` для сопоставлений по
                        `retained_template`, поскольку сохранённые шаблоны не
                        содержат изображений.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Статус жизненного цикла совпадающей сессии. `null` для
                        источников, не являющихся сессиями.
                    is_blocklisted:
                      type: boolean
                      description: Находится ли совпавшее лицо в списке блокировки.
                    is_allowlisted:
                      type: boolean
                      description: Находится ли совпавшее лицо в списке разрешённых.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Автономный сервис API соответствующей сессии (например,
                        `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` для сессий
                        сценариев и источников вне сессий.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Происхождение совпавшего лица: `session`, `imported`
                        (загрузка лица пользователя), `list_entry` (список
                        разрешений/блокировки) или `retained_template`
                        (биометрический шаблон без изображения, сохраненный для
                        пользователя и указанный в `/v3/biometric-templates/`).
                nullable: true
              front_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Метрики качества изображения лицевой стороны документа. Каждая
                  отдельная оценка находится в диапазоне от 0 до 100.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Чёткость изображения, измеренная по дисперсии лапласиана в
                      верхних 10% локальных областей. Устойчива к документам с
                      большими однородными фонами. Более высокие значения
                      указывают на более чёткое и менее размытое изображение.
                  brightness_score:
                    type: number
                    description: >-
                      Насколько хорошо освещено изображение. Снижает оценку для
                      слишком тёмных или переэкспонированных изображений;
                      идеальная яркость находится ближе к середине диапазона.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Указывает направление проблемы с яркостью, когда
                      brightness_score низкий. 'ok' означает приемлемую яркость,
                      'too_dark' означает недоэкспонированное изображение,
                      'too_bright' означает переэкспонированное изображение.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true, если все четыре угла документа полностью видны в
                      границах изображения; false, если хотя бы один угол
                      обрезан. Null, если координаты углов недоступны.
                  resolution_score:
                    type: number
                    description: >-
                      Фактическое разрешение изображения на основе общего
                      количества пикселей.
                  overall_score:
                    type: number
                    description: >-
                      Взвешенная сумма субоценок (фокус 45%, яркость 30%,
                      разрешение 25%).
              back_image_quality_score:
                type: object
                nullable: true
                description: >-
                  Метрики качества изображения оборотной стороны документа.
                  Структура аналогична front_image_quality_score.
                properties:
                  focus_score:
                    type: number
                    description: >-
                      Чёткость изображения, измеренная по дисперсии лапласиана в
                      верхних 10% локальных областей. Устойчива к документам с
                      большими однородными фонами. Более высокие значения
                      указывают на более чёткое и менее размытое изображение.
                  brightness_score:
                    type: number
                    description: >-
                      Насколько хорошо освещено изображение. Снижает оценку для
                      слишком тёмных или переэкспонированных изображений;
                      идеальная яркость находится ближе к середине диапазона.
                  brightness_issue:
                    type: string
                    enum:
                      - ok
                      - too_dark
                      - too_bright
                    description: >-
                      Указывает направление проблемы с яркостью, когда
                      brightness_score низкий. 'ok' означает приемлемую яркость,
                      'too_dark' означает недоэкспонированное изображение,
                      'too_bright' означает переэкспонированное изображение.
                  is_document_fully_visible:
                    type: boolean
                    nullable: true
                    description: >-
                      true, если все четыре угла документа полностью видны в
                      границах изображения; false, если хотя бы один угол
                      обрезан. Null, если координаты углов недоступны.
                  resolution_score:
                    type: number
                    description: >-
                      Фактическое разрешение изображения на основе общего
                      количества пикселей.
                  overall_score:
                    type: number
                    description: >-
                      Взвешенная сумма субоценок (фокус 45%, яркость 30%,
                      разрешение 25%).
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение (например,
                        `ID_VERIFICATION`, `NFC`, `LIVENESS`). Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю,
                        однако перечисление выше является определяющим для всех
                        предупреждений функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                      description: Дополнительные контекстные данные о предупреждении
                    log_type:
                      type: string
                      description: 'Тип журнала: информация, предупреждение или ошибка'
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение (для сценариев на основе графа)
                description: Предупреждения при верификации документов
              matches:
                type: array
                description: >-
                  Совпадающие документы, найденные при обнаружении
                  дубликатов/проверке по списку блокировки (до 5 совпадений)
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID сессии совпадающего документа
                    session_number:
                      type: integer
                      description: Номер сессии совпадающего документа
                    vendor_data:
                      type: string
                      nullable: true
                      description: Данные вендора, связанные с совпадающей сессией
                    verification_date:
                      type: string
                      format: date-time
                      description: Дата, когда совпадающая сессия была верифицирована
                    user_details:
                      type: object
                      properties:
                        name:
                          type: string
                          description: Полное имя из соответствующего документа
                        document_type:
                          type: string
                          description: Тип совпадающего документа
                        document_number:
                          type: string
                          description: Номер документа совпавшего документа
                    status:
                      type: string
                      description: Статус сопоставляемой сессии
                    is_blocklisted:
                      type: boolean
                      description: Находится ли совпавший документ в списке блокировки
                    api_service:
                      type: string
                      nullable: true
                      description: Тип API-сервиса совпадающей сессии
                    front_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: URL изображения лицевой стороны совпавшего документа
              document_liveness:
                type: object
                nullable: true
                description: >-
                  Оценки проверки живости документа по типам мошенничества,
                  возвращаемые независимо от того, сработало ли предупреждение,
                  чтобы одобренный документ можно было проверить в рамках
                  аудита. `null`, если проверка не выполнялась.
                properties:
                  portrait_replace:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Вероятность того, что документ подлинный для этого
                          типа мошенничества, 0-100 (чем выше, тем вероятнее
                          подлинность). Меньшее из значений двух сторон -
                          значение, использованное при принятии решения. `null`,
                          если ни одна из сторон не вернула пригодную для
                          использования оценку.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для лицевой стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для обратной стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог отклонения, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Null, если исторические данные оценки
                          недоступны.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог проверки, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Имеет значение null, если исторические данные
                          оценки недоступны.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          Категория типа мошенничества, сохранённая на момент
                          оценки. Имеет значение null, если нет подходящей
                          оценки, проверка не применялась или недоступны
                          исторические свидетельства оценки. Последующие
                          изменения сценария её не меняют.
                  printed_copy:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Вероятность того, что документ подлинный для этого
                          типа мошенничества, 0-100 (чем выше, тем вероятнее
                          подлинность). Меньшее из значений двух сторон -
                          значение, использованное при принятии решения. `null`,
                          если ни одна из сторон не вернула пригодную для
                          использования оценку.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для лицевой стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для обратной стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог отклонения, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Null, если исторические данные оценки
                          недоступны.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог проверки, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Имеет значение null, если исторические данные
                          оценки недоступны.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          Категория типа мошенничества, сохранённая на момент
                          оценки. Имеет значение null, если нет подходящей
                          оценки, проверка не применялась или недоступны
                          исторические свидетельства оценки. Последующие
                          изменения сценария её не меняют.
                  screen_replay:
                    type: object
                    nullable: true
                    properties:
                      score:
                        type: number
                        nullable: true
                        description: >-
                          Вероятность того, что документ подлинный для этого
                          типа мошенничества, 0-100 (чем выше, тем вероятнее
                          подлинность). Меньшее из значений двух сторон -
                          значение, использованное при принятии решения. `null`,
                          если ни одна из сторон не вернула пригодную для
                          использования оценку.
                      front:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для лицевой стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      back:
                        type: number
                        nullable: true
                        description: >-
                          Оценка для обратной стороны; `null`, если она не была
                          захвачена или если оценка была отброшена.
                      decline_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог отклонения, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Null, если исторические данные оценки
                          недоступны.
                      review_threshold:
                        type: number
                        nullable: true
                        description: >-
                          Порог проверки, сохранённый при оценке этого
                          документа. Последующие изменения сценария его не
                          меняют. Имеет значение null, если исторические данные
                          оценки недоступны.
                      bucket:
                        type: string
                        nullable: true
                        enum:
                          - approve
                          - review
                          - decline
                          - null
                        description: >-
                          Категория типа мошенничества, сохранённая на момент
                          оценки. Имеет значение null, если нет подходящей
                          оценки, проверка не применялась или недоступны
                          исторические свидетельства оценки. Последующие
                          изменения сценария её не меняют.
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Валидация адреса, напечатанного на этом документе: существует
                  ли он и его нормализованная форма в том виде, как он был
                  прочитан из документа (последующее исправление `address` не
                  запускает её повторно). Присутствует, когда в этом шаге
                  верификации личности включён аддон валидации адреса; иначе
                  `null`.
              region:
                type: string
                nullable: true
                description: >-
                  Регион или штат страны выдачи документа, если он указан в
                  документе.
              extracted_data:
                type: object
                nullable: true
                additionalProperties: true
                description: >-
                  Снимок извлечённых из документа данных, которые были показаны
                  человеку для проверки; сохраняется рядом с подтверждёнными
                  значениями, чтобы можно было сравнить прочитанные данные с
                  теми, что подтвердил пользователь. `null`, если человека не
                  просили провести проверку.
              barcodes:
                type: array
                items:
                  type: object
                  additionalProperties: true
                description: >-
                  Данные, считанные со штрихкодов документа. Пусто, если у
                  документа их нет или ничего не было считано.
        nfc_skip_reason:
          type: string
          nullable: true
          enum:
            - USER_SKIPPED
            - DOCUMENT_WITHOUT_CHIP
            - CHIP_CERTIFICATE_UNAVAILABLE
            - DEVICE_WITHOUT_NFC
            - INTEGRATION_WITHOUT_NFC_ACCESS
            - MRZ_KEY_UNAVAILABLE
            - JPKI_UNAVAILABLE
          description: >-
            Причина, по которой проверка NFC-чипа не была выполнена; заполняется
            всегда, когда сценарий включает шаг NFC. `null`, пока NFC находится
            в ожидании или если чип был фактически считан. Значения:
            `USER_SKIPPED` - пользователь решил пропустить шаг на устройстве с
            поддержкой NFC (разрешено параметром `allow_nfc_skip`);
            `DOCUMENT_WITHOUT_CHIP` - документ не содержит читаемого NFC-чипа
            (не является электронным документом ICAO 9303);
            `CHIP_CERTIFICATE_UNAVAILABLE` - сертификат подписи страны выдачи
            (CSCA), охватывающий период выпуска документа, недоступен, поэтому
            подпись чипа не может быть проверена; `DEVICE_WITHOUT_NFC` -
            устройство сообщило об отсутствии NFC-считывателя;
            `INTEGRATION_WITHOUT_NFC_ACCESS` - верификация выполнялась без
            нативного SDK (например, в веб-браузере), который не имеет доступа к
            NFC-считывателю телефона; `MRZ_KEY_UNAVAILABLE` - ключ доступа к
            чипу не удалось получить из MRZ документа; `JPKI_UNAVAILABLE` -
            документ представляет собой японскую карту My Number Card, чип
            которой считывается через JPKI, и JPKI был недоступен для этой
            верификации: он не включён или нативный SDK приложения не может
            считывать карты My Number Card.
        nfc_verifications:
          type: array
          nullable: true
          description: >-
            **Массив отчётов NFC / электронных паспортов**, сформированных
            шагами NFC в графе сценария. **Это всегда JSON-массив, а не
            отдельный объект `nfc`** — считывайте `nfc_verifications[0]` и
            выполняйте итерацию, если ваш сценарий может выполнять NFC-проверку
            более одного раза. Имеет значение `null`, пока хотя бы один шаг NFC
            не предоставит данные. Каждый элемент представляет собой полный
            отчёт, включая `node_id`, `status` на уровне функции,
            `chip_protocol`, `chip_data`, `authenticity` (целостность SOD + DG),
            `certificate_summary` и `warnings[]`. Японская карта My Number Card
            считывается через JPKI вместо ICAO 9303: её элемент содержит
            `chip_protocol: "jpki"`, содержит свои данные в `jpki`, а поля ICAO
            оставляет равными `null`. Если шаг NFC был обойдён ещё до того, как
            его можно было предложить (документ без чипа, отсутствие
            сертификата, не заявлена поддержка NFC, нечитаемый ключ MRZ,
            недоступность JPKI для My Number Card), этот массив остаётся `null`,
            а причина указывается в `nfc_skip_reason`; пропуск на самом шаге
            (пользователь нажал кнопку пропуска или считыватель оказался
            недоступен во время сканирования) всё равно формирует отчёт с
            `is_nfc_skipped: true`.
          items:
            type: object
            description: >-
              Один NFC-отчёт: полный отчёт по одному считыванию чипа (чип
              ePassport или eID стандарта ICAO 9303, либо японская карта My
              Number Card, считанная через JPKI).
            properties:
              node_id:
                type: string
                description: >-
                  ID узла графа сценария для шага NFC, создавшего этот отчёт.
                  Используйте его для сопоставления отчёта с определением
                  сценария.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Статус этого шага NFC на уровне функции. Не зависит от общего
                  `status` сессии: сессия может получить итоговое решение, пока
                  отдельная функция остаётся `In Review`.
              is_nfc_skipped:
                type: boolean
                description: >-
                  `true`, если этот шаг NFC был явно пропущен вместо считывания;
                  причина указана в `skip_reason`.
              skip_reason:
                type: string
                nullable: true
                enum:
                  - USER_SKIPPED
                  - DOCUMENT_WITHOUT_CHIP
                  - CHIP_CERTIFICATE_UNAVAILABLE
                  - DEVICE_WITHOUT_NFC
                  - INTEGRATION_WITHOUT_NFC_ACCESS
                  - MRZ_KEY_UNAVAILABLE
                  - JPKI_UNAVAILABLE
                description: >-
                  Почему этот шаг NFC был пропущен. Устанавливается, только если
                  `is_nfc_skipped` равен `true`. Та же таксономия, что и у
                  `nfc_skip_reason` на уровне сессии, которая дополнительно
                  охватывает случаи, когда NFC вообще не сформировал отчёт.
              chip_protocol:
                type: string
                enum:
                  - icao
                  - jpki
                description: >-
                  Способ чтения чипа на шаге NFC. `icao`: чип биометрического
                  паспорта или электронного удостоверения личности ICAO 9303,
                  открываемый с помощью ключа доступа из MRZ. `jpki`: японская
                  карта My Number Card, где карта подписывает одноразовый запрос
                  после ввода держателем PIN-кода карты в нативном SDK;
                  результат находится в `jpki`. Также устанавливается для
                  пропущенных шагов, чтобы можно было отличить пропущенное
                  чтение карты My Number Card.
              jpki:
                type: object
                nullable: true
                description: >-
                  Что подтвердило считывание японской карты My Number через
                  JPKI. Присутствует, когда `chip_protocol` имеет значение
                  `jpki` и карта была считана. `null` для чипов ICAO, для
                  пропущенных шагов и в случаях, когда шаг NFC завершился без
                  считывания карты (в этом случае возникает
                  `JPKI_SIGNATURE_INVALID`). Никогда не содержит сертификаты, их
                  серийные номера, подписи или 12-значный номер My Number.
                properties:
                  certificate_types:
                    type: array
                    items:
                      type: string
                      enum:
                        - user_authentication
                        - signature
                    description: >-
                      Прочитанные сертификаты карты. `user_authentication`
                      (4-значный PIN-код) считывается всегда; `signature`
                      (PIN-код подписи) считывается, когда включена настройка
                      `jpki_request_attributes` узла NFC.
                  chain_valid:
                    type: boolean
                    description: >-
                      `true`, когда каждый прочитанный сертификат выстраивает
                      цепочку до удостоверяющего центра JPKI, находится в
                      пределах срока действия и является сертификатом My Number
                      Card своего типа.
                  signature_valid:
                    type: boolean
                    description: >-
                      `true`, когда каждая подпись, сформированная картой для
                      одноразового вызова, успешно проходит проверку. Карта
                      ставит подпись только после ввода PIN-кода, что
                      подтверждает владение картой и знание PIN-кода.
                  revocation_status:
                    type: string
                    enum:
                      - good
                      - revoked
                      - unchecked
                    description: >-
                      `good`, если проверка отзыва подтвердила действительность
                      каждого сертификата, `revoked`, если какой-либо сертификат
                      отозван (например, карта заявлена как утерянная),
                      `unchecked`, если ответ об отзыве не был получен.
                      `unchecked` никогда не трактуется как `good`: исход
                      определяет параметр `jpki_revocation_unchecked_action`
                      NFC-узла (по умолчанию `REVIEW`).
                  ca_generation:
                    type: string
                    nullable: true
                    description: >-
                      Поколение центра сертификации JPKI, выдавшего сертификаты,
                      например `2023`. `null`, если ни один сертификат не
                      выстраивает цепочку доверия к нему.
                  certificate_expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Самый ранний срок действия среди прочитанных сертификатов.
                  certificates:
                    type: array
                    items:
                      type: object
                      description: >-
                        Что подтвердил один сертификат, считанный с карты.
                        Никогда не сам сертификат и не его серийный номер.
                      properties:
                        type:
                          type: string
                          enum:
                            - user_authentication
                            - signature
                          description: Какой сертификат карты описывает эта запись.
                        chain_valid:
                          type: boolean
                          description: >-
                            `true`, когда сертификат выстраивает цепочку до
                            удостоверяющего центра JPKI своего типа, находится в
                            пределах срока действия и является сертификатом My
                            Number Card этого типа.
                        signature_valid:
                          type: boolean
                          description: >-
                            `true`, когда подпись карты для одноразового вызова
                            успешно подтверждается этим сертификатом.
                        ca_generation:
                          type: string
                          nullable: true
                          description: >-
                            Поколение центра сертификации JPKI, выдавшего
                            сертификат, например `2023`. `null`, если доверенный
                            издатель не найден.
                        not_valid_before:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Начало срока действия сертификата. `null`, если
                            сертификат не удалось прочитать.
                        not_valid_after:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Окончание срока действия сертификата. `null`, если
                            сертификат не удалось прочитать.
                        failure:
                          type: string
                          nullable: true
                          enum:
                            - unreadable_certificate
                            - untrusted_issuer
                            - expired
                            - not_yet_valid
                            - wrong_policy
                            - key_usage
                            - null
                          description: >-
                            Причина, по которой `chain_valid` имеет значение
                            `false`: `unreadable_certificate`,
                            `untrusted_issuer` (выдан не центром сертификации
                            JPKI соответствующего типа), `expired`,
                            `not_yet_valid`, `wrong_policy` (не является
                            сертификатом My Number Card этого типа) или
                            `key_usage` (ключ не может подписывать). `null`,
                            если цепочка действительна.
                    description: >-
                      Результаты по каждому сертификату, по одной записи на
                      каждый считанный сертификат.
                  attributes:
                    type: object
                    nullable: true
                    description: >-
                      Данные владельца из сертификата подписи, после того как
                      его цепочка станет валидной. `null`, если сертификат
                      подписи не запрашивался или не выстраивает цепочку до
                      центра сертификации JPKI.
                    properties:
                      full_name:
                        type: string
                        nullable: true
                        description: >-
                          Имя, указанное при регистрации, обычно в японской
                          системе письма.
                      date_of_birth:
                        type: string
                        format: date
                        nullable: true
                        description: >-
                          Дата рождения, `YYYY-MM-DD`. `null`, если
                          зарегистрированная дата неполная.
                      gender:
                        type: string
                        nullable: true
                        enum:
                          - M
                          - F
                          - null
                        description: '`M`, `F` или `null`, если не зарегистрировано.'
                      address:
                        type: string
                        nullable: true
                        description: Зарегистрированный адрес.
                      name_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          Строка позиций, отмечающая символы в `full_name`,
                          которые были заменены, так как исходный символ
                          находится вне стандартного набора символов. `null`,
                          если замены не производились.
                      address_substitute_characters:
                        type: string
                        nullable: true
                        description: >-
                          Строка позиций, отмечающая символы-заменители в
                          `address`, аналогично `name_substitute_characters`.
                  attributes_match_ocr:
                    type: boolean
                    nullable: true
                    description: >-
                      `true`, когда атрибуты совпадают с данными, считанными с
                      фотографии той же карты, `false`, когда какой-либо атрибут
                      отличается (`JPKI_AND_OCR_DATA_NOT_SAME`), `null`, когда
                      сравнение выполнить не удалось, в том числе если
                      `attributes` имеет значение `null`.
                  mismatched_attributes:
                    type: array
                    items:
                      type: string
                      enum:
                        - full_name
                        - date_of_birth
                        - gender
                        - address
                    description: >-
                      Названия атрибутов, которые отличаются от данных с
                      фотографии; сами значения никогда не возвращаются. Пусто,
                      если все сравниваемые атрибуты совпадают.
              portrait_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  Предварительно подписанный URL портрета, считанного с чипа
                  (ICAO DG2). `null` для чтения JPKI (`chip_protocol: "jpki"`) и
                  для пропущенных шагов.
              signature_image:
                type: string
                format: uri
                nullable: true
                description: >-
                  Предварительно подписанный URL изображения подписи владельца,
                  считанного с чипа (ICAO DG7), если оно сохранено на чипе.
                  `null` для чтения JPKI (`chip_protocol: "jpki"`) и для
                  пропущенных шагов.
              chip_data:
                type: object
                nullable: true
                description: >-
                  Персональные данные, извлечённые из групп данных чипа ICAO.
                  `null` при считывании JPKI (`chip_protocol: "jpki"`) и для
                  пропущенных шагов.
                properties:
                  document_type:
                    type: string
                  issuing_country:
                    type: string
                  document_number:
                    type: string
                  expiration_date:
                    type: string
                    format: date
                  first_name:
                    type: string
                  last_name:
                    type: string
                  birth_date:
                    type: string
                    format: date
                  gender:
                    type: string
                  nationality:
                    type: string
                  address:
                    type: string
                  place_of_birth:
                    type: string
              authenticity:
                type: object
                nullable: true
                description: >-
                  Пассивная аутентификация ICAO: подпись SOD (`sod_integrity`) и
                  хеши Data Group (`dg_integrity`). Значение `null` для чтения
                  JPKI, подтверждение которого передается в `jpki`.
                properties:
                  sod_integrity:
                    type: boolean
                  dg_integrity:
                    type: boolean
              certificate_summary:
                type: object
                nullable: true
                description: >-
                  Сводка сертификата лица, подписавшего документ ИКАО (Document
                  Signer Certificate). `null` для чтения JPKI (`chip_protocol:
                  "jpki"`) и для пропущенных шагов.
                properties:
                  issuer:
                    type: string
                  subject:
                    type: string
                  serial_number:
                    type: string
                  not_valid_after:
                    type: string
                    format: date-time
                  not_valid_before:
                    type: string
                    format: date-time
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
        liveness_checks:
          type: array
          nullable: true
          description: >-
            **Массив отчётов проверки живости**, сформированных шагами проверки
            живости в графе сценария. Всегда JSON-массив — никогда не отдельный
            объект `liveness`. Имеет значение `null`, пока хотя бы один шаг
            проверки живости не предоставит данные. Каждый элемент представляет
            собой полный отчёт, включая `node_id`, `status` на уровне функции,
            `method`, `score`, `reference_image`, `video_url`, опциональную
            `age_estimation`, `matches[]` между сессиями и `warnings[]`.
          items:
            type: object
            description: >-
              Один отчёт о проверке живости — полный отчёт по одной проверке
              живости.
            properties:
              node_id:
                type: string
                description: >-
                  ID узла графа сценария для шага проверки живости, создавшего
                  этот отчёт.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Статус этого шага проверки живости на уровне функции. Не
                  зависит от общего `status` сессии: сессия может получить
                  итоговое решение, пока отдельная функция остаётся на проверке
                  (`In Review`).
              method:
                type: string
                description: Метод, использованный для проверки живости
              score:
                type: number
                description: Оценка уверенности проверки живости
              reference_image:
                type: string
                format: uri
                description: URL использованного эталонного изображения
              video_url:
                type: string
                format: uri
                description: URL видеозаписи проверки живости
              age_estimation:
                type: number
                description: Оценочный возраст человека
              matches:
                type: array
                description: >-
                  Похожие лица, найденные при поиске дубликатов лиц (наиболее
                  близкие совпадения, записи из списков блокировки/разрешений
                  идут первыми). Поле `source` каждой записи указывает, откуда
                  поступило совпавшее лицо: `session` (другая сессия
                  верификации), `imported` (лицо, загруженное для пользователя
                  вендора), `list_entry` (лицо из списка разрешений или
                  блокировок организации) или `retained_template`
                  (биометрический шаблон без изображения, сохраненный для
                  пользователя и доступный по пути `/v3/biometric-templates/`).
                  Поля `session_id`, `session_number`, `status` и `api_service`
                  имеют значение `null` для источников, отличных от сессий.
                  Совпадения типа `imported` по-прежнему заполняют поля
                  `vendor_data`, `verification_date` и — если у пользователя
                  вендора указано имя — `user_details` (только с `full_name`) из
                  записи пользователя вендора; совпадения типа
                  `retained_template` заполняют `vendor_user_id`, `vendor_data`,
                  `biometric_template_id` и `verification_date`, тогда как их
                  поля изображения и данных личности равны `null`; совпадения
                  типа `list_entry` возвращают все эти поля со значением `null`.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        ID сессии совпадающего лица. `null`, если `source` имеет
                        значение `imported`, `list_entry` или
                        `retained_template`.
                    session_number:
                      type: integer
                      nullable: true
                    similarity_percentage:
                      type: number
                      description: >-
                        Схожесть лиц на двух изображениях, ограниченная
                        диапазоном 0–100.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` совпавшей сессии или связанного
                        пользователя для импортированных лиц и лиц с сохранённым
                        шаблоном.
                    vendor_user_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Идентификатор связанного пользователя для совпадений
                        типа `imported` и `retained_template`, а также для
                        совпадений сессий, привязанных к пользователю. `null`
                        для записей списка и сессий без пользователя.
                    biometric_template_id:
                      type: string
                      format: uuid
                      nullable: true
                      description: >-
                        Идентификатор сохранённого биометрического шаблона.
                        Задаётся, только если `source` равен
                        `retained_template`; в противном случае `null`.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: >-
                        Время захвата совпадающего лица или время создания
                        сохранённого шаблона. `null` для записей списка.
                    user_details:
                      type: object
                      nullable: true
                      description: >-
                        Данные личности из совпавшей сессии или импортированного
                        профиля пользователя. Всегда `null` для совпадений с
                        `retained_template` и `list_entry`.
                      properties:
                        full_name:
                          type: string
                          nullable: true
                        document_type:
                          type: string
                          nullable: true
                        document_number:
                          type: string
                          nullable: true
                    match_image_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Эталонное изображение для сопоставлений на основе
                        изображений. Всегда `null` для сопоставлений по
                        `retained_template`, поскольку сохранённые шаблоны не
                        содержат изображений.
                    status:
                      type: string
                      nullable: true
                      description: >-
                        Статус жизненного цикла совпадающей сессии. `null` для
                        источников, не являющихся сессиями.
                    is_blocklisted:
                      type: boolean
                      description: Находится ли совпавшее лицо в списке блокировки.
                    is_allowlisted:
                      type: boolean
                      description: Находится ли совпавшее лицо в списке разрешённых.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Автономный сервис API соответствующей сессии (например,
                        `PASSIVE_LIVENESS`, `FACE_MATCH`); `null` для сессий
                        сценариев и источников вне сессий.
                    source:
                      type: string
                      enum:
                        - session
                        - imported
                        - list_entry
                        - retained_template
                      description: >-
                        Происхождение совпавшего лица: `session`, `imported`
                        (загрузка лица пользователя), `list_entry` (список
                        разрешений/блокировки) или `retained_template`
                        (биометрический шаблон без изображения, сохраненный для
                        пользователя и указанный в `/v3/biometric-templates/`).
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
              face_quality:
                type: number
                nullable: true
                description: >-
                  Оценка качества изображения лица (0-100%). Доступно только для
                  пассивной проверки живости.
              face_luminance:
                type: number
                nullable: true
                description: >-
                  Оценка освещенности/яркости лица (0-100%). Доступно только для
                  пассивной проверки живости.
        face_matches:
          type: array
          nullable: true
          description: >-
            **Массив отчётов сравнения лиц**, сформированных шагами сравнения
            лиц в графе сценария. Всегда JSON-массив — никогда не отдельный
            объект `face_match`. Имеет значение `null`, пока хотя бы один шаг
            сравнения лиц не предоставит данные. Каждый элемент представляет
            собой полный отчёт, включая `node_id`, `status` на уровне функции,
            `score` сходства, `source_image`, `target_image` и `warnings[]`.
          items:
            type: object
            description: Один отчёт о сравнении лиц — полный отчёт.
            properties:
              node_id:
                type: string
                description: >-
                  ID узла графа сценария для шага сравнения лиц, создавшего этот
                  отчёт.
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: >-
                  Статус этого шага сравнения лиц на уровне функции. Не зависит
                  от общего `status` сессии: сессия может получить итоговое
                  решение, пока отдельная функция остаётся `In Review`.
              score:
                type: number
                description: Оценка уверенности сравнения лиц
              source_image_session_id:
                type: string
                format: uuid
                nullable: true
                description: >-
                  ID сессии, в которой сохранён исходный (эталонный) портрет. В
                  сценариях биометрической аутентификации это собственный ID
                  сессии (переданный портрет сохраняется в новой сессии).
                  `null`, если исходным изображением является портрет из
                  документа той же сессии.
              source_image:
                type: string
                format: uri
                description: URL исходного изображения, использованного для сравнения
              target_image:
                type: string
                format: uri
                description: URL целевого изображения, использованного для сравнения
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
                description: Предупреждения верификации сравнения лиц
              face_coverage:
                type: object
                nullable: true
                description: >-
                  Закрыты ли глаза, рот и лицо на сделанном снимке. Возвращается
                  только методом `GET /v3/session/{sessionId}/decision/`; не
                  входит в payload webhook. `null`, если данные о перекрытии
                  отсутствуют.
                properties:
                  eyes:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` означает, что считывание является только
                          теневым подтверждением и ни одно предупреждение по
                          нему не срабатывает.
                      visibility_score:
                        type: number
                        nullable: true
                  mouth:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` означает, что считывание является только
                          теневым подтверждением и ни одно предупреждение по
                          нему не срабатывает.
                      visibility_score:
                        type: number
                        nullable: true
                  face:
                    type: object
                    properties:
                      covered:
                        type: boolean
                        nullable: true
                      calibrated:
                        type: boolean
                        nullable: true
                        description: >-
                          `false` означает, что считывание является только
                          теневым подтверждением и ни одно предупреждение по
                          нему не срабатывает.
                      visibility_score:
                        type: number
                        nullable: true
        phone_verifications:
          type: array
          nullable: true
          description: >-
            **Массив отчётов проверки телефона** — всегда JSON-массив, а не
            отдельный объект `phone`. Имеет значение `null`, пока хотя бы один
            шаг проверки телефона не предоставит данные. Каждый элемент
            представляет собой полный отчёт, включая `node_id`, `status` на
            уровне функции, номер телефона и метаданные страны, `lifecycle[]`,
            `matches[]` и `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Уникальный идентификатор этого шага проверки телефона в графе
                  сценария.
              status:
                type: string
                description: >-
                  Статус этого шага проверки телефона на уровне функции. Не
                  зависит от общего `status` сессии: сессия может получить
                  итоговое решение, пока отдельная функция остаётся `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              phone_number_prefix:
                type: string
                description: Префикс телефонного кода страны
              phone_number:
                type: string
                description: Номер телефона без кода страны
              full_number:
                type: string
                description: Полный номер телефона с префиксом страны
              country_code:
                type: string
                description: Двухбуквенный код страны (ISO 3166-1 alpha-2)
              country_name:
                type: string
                description: Полное название страны
              carrier:
                type: object
                properties:
                  name:
                    type: string
                    description: Название оператора связи
                  type:
                    type: string
                    description: Тип телефонной линии (мобильная, городская и т. д.)
              is_disposable:
                type: boolean
                description: Принадлежит ли номер телефона сервису одноразовых номеров
              is_virtual:
                type: boolean
                description: Является ли номер телефона виртуальным
              verification_method:
                type: string
                description: Метод, использованный для проверки номера телефона
              verification_attempts:
                type: integer
                description: Количество выполненных попыток верификации
              verified_at:
                type: string
                format: date-time
                description: Временная метка подтверждения телефона
              lifecycle:
                type: array
                description: >-
                  Хронологический список событий жизненного цикла проверки
                  телефона.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Специфичный для события payload. События отправки
                        содержат `status`, `reason`, `channel`,
                        `actual_channel`; события доставки содержат `channel`,
                        `status`; события проверки кода содержат `code_tried`,
                        `status`; события финального статуса содержат `reason` —
                        или `null`, если причина для отчёта отсутствует
                        (например, `PHONE_VERIFICATION_APPROVED`).
                      properties:
                        status:
                          type: string
                        reason:
                          type: string
                          nullable: true
                        channel:
                          type: string
                          nullable: true
                        actual_channel:
                          type: string
                          nullable: true
                        code_tried:
                          type: string
                    fee:
                      type: number
              warnings:
                type: array
                description: Список предупреждений, связанных с проверкой телефона
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
              matches:
                type: array
                description: >-
                  Совпадения, найденные для этого номера телефона. Каждое
                  совпадение имеет `source`: `session` (другая сессия
                  верификации в вашем приложении совпала по тому же номеру,
                  возвращается с
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  или `list_entry` (номер находится в управляемом организацией
                  списке разрешений/блокировок — см.
                  `/management-api/lists/overview`). Межсессионные совпадения
                  используют разные `vendor_data` и ограничены максимум 5.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_data:
                      type: string
                      nullable: true
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                    phone_number:
                      type: string
                    status:
                      type: string
                      nullable: true
                    is_blocklisted:
                      type: boolean
                    api_service:
                      type: string
                      nullable: true
                    source:
                      type: string
                      enum:
                        - session
                        - list_entry
                      description: >-
                        Источник этого совпадения. Значение `session` означает,
                        что по этому значению совпала другая сессия верификации
                        в вашем приложении. Значение `list_entry` означает, что
                        значение совпало со списком, управляемым организацией
                        (списком разрешений/списком блокировки) — подробнее об
                        управлении этими списками см. в обзоре списков
                        Management API по адресу
                        `/management-api/lists/overview`.
              phone_intelligence:
                allOf:
                  - $ref: '#/components/schemas/PhoneIntelligence'
                description: >-
                  Аналитические сигналы по номеру телефона. Присутствуют только
                  в том случае, если для этого номера выполнялся аддон анализа
                  номеров телефонов.
              phone_social:
                allOf:
                  - $ref: '#/components/schemas/PhoneSocialFootprint'
                description: >-
                  Цифровой след номера в сети. Присутствует, только если для
                  этого номера было запущено дополнение анализа цифрового следа.
        email_verifications:
          type: array
          nullable: true
          description: >-
            **Массив отчётов проверки электронной почты** — всегда JSON-массив,
            а не отдельный объект `email`. Имеет значение `null`, пока хотя бы
            один шаг проверки электронной почты не предоставит данные. Каждый
            элемент представляет собой полный отчёт, включая `node_id`, `status`
            на уровне функции, адрес электронной почты, данные об утечках,
            `lifecycle[]`, `matches[]` и `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Уникальный идентификатор этого шага проверки электронной почты
                  в графе сценария.
              status:
                type: string
                description: >-
                  Статус этого шага проверки электронной почты на уровне
                  функции. Не зависит от общего `status` сессии: сессия может
                  получить итоговое решение, пока отдельная функция остаётся на
                  проверке (`In Review`).
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Expired
              email:
                type: string
                description: Проверяемый адрес электронной почты
              is_breached:
                type: boolean
                description: >-
                  Указывает, был ли адрес электронной почты найден в известных
                  утечках данных
              breaches:
                type: array
                description: >-
                  Список известных утечек, в которых был обнаружен этот адрес
                  электронной почты
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Название утечки
                    domain:
                      type: string
                      description: Домен, затронутый утечкой
                    logo_path:
                      type: string
                      description: URL логотипа скомпрометированного сервиса
                    breach_date:
                      type: string
                      format: date
                      description: Дата, когда произошло нарушение
                    description:
                      type: string
                      description: Описание нарушения
                    is_verified:
                      type: boolean
                      description: Верифицирована ли утечка
                    data_classes:
                      type: array
                      description: Типы данных, скомпрометированных в результате утечки
                      items:
                        type: string
                    breach_emails_count:
                      type: integer
                      description: Количество адресов электронной почты, затронутых утечкой
              is_disposable:
                type: boolean
                description: >-
                  Указывает, поступил ли адрес электронной почты от провайдера
                  одноразовых адресов
              is_undeliverable:
                type: boolean
                description: Указывает, является ли адрес электронной почты недоставляемым
              verification_attempts:
                type: integer
                description: Количество попыток верификации для этой электронной почты
              verified_at:
                type: string
                format: date-time
                description: Временная метка подтверждения адреса электронной почты
              warnings:
                type: array
                description: Список предупреждений, связанных с проверкой электронной почты
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
              lifecycle:
                type: array
                description: >-
                  Хронологический список событий жизненного цикла проверки
                  электронной почты.
                items:
                  type: object
                  properties:
                    type:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                    details:
                      type: object
                      nullable: true
                      description: >-
                        Специфичный для события payload. События отправки
                        содержат `status`, `reason`; события проверки кода
                        содержат `code_tried`, `status`; события финального
                        статуса содержат `reason` — или `null`, если причина для
                        отчёта отсутствует (например,
                        `EMAIL_VERIFICATION_APPROVED`).
                      properties:
                        status:
                          type: string
                        reason:
                          type: string
                          nullable: true
                        code_tried:
                          type: string
                    fee:
                      type: number
              matches:
                type: array
                description: >-
                  Совпадения, найденные для этого адреса электронной почты.
                  Каждое совпадение имеет `source`: `session` (другая сессия
                  верификации в вашем приложении совпала по тому же email,
                  возвращается с
                  `session_id`/`session_number`/`vendor_data`/`verification_date`)
                  или `list_entry` (email находится в управляемом организацией
                  списке разрешений/блокировок — см.
                  `/management-api/lists/overview`). Межсессионные совпадения
                  используют разные `vendor_data` и ограничены максимум 5.
                items:
                  type: object
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      nullable: true
                    session_number:
                      type: integer
                      nullable: true
                    vendor_data:
                      type: string
                      nullable: true
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                    email:
                      type: string
                      format: email
                    status:
                      type: string
                      nullable: true
                    is_blocklisted:
                      type: boolean
                    api_service:
                      type: string
                      nullable: true
                    source:
                      type: string
                      enum:
                        - session
                        - list_entry
                      description: >-
                        Источник этого совпадения. Значение `session` означает,
                        что по этому значению совпала другая сессия верификации
                        в вашем приложении. Значение `list_entry` означает, что
                        значение совпало со списком, управляемым организацией
                        (списком разрешений/списком блокировки) — подробнее об
                        управлении этими списками см. в обзоре списков
                        Management API по адресу
                        `/management-api/lists/overview`.
              email_intelligence:
                allOf:
                  - $ref: '#/components/schemas/EmailIntelligence'
                description: >-
                  Сигналы аналитики электронной почты. Присутствуют, только если
                  для этого адреса запускался модуль аналитики электронной
                  почты.
              email_social:
                allOf:
                  - $ref: '#/components/schemas/EmailSocialFootprint'
                description: >-
                  Цифровой след адреса в сети. Присутствует, только если для
                  этого адреса было запущено дополнение анализа цифрового следа.
        poa_verifications:
          type: array
          nullable: true
          description: >-
            **Массив отчётов подтверждения адреса (POA)** — всегда JSON-массив,
            а не отдельный объект `poa`. Имеет значение `null`, пока хотя бы
            один шаг подтверждения адреса не предоставит данные. Каждый элемент
            представляет собой полный отчёт, включая `node_id`, `status` на
            уровне функции, URL-адрес файла документа, орган выдачи, даты,
            разобранный адрес и `warnings[]`.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: Уникальный идентификатор этого шага POA в графе сценария.
              status:
                type: string
                description: >-
                  Статус этого шага подтверждения адреса на уровне функции. Не
                  зависит от общего `status` сессии — сессия может получить
                  итоговое решение, пока отдельная функция остаётся `In Review`.
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              document_file:
                type: string
                format: uri
                description: URL документа, подтверждающего адрес
              issuing_state:
                type: string
                description: Двухбуквенный код страны выдачи
              document_type:
                type: string
                description: Тип документа, подтверждающего адрес
              document_subtype:
                type: string
                nullable: true
                description: >-
                  Более точная классификация документа подтверждения адреса
                  (POA) в рамках его `document_type`, если такая классификация
                  была определена. В противном случае `null`.
              document_language:
                type: string
                description: Код языка документа
              document_metadata:
                type: object
                properties:
                  file_size:
                    type: integer
                    description: Размер документа
                  content_type:
                    type: string
                    description: Тип содержимого документа
                  creation_date:
                    type: string
                    format: date
                    description: Дата создания документа
                  modified_date:
                    type: string
                    format: date
                    description: Дата изменения документа
                  overlay_manipulation:
                    type: object
                    nullable: true
                    description: >-
                      Криминалистический анализ PDF на предмет подозрения на
                      манипуляции с наложением текста. Null, если свидетельств
                      манипуляций с наложением не обнаружено или документ не
                      являлся PDF.
                    properties:
                      detected:
                        type: boolean
                        description: >-
                          Были ли обнаружены признаки манипуляций с наложенным
                          текстом.
                      analyzed:
                        type: boolean
                        description: Удалось ли проанализировать PDF.
                      analysis_incomplete:
                        type: boolean
                        description: >-
                          Присутствует и равно true только в том случае, если
                          файл не удалось проверить полностью. Результаты
                          проверки той части, которую удалось проверить,
                          сохраняются, а в документе выводится предупреждение о
                          непроверенной замене текста.
                      signals:
                        type: array
                        items:
                          type: string
                        description: >-
                          Сработавшие форензик-сигналы, такие как
                          duplicate_font_subset или glyph_fragmentation.
                      manipulated_regions:
                        type: array
                        description: >-
                          Области с подозрением на манипуляции в координатах
                          страницы PDF.
                        items:
                          type: object
                          properties:
                            page:
                              type: integer
                            x:
                              type: number
                            'y':
                              type: number
                            width:
                              type: number
                            height:
                              type: number
                            page_width:
                              type: number
                            page_height:
                              type: number
                  creator:
                    type: string
                    nullable: true
                    description: >-
                      Приложение-создатель, зафиксированное в метаданных
                      документа.
                  producer:
                    type: string
                    nullable: true
                    description: Программа-создатель, зафиксированная в метаданных PDF.
                  software:
                    type: string
                    nullable: true
                    description: >-
                      Программное обеспечение для редактирования/обработки,
                      зафиксированное в метаданных файла.
                  encryption:
                    type: string
                    nullable: true
                    description: Схема шифрования документа, если он зашифрован.
                  is_signed:
                    type: boolean
                    nullable: true
                    description: Содержит ли PDF цифровую подпись.
                  is_tampered:
                    type: boolean
                    nullable: true
                    description: >-
                      Указывает ли проверка подписи на то, что файл был изменён
                      после подписания.
                  signature_info:
                    type: object
                    nullable: true
                    description: Сведения о цифровой подписи (подписях), если имеются.
                  exif_original_date:
                    type: string
                    nullable: true
                    description: Исходная дата съёмки EXIF для загруженных изображений.
                  exif_digitized_date:
                    type: string
                    nullable: true
                    description: Дата оцифровки EXIF для загруженных изображений.
                  processed_by_known_editor:
                    type: boolean
                    nullable: true
                    description: >-
                      Указывают ли метаданные файла на обработку известным
                      редактором документов.
                  has_different_creation_mod_date:
                    type: boolean
                    nullable: true
                    description: >-
                      Различаются ли даты создания и изменения —
                      распространённый признак манипуляций.
                description: >-
                  Криминалистические метаданные файла, извлечённые из
                  загруженного документа POA. Всегда содержат ключи ниже
                  (значения равны `null`, если неприменимо, например даты EXIF
                  для PDF). Значение `null`, если метаданные не удалось извлечь.
                nullable: true
              issuer:
                type: string
                description: Наименование органа, выдавшего документ
              issue_date:
                type: string
                format: date
                description: Дата выдачи документа
              expiration_date:
                type: string
                format: date
                nullable: true
                description: Дата окончания срока действия документа, если указана
              poa_address:
                type: string
                description: Необработанный адрес из документа подтверждения адреса
              poa_formatted_address:
                type: string
                description: Отформатированный адрес из документа подтверждения адреса
              poa_parsed_address:
                type: object
                properties:
                  address_type:
                    type: string
                    description: Тип адреса (улица, проспект и т. д.)
                  street_1:
                    type: string
                    description: Основной адрес улицы
                  street_2:
                    type: string
                    nullable: true
                    description: Дополнительный адрес улицы
                  city:
                    type: string
                    description: Название города
                  region:
                    type: string
                    description: Название региона или штата
                  country:
                    type: string
                    description: Двухбуквенный код страны
                  postal_code:
                    type: string
                    description: Почтовый индекс
                  document_location:
                    type: object
                    properties:
                      latitude:
                        type: number
                        description: Координата широты
                      longitude:
                        type: number
                        description: Координата долготы
              name_on_document:
                type: string
                nullable: true
                description: >-
                  Имя владельца счёта / адресата, извлечённое из документа
                  подтверждения адреса (POA), используемое для сопоставления
                  имён. `null`, если имя не удалось извлечь.
              name_match_score_expected_details:
                type: number
                nullable: true
                description: >-
                  Оценка сходства (0–100) между `name_on_document` и ожидаемым
                  именем, указанным при создании сессии. `null`, если хотя бы
                  одно из значений отсутствует.
              name_match_score_id_verification:
                type: number
                nullable: true
                description: >-
                  Оценка сходства (0–100) между `name_on_document` и именем,
                  извлеченным на шаге верификации личности. `null`, если хотя бы
                  одно из значений отсутствует.
              expected_details_address:
                type: string
                nullable: true
                description: Ожидаемый исходный адрес для верификации
              expected_details_formatted_address:
                type: string
                nullable: true
                description: Ожидаемый форматированный адрес для верификации
              expected_details_parsed_address:
                type: object
                description: Ожидаемые структурированные данные адреса для верификации
              extra_fields:
                type: object
                description: >-
                  Дополнительные банковские и контактные данные, извлеченные из
                  документа.
                properties:
                  bank_account_number:
                    type: string
                    nullable: true
                  bank_iban:
                    type: string
                    nullable: true
                  bank_sort_code:
                    type: string
                    nullable: true
                  bank_routing_number:
                    type: string
                    nullable: true
                  bank_swift_bic:
                    type: string
                    nullable: true
                  bank_branch_name:
                    type: string
                    nullable: true
                  bank_branch_address:
                    type: string
                    nullable: true
                  document_phone_number:
                    type: string
                    nullable: true
                  additional_names:
                    type: array
                    items:
                      type: string
              extra_files:
                type: array
                items:
                  type: string
                  format: uri
                description: Дополнительные файлы подтверждения адреса
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
              detected_codes:
                type: array
                description: >-
                  QR-коды и штрихкоды, обнаруженные на всех обработанных
                  страницах документа. Пусто, если ничего не найдено. Для
                  обнаруженного, но не поддающегося декодированию QR-кода
                  возвращается `parsed_payload: null`.
                items:
                  $ref: '#/components/schemas/DocumentAIDetectedCode'
              address_validation:
                allOf:
                  - $ref: '#/components/schemas/AddressValidationResult'
                nullable: true
                description: >-
                  Валидация адреса из этого подтверждения адреса: существует ли
                  он и его нормализованная форма в том виде, как он был прочитан
                  из документа (последующее исправление `poa_address` не
                  запускает её повторно). Присутствует, когда в этом шаге
                  «Подтверждение адреса» включён аддон валидации адреса и
                  загруженный документ прошёл проверки; иначе `null`.
        document_ai_documents:
          type: array
          nullable: true
          description: >-
            **Отчёты Document AI, сгруппированные по узлам сценария** — всегда
            JSON-массив, а не одиночный объект. `null`, пока хотя бы один шаг
            Document AI не сформирует данные. Присутствует, только когда
            `session_kind = user`. Каждый элемент представляет собой группу узла
            с агрегированным `status`, `node_id`, массивом `items[]` с
            результатами по каждому документу (извлечённые данные с ключами по
            настроенному ключу поля) и `warnings`.
          items:
            type: object
            description: Результаты Document AI, сгруппированные по узлам сценария.
            properties:
              status:
                type: string
                description: >-
                  Агрегированный статус Document AI для этого узла,
                  сформированный на основе его `items[]`.
                enum:
                  - Approved
                  - Declined
                  - In Review
                  - Not Finished
              node_id:
                type: string
                nullable: true
                description: >-
                  Уникальный идентификатор этого шага Document AI в графе
                  сценария.
              items:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    node_id:
                      type: string
                      nullable: true
                      description: Узел графа сценария, создавший этот документ.
                    document_key:
                      type: string
                      description: >-
                        Ключ настроенного документа Document AI, которому
                        соответствует этот файл.
                    original_filename:
                      type: string
                      nullable: true
                      description: Имя файла при загрузке пользователем.
                    file_size:
                      type: integer
                      nullable: true
                      description: Размер файла в байтах.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Временная предварительно подписанная ссылка на
                        загруженный файл.
                    status:
                      type: string
                      enum:
                        - Approved
                        - Declined
                        - In Review
                        - Not Finished
                      description: Статус Document AI по каждому документу.
                    extracted_data:
                      type: object
                      additionalProperties: true
                      nullable: true
                      description: >-
                        Значения, извлечённые с помощью Document AI, где ключи
                        задаются настроенным полем `key`. Каждое значение
                        представляет собой строку, число или `null`.
                    detected_codes:
                      type: array
                      description: >-
                        QR-коды и штрихкоды, обнаруженные на всех обработанных
                        страницах. Пусто, если ничего не найдено. Для
                        обнаруженного, но не поддающегося декодированию QR-кода
                        возвращается `parsed_payload: null`.
                      items:
                        $ref: '#/components/schemas/DocumentAIDetectedCode'
                    fields:
                      type: array
                      description: Настроенные поля извлечения для этого документа.
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                            description: >-
                              Постоянный ключ поля, используемый в качестве
                              ключа в `extracted_data`.
                          name:
                            type: string
                            description: Понятное имя поля.
                          instruction:
                            type: string
                            description: Инструкция по извлечению, передаваемая модели.
                          type:
                            type: string
                            enum:
                              - text
                              - number
                              - date
                            description: Ожидаемый тип значения извлечённого поля.
                          required:
                            type: boolean
                            description: Whether this field is required.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Криминалистические метаданные файла, извлечённые из
                        загруженного документа (например, `is_tampered`).
                        Значение `null`, если ничего не удалось извлечь.
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Сверка извлечённых полей документа с другими данными
                        сессии. `null`, если перекрёстная проверка не
                        выполнялась.
                    created_at:
                      type: string
                      format: date-time
              warnings:
                type: array
                nullable: true
                items:
                  type: object
                description: >-
                  Журнал предупреждений, сформированных для этого узла Document
                  AI.
        questionnaire_responses:
          type: array
          nullable: true
          description: >-
            **Массив отчётов с ответами на анкеты** — всегда JSON-массив, а не
            отдельный объект `questionnaire`. Имеет значение `null`, пока хотя
            бы один шаг анкеты не предоставит данные. Каждый элемент
            представляет собой полный отчёт, включая `node_id`, метаданные
            анкеты, разделы с элементами формы и ответы пользователя.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: Уникальный идентификатор этого шага анкеты в графе сценария.
              questionnaire_id:
                type: string
                description: Уникальный идентификатор анкеты
              title:
                type: string
                description: Название анкеты
              description:
                type: string
                description: Описание анкеты
              languages:
                type: array
                items:
                  type: string
                description: Поддерживаемые языки
              default_language:
                type: string
                description: Язык по умолчанию
              is_active:
                type: boolean
                description: Активна ли анкета
              is_simple_questionnaire:
                type: boolean
                description: >-
                  Является ли анкета простой линейной формой (без графа
                  ветвления).
              questionnaire_group_id:
                type: string
                format: uuid
                nullable: true
                description: Постоянный идентификатор группы анкет во всех версиях.
              version:
                type: integer
                nullable: true
                description: Номер версии анкеты, на которую были даны ответы.
              published_at:
                type: string
                format: date-time
                nullable: true
                description: Временная метка публикации этой версии анкеты.
              sections:
                type: array
                items:
                  type: object
                  properties:
                    title:
                      type: string
                      nullable: true
                      description: Название раздела
                    description:
                      type: string
                      nullable: true
                      description: Описание раздела
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          uuid:
                            type: string
                            description: Уникальный идентификатор элемента
                          value:
                            type: string
                            nullable: true
                            description: >-
                              Постоянный идентификатор узла этого элемента формы
                              в графе анкеты.
                          element_type:
                            type: string
                            description: Тип элемента анкеты
                          is_required:
                            type: boolean
                            description: Является ли элемент обязательным
                          title:
                            type: string
                            description: Название пункта
                          description:
                            type: string
                            nullable: true
                            description: Описание элемента
                          placeholder:
                            type: string
                            nullable: true
                            description: Текст-заполнитель
                          choices:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                label:
                                  type: string
                                value:
                                  type: string
                                requires_text_input:
                                  type: boolean
                                  description: >-
                                    Требует ли этот вариант дополнительного
                                    текстового ввода
                                  nullable: true
                              required:
                                - label
                                - value
                            description: >-
                              Варианты выбора для выпадающего списка или
                              элементов с одним вариантом выбора
                          max_files:
                            type: integer
                            description: Максимально допустимое количество файлов
                            nullable: true
                          answer:
                            type: object
                            description: Ответ на пункт
                            properties:
                              value:
                                type: string
                                nullable: true
                              text:
                                type: string
                                nullable: true
                              files:
                                type: array
                                items:
                                  type: string
                                nullable: true
                          required_if:
                            type: object
                            nullable: true
                            description: >-
                              Правило условного требования, когда элемент
                              обязателен только при определённых ответах.
                          repeatable_config:
                            type: object
                            nullable: true
                            description: >-
                              Конфигурация для повторяемых групп элементов, если
                              применимо.
                        required:
                          - uuid
                          - value
                          - element_type
                          - is_required
                          - title
              status:
                type: string
                description: Статус анкеты
        bank_verifications:
          type: array
          nullable: true
          description: >-
            Результаты верификации банковских счетов, по одному элементу на
            каждый шаг проверки банка, для проверки пользователей и верификации
            бизнеса. Имеет значение `null`, пока шаг не сформирует результат.
            Поле `method` каждого элемента указывает, как был подтверждён счёт:
            `open_banking` (вход в банк) или `account_lookup` (проверка счёта),
            либо резервные варианты `statement` или `microdeposits`, и `none`,
            если пользователь продолжил без банка до оценки какой-либо попытки
            (`continued_without_bank`). См. раздел [Методы верификации
            счетов](/ru/core-technology/bank-verification/verification-methods).
          items:
            $ref: '#/components/schemas/BankVerificationResult'
        signatures:
          type: array
          description: >-
            Результаты электронной подписи, по одному элементу на каждого
            подписанта и шаг подписания, для Проверки пользователей и
            Верификации бизнеса (KYB). Присутствует только в том случае, если в
            сценарии есть шаг электронной подписи; пустой массив, пока подписант
            не дойдёт до него. См. [Отчёт об электронной
            подписи](/ru/core-technology/electronic-signature/report-electronic-signature).
          items:
            $ref: '#/components/schemas/SignatureResult'
        aml_screenings:
          type: array
          nullable: true
          description: >-
            **Массив отчётов AML-скрининга** — всегда массив JSON, а не
            одиночный объект `aml`. Имеет значение `null`, пока хотя бы один шаг
            AML не сгенерирует данные. Каждый элемент представляет собой полный
            отчёт, включая `node_id`, `status` на уровне функции, `total_hits`,
            `entity_type`, `hits[]`, `score`, `screened_data`,
            `is_ongoing_monitoring_enabled` и `warnings[]`.
          items:
            $ref: '#/components/schemas/AMLScreening'
        ip_analyses:
          type: array
          nullable: true
          description: >-
            **Массив отчётов анализа устройства и IP** — всегда JSON-массив, а
            не отдельный объект `ip_analysis`. Имеет значение `null`, пока хотя
            бы один шаг анализа IP не предоставит данные. Каждый элемент
            представляет собой полный отчёт, включая `node_id`, `status` на
            уровне функции, данные об IP и геолокации, цифровой отпечаток
            устройства и `warnings[]`. Записи с повторяющимися значениями
            `(node_id, ip_address, device_fingerprint)` дедуплицируются на
            стороне сервера.
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Уникальный идентификатор этого шага Анализа устройства и IP в
                  графе сценария.
              status:
                type: string
                description: >-
                  Статус этой записи Анализа устройства и IP на уровне функции.
                  Не зависит от общего `status` сессии: сессия может получить
                  итоговое решение, пока отдельная функция остаётся в статусе
                  `In Review` (на проверке).
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              device_brand:
                type: string
                description: Бренд использованного устройства
              device_model:
                type: string
                description: Модель используемого устройства
              browser_family:
                type: string
                description: Использованное семейство браузеров
              os_family:
                type: string
                description: Семейство операционной системы
              platform:
                type: string
                description: Тип платформы (mobile, desktop и т. д.)
              device_fingerprint:
                type: string
                nullable: true
                description: Уникальный идентификатор цифрового отпечатка устройства
              ip_country:
                type: string
                description: Страна, определённая по IP
              ip_country_code:
                type: string
                description: Двухбуквенный код страны по IP
              ip_state:
                type: string
                description: Штат/регион, определённый по IP
              ip_city:
                type: string
                description: Город, определённый по IP
              latitude:
                type: number
                description: Координата широты местоположения по IP
              longitude:
                type: number
                description: Координата долготы местоположения по IP
              ip_address:
                type: string
                description: IP-адрес
              isp:
                type: string
                nullable: true
                description: Интернет-провайдер
              organization:
                type: string
                nullable: true
                description: Организация, связанная с IP
              is_vpn_or_tor:
                type: boolean
                description: Принадлежит ли IP-адрес к сети VPN или Tor
              is_data_center:
                type: boolean
                description: Принадлежит ли IP-адрес к дата-центру
              time_zone:
                type: string
                description: Часовой пояс, определённый по IP
              time_zone_offset:
                type: string
                description: Смещение часового пояса
              ip:
                type: object
                description: >-
                  IP-геолокация этой записи плюс расстояния по ортодромии (км)
                  до адреса в документе, удостоверяющем личность, и адреса в
                  документе подтверждения адреса (POA). Значения расстояния
                  равны `null`, если хотя бы для одной из сторон невозможно
                  определить местоположение.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Координаты или `null`, если они недоступны.
                  distance_from_id_document:
                    type: number
                    nullable: true
                    example: 23.4
                  distance_from_poa_document:
                    type: number
                    nullable: true
                    example: 12.3
              id_document:
                type: object
                description: >-
                  Местоположение, извлечённое из адреса в документе,
                  удостоверяющем личность, а также расстояния (км) до
                  IP-геолокации и адреса в документе подтверждения адреса (POA).
                  `location` имеет значение `null`, если адрес в документе не
                  удалось геокодировать.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Координаты или `null`, если они недоступны.
                  distance_from_ip:
                    type: number
                    nullable: true
                    example: 23.4
                  distance_from_poa_document:
                    type: number
                    nullable: true
                    example: 18.7
              poa_document:
                type: object
                description: >-
                  Местоположение, извлечённое из документа подтверждения адреса
                  (POA), а также расстояния (км) до IP-геолокации и адреса в
                  документе, удостоверяющем личность. `location` имеет значение
                  `null`, если в сессии нет шага POA или адрес не удалось
                  геокодировать.
                properties:
                  location:
                    type: object
                    nullable: true
                    properties:
                      latitude:
                        type: number
                        example: 41.2706327
                      longitude:
                        type: number
                        example: 1.9770097
                    description: Координаты или `null`, если они недоступны.
                  distance_from_ip:
                    type: number
                    nullable: true
                    example: 12.3
                  distance_from_id_document:
                    type: number
                    nullable: true
                    example: 18.7
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
              matches:
                type: array
                description: >-
                  Межсессионные совпадения, найденные для адреса или
                  идентификатора устройства этой записи. Каждое совпадение
                  представляет собой другую сессию верификации в вашем
                  приложении (`source` всегда `session`), имеющую такое же
                  значение и обязательно относящуюся к другому пользователю
                  вендора / `vendor_data`, отличному от текущей сессии. Лимит
                  составляет не более 5 совпадений на коллектор
                  (`device_fingerprint` суммирует два независимых коллектора с
                  собственными лимитами, поэтому возможно до 10 записей). Каждый
                  элемент содержит `match_source`, `confidence`, `match_mode`,
                  `device_info` и `location_info`; ключи `recovery_similarity`,
                  `tls_ja4_corroborated` и `recovery_gate_reason` присутствуют
                  только тогда, когда `match_source` имеет значение
                  `recovered_high`.
                items:
                  type: object
                  additionalProperties: false
                  properties:
                    session_id:
                      type: string
                      format: uuid
                      description: ID сессии совпадающей сессии.
                    session_number:
                      type: integer
                      description: Порядковый номер совпадающей сессии.
                    vendor_data:
                      type: string
                      nullable: true
                      description: >-
                        `vendor_data` совпавшей сессии — всегда отличается от
                        пользователя поставщика текущей сессии.
                    verification_date:
                      type: string
                      format: date-time
                      nullable: true
                      description: Дата создания совпавшей сессии (`YYYY-MM-DDTHH:MM:SSZ`).
                    match_type:
                      type: string
                      enum:
                        - ip_address
                        - device_fingerprint
                      description: >-
                        Произошло ли совпадение по адресу или по цифровому
                        отпечатку устройства
                    match_source:
                      type: string
                      enum:
                        - ip_address
                        - persistent_id
                        - legacy_fp
                        - recovered_high
                      description: >-
                        Как было определено это совпадение: `ip_address` (общий
                        IP-адрес — совместное размещение в сети, а не
                        подтверждение личности устройства), `persistent_id`
                        (точное сохранённое постоянное идентификационное
                        значение устройства), `legacy_fp` (устаревший хеш
                        цифрового отпечатка устройства `didit-fp-*`) или
                        `recovered_high` (совпадение при нечётком восстановлении
                        цифрового отпечатка с высокой уверенностью). Кандидаты
                        на восстановление с более низкой уверенностью
                        отображаются только как предупреждения о риске и никогда
                        не попадают в этот массив.
                    matched_value:
                      type: string
                      nullable: true
                      description: >-
                        Значение, с которым произошло совпадение: общий
                        IP-адрес, постоянный идентификатор устройства или
                        устаревший хеш цифрового отпечатка либо — для
                        `recovered_high` — UUID восстановленного устройства.
                    status:
                      type: string
                      description: Статус жизненного цикла совпадающей сессии.
                    is_blocklisted:
                      type: boolean
                      description: >-
                        Находится ли совпавшее значение в списке блокировки. В
                        настоящее время всегда `false` для совпадений по
                        устройству/IP.
                    api_service:
                      type: string
                      nullable: true
                      description: >-
                        Автономный сервис API сессии сопоставления; `null` для
                        сессий сценариев.
                    source:
                      type: string
                      enum:
                        - session
                      description: >-
                        Всегда `session` для совпадений устройства/IP — каждое
                        совпадение представляет собой ещё одну сессию
                        верификации в вашем приложении.
                    device_info:
                      type: object
                      description: >-
                        Сведения об устройстве, зафиксированные в сессии
                        сопоставления.
                      properties:
                        device_brand:
                          type: string
                          nullable: true
                        device_model:
                          type: string
                          nullable: true
                        browser_family:
                          type: string
                          nullable: true
                        os_family:
                          type: string
                          nullable: true
                        platform:
                          type: string
                          nullable: true
                        device_fingerprint:
                          type: string
                          nullable: true
                    location_info:
                      type: object
                      description: >-
                        Данные о сети и геолокации, зафиксированные в
                        совпадающей сессии.
                      properties:
                        ip_address:
                          type: string
                          nullable: true
                        ip_country:
                          type: string
                          nullable: true
                        ip_country_code:
                          type: string
                          nullable: true
                        ip_state:
                          type: string
                          nullable: true
                        ip_city:
                          type: string
                          nullable: true
                        is_vpn_or_tor:
                          type: boolean
                        is_data_center:
                          type: boolean
                    confidence:
                      type: number
                      minimum: 0
                      maximum: 1
                      description: >-
                        Серверная оценка уверенности идентификации,
                        рассчитываемая как `1 - P(false positive)`: `1.0` для
                        детерминированных совпадений (`persistent_id` или
                        `recovered_high`, основанный на аппаратном корне
                        доверия), `0.5` для `legacy_fp`, `0.0` для `ip_address`
                        (только совпадение локации) и значение ниже `1.0` с
                        поправкой на подтверждение для вероятностных
                        восстановленных совпадений (выше, если отпечаток TLS JA4
                        и страна IP независимо совпадают).
                    match_mode:
                      type: string
                      enum:
                        - deterministic
                        - probabilistic
                        - co_occurrence
                      description: >-
                        Класс доказательства совпадения: `deterministic` (точный
                        сохранённый или привязанный к аппаратному обеспечению
                        идентификатор, исключающий коллизии между физическими
                        устройствами), `probabilistic` (доказательство на основе
                        нечёткого цифрового отпечатка) или `co_occurrence`
                        (только общая сеть, без утверждения об идентичности
                        устройства).
                    recovery_similarity:
                      type: number
                      description: >-
                        Косинусное сходство для совпадения при восстановлении
                        отпечатка, округлённое до 4 знаков после запятой.
                        Присутствует только в том случае, когда `match_source`
                        имеет значение `recovered_high`.
                    tls_ja4_corroborated:
                      type: boolean
                      description: >-
                        Совпадают ли TLS-отпечатки JA4 двух наблюдений — сигнал,
                        зафиксированный сервером, который браузер не может
                        подделать. Присутствует, только если `match_source`
                        имеет значение `recovered_high`.
                    recovery_gate_reason:
                      type: string
                      description: >-
                        Почему восстановленное совпадение прошло жесткий порог
                        ложных срабатываний: `hardware_root_match` (аппаратный
                        идентификатор устройства совпал точно) или, в
                        конфигурациях, допускающих доказательства только по
                        зондированию, `exact_composite_plus_<n>_families` /
                        `very_high_similarity_plus_<n>_families`. Присутствует,
                        только если `match_source` равен `recovered_high`.
              browser_version:
                type: string
                nullable: true
              os_version:
                type: string
                nullable: true
              user_agent:
                type: string
                nullable: true
                description: Строка User-Agent браузера.
              accept_language:
                type: string
                nullable: true
                description: Заголовок `Accept-Language`, отправленный браузером.
              session_identifier:
                type: string
                nullable: true
                description: >-
                  Идентификатор сессии браузера, в которой выполнялась
                  верификация.
              session_age_ms:
                type: integer
                nullable: true
                description: >-
                  Возраст этой сессии браузера в миллисекундах на момент
                  выполнения шага.
              coords_accuracy:
                type: number
                nullable: true
                description: >-
                  Радиус точности в метрах для координат, переданных
                  устройством.
              raw_device_data:
                type: object
                nullable: true
                additionalProperties: true
                description: Необработанные сигналы устройства, собранные для этого шага.
        geolocation_checks:
          type: array
          nullable: true
          description: >-
            **Массив результатов верификации местоположения**, по одному на
            каждый шаг верификации местоположения: принятая попытка этого шага.
            Имеет значение `null`, пока шаг верификации местоположения не
            предоставит данные. Более ранние попытки того же шага находятся в
            `geolocation_attempts`.
          items:
            $ref: '#/components/schemas/GeolocationCheck'
        geolocation_attempts:
          type: array
          nullable: true
          description: >-
            Каждая попытка каждого шага проверки местоположения (Location) в
            этой сессии, начиная с самых старых. Попытки, заменённые повторной
            отправкой, исключены. Сценарий, который скрывает
            `geolocation_checks` через свои атрибуты ответа, также скрывает и
            этот список.
          items:
            $ref: '#/components/schemas/GeolocationAttempt'
        database_validations:
          type: array
          nullable: true
          description: >-
            **Массив отчётов Проверки по базам данных** — всегда массив JSON, а
            не отдельный объект `database_validation`. Имеет значение `null`,
            пока хотя бы один шаг проверки по базам данных не вернёт данные.
            Каждый элемент представляет собой полный отчёт, включая `node_id`,
            `status` на уровне функции, `screened_data`, массив `validations[]`
            для каждого сервиса (каждый с данными из реестра `source_data`) и
            `warnings[]`. Поля `screened_data` и `source_data` различаются в
            зависимости от страны:


            **ARG (Аргентина)**: screened_data: {document_number, selfie,
            gender, first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name, date_of_birth, date_of_death,
            tax_id, tax_id_type, face_match_score, sit_1_since, banks,
            last_position, highest_position, rejected_checks}. Использует
            биометрическую валидацию RENAPER со сравнением лиц. Пол определяется
            автоматически на основе анализа лица или имени, если он отсутствует
            в документе (например, в водительских удостоверениях)


            **BOL (Боливия)**: screened_data: {document_number, date_of_birth,
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name, date_of_birth, gender}


            **BRA (Бразилия)**: screened_data: {tax_number, first_name,
            last_name, date_of_birth}. source_data всегда включает
            {identification_number, first_name, last_name, date_of_birth,
            lgpd_minor, minor_under_18, minor_under_16} при успешных совпадениях
            по CPF. При успешных запросах по совершеннолетним эти флаги
            устанавливаются в false. Сервис Receita Federal Consulta CPF может
            возвращать HTTP 422 (несовершеннолетний до 18 лет) или 451 (до 16
            лет) с данными, скрытыми в соответствии с LGPD; в таких случаях
            source_data устанавливает соответствующие флаги несовершеннолетнего
            в true, включает HTTP-статус вышестоящего сервиса, а валидация на
            уровне полей получает значение no_match. Полный список кодов см. в
            разделе по Бразилии справочника Database Validation Outcome Codes.


            **CHL (Чили)**: screened_data: {personal_number, first_name,
            last_name, date_of_birth}. source_data: {identification_number,
            first_name, last_name, date_of_birth, gender}


            **COL (Колумбия)**: screened_data: {document_number, document_type,
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name, date_of_birth, document_type}


            **CRI (Коста-Рика)**: screened_data: {personal_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **DOM (Доминиканская Республика)**: screened_data:
            {personal_number}. source_data: {identification_number} (возвращает
            только valid/invalid)


            **ECU (Эквадор)**: screened_data: {personal_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, street, formatted_address, gender, nationality,
            education, marital_status, spouse, mother_name, father_name,
            profession}


            **ESP (Испания)**: screened_data: {personal_number, document_type,
            expiration_date, first_name, last_name}. source_data:
            {identification_number, first_name, last_name, full_name,
            document_type, expiration_date}


            **GTM (Гватемала)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **HND (Гондурас)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **MEX (Мексика)**: screened_data: {personal_number (CURP),
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name, date_of_birth, gender,
            nationality, curp_status, state_of_birth, doc_probatorio,
            registration_year, registration_state, registration_municipality,
            num_acta, crip, issuing_state_code, foreign_registry_number,
            folio_carta, folio_certificado}. Использует реестр актов
            гражданского состояния RENAPO. Отдельный сервис проверки
            действительности INE также доступен для MEX в качестве
            дополнительной поочерёдной валидации.


            **PAN (Панама)**: screened_data: {personal_number, selfie}.
            source_data: {identification_number}. Использует биометрическую
            валидацию SIB


            **PER (Перу)**: screened_data: {personal_number (DNI), first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, paternal_name, maternal_name, verification_number,
            verification_letter}


            **PRY (Парагвай)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name}


            **SLV (Сальвадор)**: screened_data: {document_number, date_of_birth,
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name}


            **URY (Уругвай)**: screened_data: {personal_number, date_of_birth,
            first_name, last_name}. source_data: {identification_number,
            first_name, last_name, full_name}


            **VEN (Венесуэла)**: screened_data: {document_number, first_name,
            last_name}. source_data: {identification_number, first_name,
            last_name, full_name, gender, date_of_birth, document_type}
          items:
            type: object
            properties:
              node_id:
                type: string
                description: >-
                  Уникальный идентификатор этого шага проверки по базам данных в
                  графе сценария.
              issuing_state:
                type: string
                description: >-
                  Трехбуквенный код ISO 3166-1 alpha-3 страны,
                  государственные/реестровые источники которой опрашивались
                  (например, `BRA`, `MEX`, `ESP`, `NGA`, `IDN`). Проверка по
                  базам данных охватывает 60+ стран в Северной и Южной Америке,
                  Европе, Африке, на Ближнем Востоке и в Азиатско-Тихоокеанском
                  регионе, а также глобальные мультистрановые источники —
                  покрытие регулярно расширяется, поэтому рассматривайте
                  значение как открытый набор, а не как фиксированное
                  перечисление.
              validation_type:
                type: string
                enum:
                  - one_by_one
                  - two_by_two
                  - not_enabled
                description: >-
                  Как подтверждался результат: `one_by_one` (результат одного
                  сервиса), `two_by_two` (два или более различных сервиса
                  независимо друг от друга полностью сопоставили
                  идентификационный номер) или `not_enabled` (сохраняется, если
                  ни один сервис не выдал применимого совпадения). Значение
                  никогда не бывает `null`. Специальные режимы биометрической
                  валидации 2x2 в настоящее время доступны для `ECU` и `PER`.
              screened_data:
                type: object
                description: >-
                  Входные данные, используемые для валидации. Поля зависят от
                  страны — форматы для конкретных стран см. в документации по
                  Проверке по базам данных
                  (`/core-technology/database-validation/overview`).
                properties:
                  last_name:
                    type: string
                  first_name:
                    type: string
                  tax_number:
                    type: string
                    description: 'Бразилия: CPF (11 цифр)'
                  personal_number:
                    type: string
                    description: >-
                      Чили: RUT, DOM: Cédula (11 цифр), ECU: Cédula (10 цифр),
                      ESP: DNI/NIE, MEX: CURP (18 символов), PER: DNI (8 цифр),
                      URY: CI
                  document_number:
                    type: string
                    description: >-
                      ARG: DNI, BOL: CI, COL: Cédula, GTM: DPI, HND: DNI, PAN:
                      Cédula, PRY: CI, SLV: DUI, VEN: Cédula
                  date_of_birth:
                    type: string
                    format: date
                  document_type:
                    type: string
                    description: 'COL: CC/CE/TI/NIT, ESP: ID/PASSPORT'
                  expiration_date:
                    type: string
                    format: date
                    description: Обязательно для ESP
              validations:
                type: array
                description: >-
                  Одна запись на каждую службу реестров, вернувшую payload
                  валидации. Каждая запись идентифицирует службу (`service_id`,
                  `service_name`) и содержит сравнение по каждому полю
                  `validation`, код/детали результата службы `outcome_code` /
                  `outcome_detail` (если предоставлены), а также нормализованную
                  запись из реестра в `source_data`.
                items:
                  type: object
                  properties:
                    service_id:
                      type: string
                      description: >-
                        Идентификатор сервиса реестра, сформировавшего этот
                        результат проверки.
                      example: bra_cpf
                    service_name:
                      type: string
                      description: Понятное название сервиса реестра.
                      example: Brazil - CPF status check
                    validation:
                      type: object
                      description: Результаты проверок полей.
                      properties:
                        full_name:
                          type: string
                          description: >-
                            Результат сопоставления полного имени (например,
                            'full_match', 'partial_match', 'no_match').
                        date_of_birth:
                          type: string
                          description: Результат сопоставления даты рождения.
                        identification_number:
                          type: string
                          description: Результат сопоставления идентификационного номера.
                    outcome_code:
                      type: string
                      nullable: true
                      description: >-
                        Машиночитаемый результат проверки по реестру (например,
                        `MATCH`, `NO_MATCH`, `PARTIAL_MATCH`, `INCONCLUSIVE`,
                        коды конкретных источников). Присутствует, когда сервис
                        сообщает о нём.
                    outcome_detail:
                      type: string
                      nullable: true
                      description: >-
                        Понятное объяснение `outcome_code`, если оно
                        предоставлено сервисом.
                    source_data:
                      type: object
                      description: >-
                        Данные, полученные из государственной базы данных. Общие
                        поля: identification_number, first_name, last_name,
                        full_name, date_of_birth, gender. Дополнительные поля по
                        странам: BRA всегда включает lgpd_minor, minor_under_18
                        и minor_under_16 при успешных совпадениях CPF; также
                        включает вышестоящий HTTP-статус, если данные CPF
                        удержаны в рамках LGPD (HTTP 422/451). ECU добавляет
                        street, formatted_address, nationality, education,
                        marital_status, spouse, mother_name, father_name,
                        profession. PER добавляет paternal_name, maternal_name,
                        verification_number, verification_letter. ESP добавляет
                        document_type, expiration_date. VEN/COL добавляют
                        document_type.
                      additionalProperties: true
              errors:
                type: array
                description: >-
                  Ошибки, возвращённые службами реестров при проверке, каждая с
                  указанием `service_id`, который её создал. **Этот ключ
                  полностью опускается, если ошибок нет.**
                items:
                  type: object
                  description: >-
                    Объект ошибки вышестоящего сервиса, переданный как есть: его
                    ключи зависят от сервиса (обычно сообщение/код и любые
                    сведения от конкретного провайдера), а также `service_id`,
                    определяющий сервис, в котором произошла ошибка.
                  properties:
                    service_id:
                      type: string
                      nullable: true
                      description: >-
                        Идентификатор сервиса реестра, в котором произошла
                        ошибка.
                  additionalProperties: true
              match_type:
                type: string
                enum:
                  - no_match
                  - partial_match
                  - full_match
                nullable: true
                description: >-
                  Агрегированный результат совпадения по всем запрошенным
                  сервисам. `null` до тех пор, пока проверка не будет оценена.
              status:
                type: string
                description: >-
                  Статус этой проверки по базам данных на уровне функции. Не
                  зависит от общего `status` сессии — сессия может получить
                  итоговое решение, пока отдельная функция остаётся на проверке
                  (`In Review`).
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
              warnings:
                type: array
                items:
                  type: object
                  properties:
                    feature:
                      type: string
                      enum:
                        - ID_VERIFICATION
                        - NFC
                        - LIVENESS
                        - FACEMATCH
                        - PROOF_OF_ADDRESS
                        - PHONE
                        - EMAIL
                        - AML
                        - LOCATION
                        - DATABASE_VALIDATION
                        - QUESTIONNAIRE
                        - DOCUMENT_AI
                        - KYB_REGISTRY
                        - KYB_DOCUMENTS
                        - KYB_KEY_PEOPLE
                        - GEOLOCATION
                        - SIGNATURE
                      description: >-
                        Функция, сгенерировавшая это предупреждение. Значение
                        определяет блок функции, к которому относится
                        предупреждение. Массив предупреждений каждого модуля
                        обычно использует значение, соответствующее его модулю
                        (например, `PHONE` внутри
                        `phone_verifications[].warnings`), однако перечисление
                        выше является определяющим для всех предупреждений
                        функций в payload решения.
                    risk:
                      type: string
                    additional_data:
                      type: object
                      nullable: true
                    log_type:
                      type: string
                    short_description:
                      type: string
                    long_description:
                      type: string
                    node_id:
                      type: string
                      description: >-
                        Идентификатор узла графа сценария, сгенерировавшего это
                        предупреждение
                description: Предупреждения, связанные с проверкой по базам данных.
        database_validation_not_performed_reason:
          type: object
          nullable: true
          additionalProperties: true
          description: >-
            Причина, по которой настроенная проверка по базам данных не дала
            результатов, в виде `{code, message}` плюс контекстные поля.
            Присутствует только в том случае, когда `database_validations` имеет
            значение `null` для сценария, содержащего данный шаг, что позволяет
            отличить вариант «реестр подтвердил» от «ничего не выполнялось». В
            противном случае `null`.
          properties:
            code:
              type: string
              description: Постоянная машиночитаемая причина.
            message:
              type: string
              description: Понятное объяснение.
        reviews:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
                description: >-
                  Кто выполнил проверку. Обычно это идентификатор проверяющего в
                  консоли (его email), однако значение равно `"API Client"` для
                  обновлений статуса с помощью API-ключа и `"Unknown"`, когда
                  инициатора не удалось определить — поэтому не следует парсить
                  это поле как адрес электронной почты.
              new_status:
                type: string
              comment:
                type: string
              created_at:
                type: string
                format: date-time
        assignee:
          type: object
          nullable: true
          description: >-
            Проверяющий в Консоли, которому назначена сессия, или `null`, если
            она никому не назначена.
          properties:
            email:
              type: string
              format: email
            assigned_at:
              type: string
              format: date-time
              nullable: true
        waiting_since:
          type: string
          format: date-time
          nullable: true
          description: >-
            Время, когда сессия перешла в ожидание проверки. `null`, если сессия
            не находится в статусе `In Review` или в вашем приложении не задан
            дедлайн проверки.
        sla_due_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Срок завершения проверки. `null`, если сессия не находится в статусе
            `In Review` или в вашем приложении не задан дедлайн проверки.
        created_at:
          type: string
          format: date-time
          description: Временная метка создания сессии (ISO 8601, UTC).
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Временная метка запланированного истечения срока действия этой
            сессии. Устанавливается для сессий проверки пользователей (KYC),
            если срок действия был настроен при создании (или когда статус
            `Approved` запускает расчёт срока действия KYC). `null` для сессий
            без настроенного срока действия, а также для типов, не использующих
            истечение срока (например, сессий верификации бизнеса (KYB), которым
            никогда не задавался `expires_at`).
        registry_checks:
          type: array
          nullable: true
          description: >-
            Проверки по реестру компаний. Присутствует только в случае, если
            `session_kind = business`. Каждый элемент содержит полный payload
            реестра компаний.
          items:
            type: object
            description: >-
              Одна проверка по реестру компаний — полный payload реестра
              компаний, дополненный структурой владения и предупреждениями.
              Присутствует только при `session_kind = business`.
            properties:
              status:
                type: string
                description: Статус жизненного цикла функции.
              node_id:
                type: string
                nullable: true
              data_resolved:
                type: boolean
              company:
                type: object
                description: >-
                  Полный payload компании из реестра (запись реестра,
                  объединённая с данными, предоставленными пользователем или
                  отредактированными в консоли).
                properties:
                  uuid:
                    type: string
                    format: uuid
                  node_id:
                    type: string
                    nullable: true
                  status:
                    type: string
                  registry_status:
                    type: string
                    nullable: true
                  data_resolved:
                    type: boolean
                  company_name:
                    type: string
                  registration_number:
                    type: string
                    nullable: true
                  country_code:
                    type: string
                    description: >-
                      Страна инкорпорации (ISO 3166-1 alpha-2, например, `GB`,
                      `DE`, `US`).
                  region:
                    type: string
                    nullable: true
                    description: >-
                      Код подразделения ISO 3166-2, если применимо (например,
                      `CA`, `NY` для штатов США).
                  company_type:
                    type: string
                    nullable: true
                  incorporation_date:
                    type: string
                    format: date
                    nullable: true
                  registered_address:
                    type: string
                    nullable: true
                  tax_number:
                    type: string
                    nullable: true
                  risk_level:
                    type: string
                    enum:
                      - LOW
                      - MEDIUM
                      - HIGH
                    nullable: true
                  verification_status:
                    type: string
                    nullable: true
                  is_from_registry:
                    type: boolean
                  fetch_status:
                    type: string
                    nullable: true
                  alternative_names:
                    type: string
                    nullable: true
                    description: >-
                      Альтернативные, торговые, прежние или наименования
                      компании на языке оригинала в виде текста, если они
                      указаны.
                  nature_of_business:
                    type: string
                    nullable: true
                  registered_capital:
                    type: string
                    nullable: true
                  registered_capital_amount:
                    type: string
                    format: decimal
                    nullable: true
                    description: >-
                      Сумма зарегистрированного/уставного капитала в виде
                      десятичной строки (например, `"100.00"`), извлечённая из
                      записи в реестре. `null`, если недоступно.
                  registered_capital_currency:
                    type: string
                    nullable: true
                    description: >-
                      Код валюты ISO 4217 для `registered_capital_amount`
                      (например, `"GBP"`). `null`, если значение недоступно.
                  website:
                    type: string
                    nullable: true
                  email:
                    type: string
                    format: email
                    nullable: true
                  phone:
                    type: string
                    nullable: true
                  legal_entity_identifier:
                    type: string
                    nullable: true
                  location_of_registration:
                    type: string
                    nullable: true
                  vat_number:
                    type: string
                    nullable: true
                    description: >-
                      Номер плательщика НДС в ЕС, если он был собран на
                      размещённом шаге реестра или изменён впоследствии.
                  vat_validation_status:
                    type: string
                    enum:
                      - valid
                      - invalid
                      - format_valid
                      - invalid_format
                      - could_not_validate
                      - not_applicable
                    description: >-
                      Результат валидации номера плательщика НДС (VAT) или, при
                      его отсутствии, `tax_number` при отправке в реестр.
                      `valid` / `invalid`: определяется официальным реестром
                      страны (EU VIES, Норвегия, Швейцария, Бразилия, Колумбия,
                      Коста-Рика, Эквадор, Парагвай; Польша также по внутреннему
                      реестру НДС). `format_valid` / `invalid_format`:
                      определяется правилами формата и контрольных цифр страны,
                      если реестр недоступен для запроса. `could_not_validate`:
                      реестр был недоступен. `not_applicable`: номер
                      отсутствует, в стране нет реестра или правил либо это
                      сессия в песочнице.
                  vat_validated_number:
                    type: string
                    nullable: true
                    description: >-
                      Номер, который был проверен, в том виде, в каком он
                      известен источнику (например, номер VAT, полученный из
                      французского SIREN или нидерландского RSIN). `null`, если
                      проверка не выполнялась.
                  vat_validation_source:
                    type: string
                    nullable: true
                    enum:
                      - eu_vies
                      - pl_vat_white_list
                      - no_brreg
                      - ch_uid_register
                      - br_receita_federal
                      - co_rues
                      - cr_hacienda
                      - ec_sri
                      - py_dnit
                      - format_rules
                      - null
                    description: >-
                      Источник, определивший `vat_validation_status`:
                      официальный реестр или `format_rules`. `null`, если
                      проверка не проводилась.
                  vat_validated_name:
                    type: string
                    nullable: true
                    description: >-
                      Имя, зарегистрированное в источнике, подтвердившем номер,
                      если источник его раскрывает. Указывается только со
                      статусом `valid`.
                  vat_validated_address:
                    type: string
                    nullable: true
                    description: >-
                      Адрес, зарегистрированный в источнике, выполнившем
                      проверку номера, если он раскрывает его. Заполняется,
                      только когда статус равен `valid`.
                  vat_checked_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Временная метка проверки. `null`, если проверка не
                      запускалась.
                  financial_summary:
                    type: object
                    nullable: true
                  officers:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                        designation:
                          type: string
                          nullable: true
                        role:
                          type: string
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                        is_active:
                          type: boolean
                        kyc_status:
                          type: string
                          enum:
                            - Approved
                            - Declined
                            - Pending
                          nullable: true
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        first_name:
                          type: string
                          nullable: true
                          description: >-
                            Имя, если оно явно указано в реестре; не выводится
                            из полного имени.
                        last_name:
                          type: string
                          nullable: true
                          description: Фамилия, если она явно указана в реестре.
                        address:
                          type: string
                          nullable: true
                          description: Адрес должностного лица, указанный в реестре.
                        appointment_date:
                          type: string
                          nullable: true
                          description: Дата назначения должностного лица.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: Дата окончания полномочий, если указана.
                          format: date
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Полная дата рождения по данным реестра. Null, если
                            известны только год или месяц рождения.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Год рождения по данным реестра, в том числе когда
                            полная дата недоступна.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Месяц рождения по данным реестра. Null, если
                            известен только год.
                  beneficial_owners:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        roles:
                          type: array
                          items:
                            type: string
                        ownership_min_shares:
                          type: string
                          nullable: true
                          description: >-
                            Нижняя граница процента владения, указанная в
                            реестре. Строка в свободной форме (например,
                            `"25.00"`, `"50"`); используйте
                            `effective_ownership_percent` для получения
                            обработанного числового значения.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Верхняя граница доли владения по данным реестра.
                            Строка произвольного формата; используйте
                            `effective_ownership_percent` для получения
                            числового значения.
                        is_active:
                          type: boolean
                        kyc_status:
                          type: string
                          enum:
                            - Approved
                            - Declined
                            - Pending
                          nullable: true
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        effective_ownership_percent:
                          type: number
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        country_of_birth:
                          type: string
                          nullable: true
                        email:
                          type: string
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                        designation:
                          type: string
                          nullable: true
                        voting_min_shares:
                          type: string
                          nullable: true
                        voting_max_shares:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          nullable: true
                          description: Полная дата рождения, если указана.
                          format: date
                        appointment_date:
                          type: string
                          nullable: true
                          description: Дата назначения, если указана.
                          format: date
                        shareholding:
                          $ref: '#/components/schemas/KYBRegistryShareholding'
                  addresses:
                    type: array
                    nullable: true
                    description: >-
                      Каждый адрес, указанный в реестре, в едином каноническом
                      формате. Null, если реестр не указывает ни одного.
                    items:
                      $ref: '#/components/schemas/KYBRegistryAddress'
                  industries:
                    type: array
                    nullable: true
                    description: >-
                      Виды деятельности, к которым реестр относит компанию, в
                      единой канонической форме. Null, если ни один вид не
                      указан.
                    items:
                      $ref: '#/components/schemas/KYBRegistryIndustry'
                  accounts:
                    type: object
                    nullable: true
                    additionalProperties: true
                    description: >-
                      Даты подачи документов в реестр, если доступны. Для
                      годовой отчётности и общих собраний используются
                      last_annual_return_date и last_agm_date; они отличаются от
                      финансовой отчётности.
                  registry_data:
                    $ref: '#/components/schemas/KYBRegistryData'
                  user_provided_data:
                    type: object
                    description: >-
                      Данные, подтверждённые или отредактированные конечным
                      пользователем.
                  confirmed_by_user_at:
                    type: string
                    format: date-time
                    nullable: true
                  last_console_edit_at:
                    type: string
                    format: date-time
                    nullable: true
                  is_editable:
                    type: boolean
                  ownership:
                    $ref: '#/components/schemas/KYBRegistryOwnership'
                  registry_tier:
                    type: string
                    nullable: true
                    description: >-
                      Уровень реестра, запрошенный сценарием: `basic`,
                      `shareholders` или `ubo`. Также указан в
                      `ownership.tier_requested`.
                  registry_tier_delivered:
                    type: string
                    nullable: true
                    description: >-
                      Уровень, предоставленный реестром и включенный в счёт.
                      Также указывается в `ownership.tier_delivered`.
                  registry_ownership_status:
                    type: string
                    nullable: true
                    description: >-
                      `not_requested`, `pending`, `delivered`, `not_held` или
                      `unavailable`. Также в `ownership.status`.
                  registry_monitoring:
                    type: object
                    nullable: true
                    description: >-
                      Последний мониторинг реестра для компании или `null`, если
                      он отсутствует.
                    properties:
                      uuid:
                        type: string
                        format: uuid
                      status:
                        type: string
                      unavailable_reason:
                        type: string
                        nullable: true
                      enrolled_at:
                        type: string
                        format: date-time
                        nullable: true
                      cancelled_at:
                        type: string
                        format: date-time
                        nullable: true
                      last_bill_date:
                        type: string
                        format: date
                        nullable: true
                      next_bill_date:
                        type: string
                        format: date
                        nullable: true
                      last_event_at:
                        type: string
                        format: date-time
                        nullable: true
                      events_count:
                        type: integer
                      watched_fields:
                        description: Поля компании, отслеживаемые мониторингом.
              ownership_structure:
                $ref: '#/components/schemas/KYBOwnershipStructure'
              warnings:
                type: array
                items:
                  type: object
        key_people_checks:
          type: array
          nullable: true
          description: >-
            Агрегированные проверки ключевых лиц. Присутствует только при
            `session_kind = business`. Каждый элемент использует структуру с
            двумя категориями (`registry`, `submitted`, `ubo_kyc_summary`).
          items:
            type: object
            description: >-
              Агрегированная проверка должностных лиц компании и бенефициарных
              владельцев (UBO). Использует структуру `registry` / `submitted`.
              Присутствует только при session_kind = business.
            properties:
              status:
                type: string
              node_id:
                type: string
                nullable: true
              registry:
                type: object
                description: Стороны, обнаруженные в ходе проверки по реестру.
                properties:
                  officers:
                    type: array
                    description: >-
                      Должностные лица, обнаруженные в ходе проверки реестра;
                      для каждого указан статус дочерней сессии KYC и
                      AML-скрининга, запущенных для них.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Полное имя должностного лица в соответствии с
                            записью в реестре.
                        designation:
                          type: string
                          nullable: true
                          description: >-
                            Должность или статус из реестра в виде произвольного
                            текста (например, `Director`, `Company Secretary`).
                        role:
                          type: string
                          enum:
                            - director
                            - non_executive_director
                            - secretary
                            - chairman
                            - ubo
                            - shareholder
                            - representative
                            - founder
                            - legal_advisor
                            - authorized_signatory
                            - trustee
                            - beneficiary
                            - settlor
                            - protector
                            - company_officer
                            - investor
                            - other
                          description: Нормализованная роль должностного лица.
                        nationality:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Дата назначения должностного лица.
                          format: date
                        termination_date:
                          type: string
                          nullable: true
                          description: Дата окончания полномочий, если указана.
                          format: date
                        is_active:
                          type: boolean
                        address:
                          type: string
                          nullable: true
                          description: Адрес должностного лица, указанный в реестре.
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Статус AML-скрининга, проведённого для этого
                            должностного лица. `null`, если AML-скрининг не
                            проводился.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Необработанный статус жизненного цикла дочерней
                            KYC-сессии, созданной для этого должностного лица.
                            Это полный enum статусов сессии (а не сокращённый
                            набор Одобрено/Отклонено/В ожидании). `null`, если
                            дочерняя KYC-сессия отсутствует.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL дочерней сессии KYC для предоставления доступа.
                            `null`, если дочерняя сессия отсутствует.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID дочерней KYC-сессии. Передайте его в этот же
                            endpoint решения, чтобы получить полный KYC-отчёт по
                            человеку. `null`, если дочерней сессии нет.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Базовый тип сценария дочерней сессии (например,
                            `kyc`). `null` для сценариев на основе графа или при
                            отсутствии дочерней сессии.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID сценария, используемый дочерней сессией. `null`,
                            если дочерней сессии не существует.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Понятное название сценария дочерней сессии. `null`,
                            если не задано.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Прогресс по функциям дочерней сессии верификации,
                            например `[{"feature": "ID_VERIFICATION", "status":
                            "Approved"}]`. `null`, если список функций дочерней
                            сессии не удалось определить.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Отображаемое имя функции (например,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Статус на уровне функции внутри дочерней
                                  сессии.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Постоянный внутренний идентификатор
                            верифицированного физического лица, связанного с
                            дочерней сессией, — полезен для связывания между
                            сессиями. `null`, если дочерняя сессия отсутствует
                            или пользователь ещё не сопоставлен.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Тип документа, предъявленного в дочерней KYC-сессии
                            (например, `P`, `ID`, `DL`). Имеет значение `null`
                            до тех пор, пока в дочерней сессии не появится
                            результат верификации личности.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Гражданство, извлечённое из документа в дочерней
                            KYC-сессии. `null`, пока недоступно.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Успешно ли пройдена проверка живости в дочерней
                            KYC-сессии. `null`, если проверка живости не
                            запускалась.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Когда дочерняя сессия KYC получила статус
                            `Approved`. `null`, пока дочерняя сессия имеет любой
                            другой статус.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Сводка по категориям на основе совпадений в
                            AML-проверках по персоне. `null`, если совпадений
                            нет.
                          properties:
                            sanctions:
                              type: string
                              enum:
                                - match
                                - clear
                            pep:
                              type: string
                              enum:
                                - match
                                - clear
                            adverse_media:
                              type: string
                              enum:
                                - match
                                - clear
                            warnings:
                              type: string
                              enum:
                                - match
                                - clear
                        kyc_notification_sent_at:
                          type: string
                          nullable: true
                          description: >-
                            Временная метка ISO 8601 последней отправки
                            уведомления с приглашением на верификацию для
                            дочерней сессии этого человека. `null`, если
                            отправка не выполнялась.
                        first_name:
                          type: string
                          nullable: true
                          description: >-
                            Имя, если оно явно указано в реестре; не выводится
                            из полного имени.
                        last_name:
                          type: string
                          nullable: true
                          description: Фамилия, если она явно указана в реестре.
                        date_of_birth:
                          type: string
                          nullable: true
                          description: >-
                            Полная дата рождения по данным реестра. Null, если
                            известны только год или месяц рождения.
                          format: date
                        date_of_birth_year:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 9999
                          description: >-
                            Год рождения по данным реестра, в том числе когда
                            полная дата недоступна.
                        date_of_birth_month:
                          type: integer
                          nullable: true
                          minimum: 1
                          maximum: 12
                          description: >-
                            Месяц рождения по данным реестра. Null, если
                            известен только год.
                  beneficial_owners:
                    type: array
                    description: >-
                      Бенефициарные владельцы, обнаруженные в ходе проверки по
                      реестру, каждый дополнен статусом любых дочерних сессий
                      KYC и AML-скрининга, запущенных для него.
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        name:
                          type: string
                          description: >-
                            Полное имя бенефициарного владельца (или название
                            компании для корпоративных UBO).
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          nullable: true
                          description: Полная дата рождения, если указана.
                          format: date
                        country_of_birth:
                          type: string
                          nullable: true
                        email:
                          type: string
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        nationality:
                          type: string
                          nullable: true
                        designation:
                          type: string
                          nullable: true
                        roles:
                          type: array
                          description: >-
                            Названия ролей, которые занимает этот владелец,
                            например `["ubo", "shareholder"]`.
                          items:
                            type: string
                        ownership_min_shares:
                          type: string
                          nullable: true
                          description: >-
                            Нижняя граница процента владения, указанная в
                            реестре. Строка в свободной форме (например, `"25"`,
                            `"25-50%"`); используйте
                            `effective_ownership_percent` для получения
                            обработанного числового значения.
                        ownership_max_shares:
                          type: string
                          nullable: true
                          description: >-
                            Верхняя граница доли владения по данным реестра.
                            Строка произвольного формата; используйте
                            `effective_ownership_percent` для получения
                            числового значения.
                        is_active:
                          type: boolean
                        aml_status:
                          type: string
                          enum:
                            - Not Finished
                            - Approved
                            - Declined
                            - In Review
                            - Resub Requested
                          nullable: true
                          description: >-
                            Статус AML-скрининга, проведённого для этого
                            бенефициарного владельца. `null`, если AML-скрининг
                            не проводился.
                        kyc_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Необработанный статус жизненного цикла дочерней
                            KYC-сессии, созданной для этого бенефициарного
                            владельца. Это полный enum статусов сессии (а не
                            сокращённый набор Одобрено/Отклонено/В ожидании).
                            `null`, если дочерняя KYC-сессия отсутствует.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL дочерней сессии KYC для предоставления доступа.
                            `null`, если дочерняя сессия отсутствует.
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID дочерней KYC-сессии. Передайте его в этот же
                            endpoint решения, чтобы получить полный KYC-отчёт по
                            человеку. `null`, если дочерней сессии нет.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Базовый тип сценария дочерней сессии (например,
                            `kyc`). `null` для сценариев на основе графа или при
                            отсутствии дочерней сессии.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID сценария, используемый дочерней сессией. `null`,
                            если дочерней сессии не существует.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Понятное название сценария дочерней сессии. `null`,
                            если не задано.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Прогресс по функциям дочерней сессии верификации,
                            например `[{"feature": "ID_VERIFICATION", "status":
                            "Approved"}]`. `null`, если список функций дочерней
                            сессии не удалось определить.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Отображаемое имя функции (например,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Статус на уровне функции внутри дочерней
                                  сессии.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Постоянный внутренний идентификатор
                            верифицированного физического лица, связанного с
                            дочерней сессией, — полезен для связывания между
                            сессиями. `null`, если дочерняя сессия отсутствует
                            или пользователь ещё не сопоставлен.
                        kyc_document_type:
                          type: string
                          nullable: true
                          description: >-
                            Тип документа, предъявленного в дочерней KYC-сессии
                            (например, `P`, `ID`, `DL`). Имеет значение `null`
                            до тех пор, пока в дочерней сессии не появится
                            результат верификации личности.
                        kyc_nationality:
                          type: string
                          nullable: true
                          description: >-
                            Гражданство, извлечённое из документа в дочерней
                            KYC-сессии. `null`, пока недоступно.
                        kyc_liveness_passed:
                          type: boolean
                          nullable: true
                          description: >-
                            Успешно ли пройдена проверка живости в дочерней
                            KYC-сессии. `null`, если проверка живости не
                            запускалась.
                        kyc_verified_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Когда дочерняя сессия KYC получила статус
                            `Approved`. `null`, пока дочерняя сессия имеет любой
                            другой статус.
                        kyc_aml_categories:
                          type: object
                          nullable: true
                          description: >-
                            Сводка по категориям на основе совпадений в
                            AML-проверках по персоне. `null`, если совпадений
                            нет.
                          properties:
                            sanctions:
                              type: string
                              enum:
                                - match
                                - clear
                            pep:
                              type: string
                              enum:
                                - match
                                - clear
                            adverse_media:
                              type: string
                              enum:
                                - match
                                - clear
                            warnings:
                              type: string
                              enum:
                                - match
                                - clear
                        kyc_notification_sent_at:
                          type: string
                          nullable: true
                          description: >-
                            Временная метка ISO 8601 последней отправки
                            уведомления с приглашением на верификацию для
                            дочерней сессии этого человека. `null`, если
                            отправка не выполнялась.
                        child_beneficial_owners:
                          type: array
                          description: >-
                            Для корпоративных UBO: собственные бенефициарные
                            владельцы владеющей компании в виде необработанных
                            объектов, извлечённых из реестра. Пустой массив,
                            если неприменимо.
                          items:
                            type: object
                        effective_ownership_percent:
                          type: number
                          nullable: true
                          description: >-
                            Распознанный числовой процент владения — верхняя
                            граница, если доступна, иначе нижняя граница.
                            `null`, если ни одну из границ не удалось
                            распознать.
                        voting_min_shares:
                          type: string
                          nullable: true
                        voting_max_shares:
                          type: string
                          nullable: true
                        appointment_date:
                          type: string
                          nullable: true
                          description: Дата назначения, если указана.
                          format: date
              submitted:
                type: object
                description: >-
                  Стороны, переданные администратором компании в процессе
                  проверки ключевых лиц (строки BusinessParty, где source=USER).
                properties:
                  parties:
                    type: array
                    items:
                      type: object
                      description: >-
                        Сторона, переданная администратором компании в процессе
                        проверки ключевых лиц (source=USER).
                      properties:
                        uuid:
                          type: string
                          format: uuid
                        entity_type:
                          type: string
                          enum:
                            - person
                            - company
                        source:
                          type: string
                          enum:
                            - USER
                          description: >-
                            Всегда `USER` здесь — эта группа содержит только
                            стороны, введённые или подтверждённые конечным
                            пользователем в сценарии ключевых лиц (люди,
                            найденные в реестре, отображаются в `registry`).
                        name:
                          type: string
                        first_name:
                          type: string
                          nullable: true
                        last_name:
                          type: string
                          nullable: true
                        company_name:
                          type: string
                          nullable: true
                        registration_number:
                          type: string
                          nullable: true
                        email:
                          type: string
                          format: email
                          nullable: true
                        nationality:
                          type: string
                          nullable: true
                          description: >-
                            Гражданство для физических лиц; страна регистрации
                            для компаний, являющихся сторонами.
                        phone_number:
                          type: string
                          nullable: true
                        date_of_birth:
                          type: string
                          format: date
                          nullable: true
                        position:
                          type: string
                          nullable: true
                          description: >-
                            Название должности / позиции в виде произвольного
                            текста (только физические лица).
                        custom_fields:
                          type: object
                          description: >-
                            Пользовательские поля, определённые сценарием и
                            собранные для этой стороны; ключи определяются
                            дескрипторами полей ключевых лиц сценария.
                        is_active:
                          type: boolean
                        is_skipped:
                          type: boolean
                          description: >-
                            True, когда конечный пользователь пропустил
                            верификацию для этой стороны (возможно, только если
                            роль разрешает пропуск).
                        requires_verification:
                          type: boolean
                          description: >-
                            True, когда для этой стороны требуется дочерняя
                            подсессия KYC / KYB на основе настроек роли и
                            порогов структуры владения.
                        roles:
                          type: array
                          description: >-
                            Все роли, которые занимает эта сторона, каждая со
                            своими процентами владения и прав голоса. У самой
                            стороны нет скалярных полей
                            `role`/`ownership_percent`.
                          items:
                            type: object
                            properties:
                              role:
                                type: string
                                enum:
                                  - director
                                  - non_executive_director
                                  - secretary
                                  - chairman
                                  - ubo
                                  - shareholder
                                  - representative
                                  - founder
                                  - legal_advisor
                                  - authorized_signatory
                                  - trustee
                                  - beneficiary
                                  - settlor
                                  - protector
                                  - company_officer
                                  - investor
                                  - other
                              ownership_percent:
                                type: number
                                nullable: true
                              voting_percent:
                                type: number
                                nullable: true
                        kyc_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID дочерней сессии KYC для сторон, являющихся
                            физическими лицами, требующих верификации. В
                            противном случае `null`.
                        kyc_session_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Статус жизненного цикла дочерней сессии KYC. `null`,
                            если дочерняя сессия KYC отсутствует.
                        kyc_session_url:
                          type: string
                          format: uri
                          nullable: true
                        kyb_sub_session_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID дочерней подсессии KYB для корпоративных сторон,
                            требующих верификации. В противном случае `null`.
                        kyb_sub_session_status:
                          type: string
                          enum:
                            - Not Started
                            - In Progress
                            - Approved
                            - Declined
                            - In Review
                            - Expired
                            - Abandoned
                            - Kyc Expired
                            - Resubmitted
                            - Awaiting User
                          nullable: true
                          description: >-
                            Статус жизненного цикла дочерней подсессии KYB.
                            `null`, если подсессия отсутствует.
                        kyb_sub_session_url:
                          type: string
                          format: uri
                          nullable: true
                          description: >-
                            URL дочерней субсессии KYB для предоставления
                            доступа. `null`, если субсессия отсутствует.
                        verification_workflow_type:
                          type: string
                          nullable: true
                          description: >-
                            Базовый тип сценария дочерней сессии (приоритет
                            отдаётся KYC-сессии с откатом к подсессии KYB).
                            `null` для сценариев на основе графа или при
                            отсутствии дочерней сессии.
                        verification_workflow_id:
                          type: string
                          format: uuid
                          nullable: true
                          description: >-
                            ID сценария, используемый дочерней сессией. `null`,
                            если дочерней сессии не существует.
                        verification_workflow_label:
                          type: string
                          nullable: true
                          description: >-
                            Понятное название сценария дочерней сессии. `null`,
                            если не задано.
                        verification_workflow_features:
                          type: array
                          nullable: true
                          description: >-
                            Прогресс по функциям дочерней сессии верификации,
                            например `[{"feature": "ID_VERIFICATION", "status":
                            "Approved"}]`. `null`, если список функций дочерней
                            сессии не удалось определить.
                          items:
                            type: object
                            properties:
                              feature:
                                type: string
                                description: >-
                                  Отображаемое имя функции (например,
                                  `ID_VERIFICATION`, `LIVENESS`, `AML`).
                              status:
                                type: string
                                enum:
                                  - Not Finished
                                  - Approved
                                  - Declined
                                  - In Review
                                  - Resub Requested
                                description: >-
                                  Статус на уровне функции внутри дочерней
                                  сессии.
                        didit_internal_id:
                          type: string
                          nullable: true
                          description: >-
                            Постоянный внутренний идентификатор
                            верифицированного физического лица, связанного с
                            дочерней сессией. `null`, если не сопоставлен.
              ubo_kyc_summary:
                type: object
                nullable: true
                description: >-
                  Агрегированный прогресс KYC бенефициарных владельцев (UBO) или
                  null, если у бенефициарных владельцев нет привязанных
                  KYC-сессий.
                properties:
                  total:
                    type: integer
                  approved:
                    type: integer
                  flagged:
                    type: integer
                    description: >-
                      UBO, чей KYC находится в статусе «отклонена» или «на
                      проверке».
                  pending:
                    type: integer
              warnings:
                type: array
                items:
                  type: object
        document_verifications:
          type: array
          nullable: true
          description: >-
            Проверки верификации документов, сгруппированные по узлам сценария.
            Присутствует, только если `session_kind = business`.
          items:
            type: object
            description: >-
              Документы, сгруппированные по узлам сценария. Присутствует, только
              если session_kind = business.
            properties:
              status:
                type: string
              node_id:
                type: string
                nullable: true
              items:
                type: array
                items:
                  type: object
                  properties:
                    uuid:
                      type: string
                      format: uuid
                    document_type:
                      type: string
                      enum:
                        - LEGAL_PRESENCE
                        - COMPANY_DETAILS
                        - OWNERSHIP_STRUCTURE
                        - REPRESENTATIVES_AUTHORIZATION
                        - OTHER
                      nullable: true
                      description: >-
                        Высокоуровневая группа документов KYB, к которой был
                        отнесён файл. `null`, пока файл не классифицирован.
                    document_subtype:
                      type: string
                      nullable: true
                      description: >-
                        Конкретный подтип, определённый OCR (например,
                        `CERTIFICATE_OF_INCORPORATION`, `SHAREHOLDER_REGISTRY`);
                        `UNKNOWN`, если OCR не удалось уверенно классифицировать
                        документ.
                    document_group:
                      type: string
                      enum:
                        - LEGAL_PRESENCE
                        - COMPANY_DETAILS
                        - OWNERSHIP_STRUCTURE
                        - REPRESENTATIVES_AUTHORIZATION
                        - OTHER
                      nullable: true
                      description: >-
                        Псевдоним `document_type` — имя группы, используемое
                        `groups` и `required_groups`.
                    file_url:
                      type: string
                      format: uri
                      nullable: true
                      description: >-
                        Временная предварительно подписанная ссылка на
                        загруженный файл. `null` для созданных аналитиком
                        заполнителей запросов документов (`is_requested =
                        true`), которые ещё не были выполнены.
                    original_filename:
                      type: string
                      nullable: true
                      description: Имя файла при загрузке пользователем или аналитиком.
                    file_size:
                      type: integer
                      nullable: true
                      description: Размер файла в байтах.
                    status:
                      type: string
                      enum:
                        - Not Finished
                        - Approved
                        - Declined
                        - In Review
                        - Resub Requested
                      description: Статус верификации по каждому документу.
                    created_at:
                      type: string
                      format: date-time
                    cross_check_result:
                      type: object
                      nullable: true
                      description: >-
                        Сверка извлечённых через OCR полей документа с профилем
                        компании из реестра. Объект с разделами `critical`,
                        `non_critical` и `people`, каждый из которых связывает
                        имя поля (например, `company_name`,
                        `registration_number`, `incorporation_date`,
                        `registered_address`) с записью сравнения вида
                        `{"document": "...", "registry": "...", "match": true,
                        "score": 0.97}`. `null`, если в документе не было данных
                        OCR или отсутствовала компания из реестра для сравнения.
                    document_metadata:
                      type: object
                      nullable: true
                      description: >-
                        Метаданные, извлечённые из загруженного корпоративного
                        документа. При успешном извлечении метаданных всегда
                        присутствуют все 16 ключей (отдельные значения равны
                        `null`, если они неприменимы к данному типу файла); весь
                        объект равен `null`, если ничего извлечь не удалось. Для
                        PDF-файлов поле `overlay_manipulation` содержит
                        результаты форензик-анализа наложенного текста.
                      properties:
                        file_size:
                          type: integer
                          nullable: true
                          description: Размер документа.
                        content_type:
                          type: string
                          nullable: true
                          description: Тип содержимого документа.
                        creation_date:
                          type: string
                          nullable: true
                          description: Дата создания документа.
                        modified_date:
                          type: string
                          nullable: true
                          description: Дата изменения документа.
                        creator:
                          type: string
                          nullable: true
                          description: >-
                            Инструмент/пользователь, создавший файл, записанный
                            в метаданных (PDF `Creator`).
                        producer:
                          type: string
                          nullable: true
                          description: >-
                            Программное обеспечение, создавшее файл (`Producer`
                            в PDF).
                        software:
                          type: string
                          nullable: true
                          description: >-
                            Программное обеспечение для редактирования,
                            зафиксированное в метаданных файла.
                        encryption:
                          type: string
                          nullable: true
                          description: Схема шифрования файла, если он зашифрован.
                        is_signed:
                          type: boolean
                          nullable: true
                          description: Содержит ли документ цифровую подпись.
                        is_tampered:
                          type: boolean
                          nullable: true
                          description: >-
                            Не прошла ли цифровая подпись проверку (изменение
                            после подписания).
                        signature_info:
                          type: object
                          nullable: true
                          description: >-
                            Сведения о цифровой подписи (подписях), если
                            имеются.
                        exif_original_date:
                          type: string
                          nullable: true
                          description: >-
                            Исходная дата съёмки EXIF для загруженных
                            изображений.
                        exif_digitized_date:
                          type: string
                          nullable: true
                          description: Дата оцифровки EXIF для загруженных изображений.
                        processed_by_known_editor:
                          type: boolean
                          nullable: true
                          description: >-
                            Указывают ли метаданные на то, что файл
                            обрабатывался в известном редакторе изображений или
                            PDF.
                        has_different_creation_mod_date:
                          type: boolean
                          nullable: true
                          description: >-
                            Различаются ли даты создания и изменения — возможный
                            (но не окончательный) признак редактирования.
                        overlay_manipulation:
                          type: object
                          nullable: true
                          description: >-
                            Криминалистический анализ PDF на предмет подозрения
                            на манипуляции с наложением текста. Null, если
                            свидетельств манипуляций с наложением не обнаружено
                            или документ не являлся PDF.
                          properties:
                            detected:
                              type: boolean
                              description: >-
                                Были ли обнаружены признаки манипуляций с
                                наложенным текстом.
                            analyzed:
                              type: boolean
                              description: Удалось ли проанализировать PDF.
                            analysis_incomplete:
                              type: boolean
                              description: >-
                                Присутствует и равно true только в том случае,
                                если файл не удалось проверить полностью.
                                Результаты проверки той части, которую удалось
                                проверить, сохраняются, а в документе выводится
                                предупреждение о непроверенной замене текста.
                            signals:
                              type: array
                              items:
                                type: string
                              description: >-
                                Сработавшие форензик-сигналы, такие как
                                duplicate_font_subset или glyph_fragmentation.
                            manipulated_regions:
                              type: array
                              description: >-
                                Области с подозрением на манипуляции в
                                координатах страницы PDF.
                              items:
                                type: object
                                properties:
                                  page:
                                    type: integer
                                  x:
                                    type: number
                                  'y':
                                    type: number
                                  width:
                                    type: number
                                  height:
                                    type: number
                                  page_width:
                                    type: number
                                  page_height:
                                    type: number
                    description:
                      type: string
                      nullable: true
                      description: >-
                        Указанная аналитиком метка или причина запроса
                        документа. `null` для стандартных загрузок.
                    is_requested:
                      type: boolean
                      description: >-
                        True для созданных аналитиком плейсхолдеров запроса
                        документов, ожидающих загрузки.
                    ocr_data:
                      type: object
                      nullable: true
                    is_console_upload:
                      type: boolean
                      description: >-
                        True для документов, загруженных из консоли, а не через
                        сценарий конечного пользователя. Загрузки из консоли
                        никогда не меняют совокупный статус на уровне функции.
                    is_confirmed:
                      type: boolean
                      description: >-
                        Загрузки через Console начинаются со значения `false` и
                        переключаются в `true` после подтверждения
                        администратором; загрузки конечным пользователем всегда
                        имеют значение `true`.
              groups:
                type: object
                description: >-
                  Счётчики прогресса по группам, сгруппированные по названию
                  группы (например, legal_presence, ownership_structure).
                additionalProperties:
                  type: object
                  properties:
                    total:
                      type: integer
                    approved:
                      type: integer
                    pending:
                      type: integer
                    declined:
                      type: integer
                    in_review:
                      type: integer
                    other:
                      type: integer
                    missing:
                      type: integer
                      description: >-
                        Запрошенные плейсхолдеры, для которых ещё не загружен
                        файл.
              required_groups:
                type: array
                items:
                  type: string
              warnings:
                type: array
                items:
                  type: object
        environment:
          type: string
          enum:
            - live
            - sandbox
          description: >-
            Была ли сессия создана продакшн-приложением (`live`) или приложением
            песочницы (`sandbox`). Сессии в песочнице бесплатны, полностью
            симулируются и никогда не списывают кредиты.
        sandbox_scenario:
          type: string
          nullable: true
          description: >-
            Сценарий песочницы, с которым была создана сессия. Значение `null`
            для сессий в продакшн-среде и для сессий в песочнице, созданных без
            сценария.
        resubmissions:
          type: array
          description: >-
            Возвращается только при `include=resubmissions`, для сессий
            пользователей и сессий компаний. По одной записи на каждый запрос
            повторной отправки, начиная с самых старых. Каждая запись содержит
            результаты, возвращённые повторно отправленными шагами до запроса,
            поэтому более ранние отправки остаются доступными для чтения.
            Удаление сессии удаляет все отправки.
          items:
            type: object
            properties:
              number:
                type: integer
                description: >-
                  1 для первой повторной отправки сессии, 2 для второй и так
                  далее.
              created_at:
                type: string
                format: date-time
                description: Время запроса повторной отправки.
              previous_status:
                type: string
                description: Статус сессии непосредственно перед запросом.
              nodes:
                type: array
                description: Шаги сценария, отправленные обратно пользователю.
                items:
                  type: object
                  properties:
                    node_id:
                      type: string
                    feature:
                      type: string
              reasons:
                type: object
                nullable: true
                additionalProperties:
                  type: string
                description: Причина, указанная для каждого шага, с ключом по `node_id`.
              requested_by:
                type: object
                nullable: true
                description: Кто запросил повторную отправку.
                properties:
                  name:
                    type: string
                  email:
                    type: string
                  type:
                    type: string
              results:
                type: object
                additionalProperties: true
                description: >-
                  Что вернули повторно отправленные шаги до запроса, под теми же
                  ключами и в том же формате, что и текущие результаты этого
                  ответа (`id_verifications`, `nfc_verifications`,
                  `liveness_checks`, `face_matches`, `poa_verifications`,
                  `phone_verifications`, `email_verifications`,
                  `aml_screenings`, `ip_analyses`, `database_validations`,
                  `questionnaire_responses`, `document_ai_documents`,
                  `geolocation_checks`; для бизнес-сессий также
                  `document_verifications`). Отображаются только ключи тех
                  шагов, которые были отправлены повторно.
        biometric_consent:
          type: object
          nullable: true
          description: >-
            Требовалось ли в сессии явное согласие на обработку биометрии перед
            захватом лица, по какой причине, а также подтверждение ответа.
            Только для сессий Проверки пользователей (KYC); тот же объект
            находится в `decision` webhook сессии. Значение `null`, если сессия
            не оценивалась, например в сценарии без захвата лица. Поля без
            зафиксированного значения равны `null`. Нативный SDK версии ниже
            4.10.0 или SDK, не передающий свою версию, не может отобразить шаг
            согласия: захват лица выполняется как прежде, а сессия, требовавшая
            согласия, возвращает `status: "pending"` с `reason:
            "BIOMETRIC_CONSENT_UNSUPPORTED_SDK"`. См. [Согласие на обработку
            биометрии](/ru/getting-started/biometric-consent).
          properties:
            required:
              type: boolean
              description: >-
                Whether the session must collect explicit biometric consent.
                Never goes back to `false`.
            trigger:
              type: string
              nullable: true
              enum:
                - declared_state
                - ip_state
                - ip_unknown
                - document_issuer
                - forced
                - customer_collected
              description: >-
                Причина, по которой требуется согласие, или способ его
                получения. `declared_state`: вы указали штат, на который
                распространяется требование (`user_state` или адрес в США в
                `expected_details`). `ip_state`: IP-адрес человека находится в
                штате, на который распространяется требование (Иллинойс, Техас,
                Колорадо). `ip_unknown`: данные указывают на нахождение в США,
                но штат определить невозможно (IP-адрес в США без указания
                штата, или местоположение не определяется, при этом ваши данные
                или документ указывают на США). `document_issuer`: документ,
                удостоверяющий личность, выдан штатом, на который
                распространяется требование. `forced`: для приложения установлен
                режим Always. `customer_collected`: вы передали
                `biometric_consent` при создании сессии. `null`, если согласие
                не требуется.
            status:
              type: string
              enum:
                - not_required
                - pending
                - given
                - declined
              description: >-
                `not_required`; `pending` (требуется, но не предоставлено:
                человек еще не ответил либо в `reason` указана причина, почему
                оно не было собрано); `given`; `declined` (зафиксирован отказ, и
                сессия завершилась со статусом `Declined`; в настоящее время ни
                один экран Didit не предлагает возможность отказа).
            given_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Когда согласие было дано. Для `customer_collected` это
                переданное вами значение `given_at`.
            declined_at:
              type: string
              format: date-time
              nullable: true
              description: Когда было зафиксировано отклонение.
            text_version:
              type: string
              nullable: true
              description: >-
                Идентификатор версии текста согласия, на который ответил
                пользователь, или текста, который вы отправили.
            text_hash:
              type: string
              nullable: true
              description: >-
                SHA-256 (hex) точного показанного текста согласия на том языке,
                на котором он отображался.
            locale:
              type: string
              nullable: true
              description: Язык, на котором был показан текст согласия.
            policy_url:
              type: string
              format: uri
              nullable: true
              description: >-
                Политика обработки биометрических данных, на которую ссылался
                шаг согласия.
            step:
              type: string
              nullable: true
              description: >-
                Шаг сценария, на котором находилась сессия, когда человек дал
                ответ, например `LIVENESS`.
            node_id:
              type: string
              nullable: true
              description: >-
                Узел графа сценария, на котором находилась сессия, когда человек
                дал ответ.
            ip_address:
              type: string
              nullable: true
              description: IP-адрес, с которого был получен ответ.
            ip_country_code:
              type: string
              nullable: true
              description: Код страны IP-адреса ответа по стандарту ISO 3166-1 alpha-2.
            ip_state:
              type: string
              nullable: true
              description: Подразделение по ISO 3166-2 для IP ответа, например `US-IL`.
            ip_city:
              type: string
              nullable: true
              description: Город, определённый по IP-адресу, с которого был дан ответ.
            user_agent:
              type: string
              nullable: true
              description: User-Agent запроса с ответом.
            detected_ip_address:
              type: string
              nullable: true
              description: >-
                IP-адрес человека, с которого требование оценивалось в последний
                раз. Может отличаться от `ip_address`, если человек ответил с
                другого устройства.
            detected_country_code:
              type: string
              nullable: true
              description: >-
                Код страны обнаруженного IP-адреса по стандарту ISO 3166-1
                alpha-2.
            detected_state:
              type: string
              nullable: true
              description: Подразделение по ISO 3166-2 обнаруженного IP-адреса.
            detected_city:
              type: string
              nullable: true
              description: Город обнаруженного IP-адреса.
            declared_state:
              type: string
              nullable: true
              description: >-
                Указанное вами подразделение по ISO 3166-2: `user_state` или
                штат адреса в США в `expected_details`.
            document_state:
              type: string
              nullable: true
              description: >-
                Подразделение по ISO 3166-2, выдавшее документ, удостоверяющий
                личность; считывается при захвате документа.
            jurisdictions:
              type: array
              items:
                type: string
              description: >-
                Штаты США (коды USPS, например `IL`), законы о биометрии которых
                распространяются на лицо. `US`, если по имеющимся данным лицо
                находится в США, но конкретный штат неизвестен. Пусто, если
                ничего не применимо.
            retention_months:
              type: integer
              nullable: true
              description: >-
                Минимальный срок хранения биометрических данных в месяцах среди
                `jurisdictions`. `null`, если ни один не применяется.
            reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_UNSUPPORTED_SDK
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_UNSUPPORTED_SDK`: требовалось согласие, и
                нативный SDK версии ниже 4.10.0 или не передавший свою версию
                захватил лицо без шага согласия; `status` остаётся `pending` или
                переходит в `given`, если человек позже дал согласие в
                размещённом сценарии. `BIOMETRIC_CONSENT_DECLINED`: был
                зафиксирован отказ (он заменяет причину SDK). В противном случае
                `null`, и всегда `null`, если сессия не требовала согласия.
            decline_reason:
              type: string
              nullable: true
              enum:
                - BIOMETRIC_CONSENT_DECLINED
              description: >-
                `BIOMETRIC_CONSENT_DECLINED`, если зафиксированный отказ
                завершил сессию, иначе `null`.
            face_data_deleted_at:
              type: string
              format: date-time
              nullable: true
              description: >-
                Когда при отклонении были удалены изображения лица, видео и
                биометрические шаблоны лица сессии. `null`, если отклонение не
                было зафиксировано.
        investigator:
          $ref: '#/components/schemas/InvestigatorBlock'
        biometric_retention:
          $ref: '#/components/schemas/BiometricRetention'
        fraud_check:
          type: object
          nullable: true
          additionalProperties: true
          description: Результат вызова Fraud Check API. `null` для всех остальных сессий.
        full_session_video:
          type: string
          format: uri
          nullable: true
          description: >-
            Временный URL полной видеозаписи сессии. Возвращается только тогда,
            когда ваша организация записывает видео всей сессии.
        full_session_video_recorded_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Когда была сделана запись всей сессии. Возвращается только тогда,
            когда ваша организация записывает видео всей сессии.
    AddressValidationResult:
      type: object
      description: >-
        Результат одной проверки Address Validation: существует ли адрес и его
        нормализованная форма. Подтверждается только адрес; он никогда не
        привязывается к человеку.
      required:
        - status
        - verification_level
        - address
        - formatted_address
        - latitude
        - longitude
      properties:
        status:
          type: string
          enum:
            - verified
            - partially_verified
            - not_verified
            - unavailable
          description: >-
            `verified`: адрес подтверждён с точностью до здания (или квартиры,
            или абонентского ящика). `partially_verified`: адрес подтверждён
            только до улицы либо до максимального уровня точности, доступного в
            почтовых справочных данных для этой местности. `not_verified`:
            совпал только регион или город, либо ничего не совпало.
            `unavailable`: проверку не удалось выполнить (например, справочный
            сервис не ответил); плата за неё не взимается, и она никак не влияет
            на верификацию.
        verification_level:
          type: string
          nullable: true
          enum:
            - administrative_area
            - locality
            - thoroughfare
            - premise
            - delivery_point
            - null
          description: >-
            Наиболее точный уровень, на котором совпал адрес. `null`, если
            совпадений нет или `status` имеет значение `unavailable`.
        address:
          type: object
          nullable: true
          description: Нормализованный адрес. `null`, если `status` равен `unavailable`.
          properties:
            address_line_1:
              type: string
              nullable: true
              description: >-
                Первая строка адреса доставки в формате, принятом в данной
                стране.
              example: 1600 Amphitheatre Pkwy
            address_line_2:
              type: string
              nullable: true
              description: >-
                Вторая строка адреса доставки (квартира, здание или район), если
                она есть в адресе.
            city:
              type: string
              nullable: true
              example: Mountain View
            region:
              type: string
              nullable: true
              description: Штат, провинция или регион.
              example: CA
            postal_code:
              type: string
              nullable: true
              example: 94043-1351
            country:
              type: string
              nullable: true
              description: Двухбуквенный код страны ISO 3166-1 alpha-2.
              example: US
        formatted_address:
          type: string
          nullable: true
          description: Нормализованный адрес в одну строку.
          example: 1600 Amphitheatre Pkwy, Mountain View CA 94043-1351
        latitude:
          type: number
          nullable: true
          example: 37.422022
        longitude:
          type: number
          nullable: true
          example: -122.08429
    PhoneIntelligence:
      type: object
      description: >-
        Нормализованный блок аналитики телефона. Присутствует только в том
        случае, если для этого поиска запускалось дополнение для аналитики; если
        он присутствует, то также доступен под псевдонимом `enrichment` с
        идентичными значениями.
      properties:
        score:
          type: number
          nullable: true
          description: Нормализованная оценка риска от 0 до 100. Чем выше, тем выше риск.
        phone_type_risk:
          type: string
          nullable: true
          description: '`Low`, `Medium` или `High`, вычисляется на основе оценки.'
        phone_trust_index:
          type: number
          nullable: true
          description: >-
            Обратная оценка, для панелей управления, где предпочтительнее
            принцип «чем выше, тем лучше».
        network_stability_index:
          type: number
          nullable: true
          description: Стабильность сети телефонной линии.
        is_disposable:
          type: boolean
          nullable: true
          description: '`true`, если номер выглядит одноразовым или виртуальным.'
        is_ported:
          type: boolean
          nullable: true
          description: '`true`, если номер был перенесён к другому оператору связи.'
        is_recently_ported:
          type: boolean
          nullable: true
          description: '`true`, если перенос номера произошёл недавно.'
        carrier_type:
          type: string
          nullable: true
          description: Классификация линии, возвращённая поиском (например, `mobile`).
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Постоянный идентификатор сигнала Didit, например
                  `IR-5AC67A32`. Непрозрачный: группируйте и фильтруйте по нему,
                  не парсите его.
              value:
                nullable: true
                description: >-
                  Для флага риска (например, `voip`, `leaked`, `disposable`,
                  `spam_trap`), его значение: логическое значение, уровень или
                  дата. Null для скорингового кода причины.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Повысил ли сигнал риск или повысил уровень доверия.
              message:
                type: string
                description: Понятное объяснение сигнала на английском языке.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Насколько сильно сигнал повлиял на скоринг, например `low`,
                  `medium` или `high`.
          description: >-
            Сигналы, объясняющие оценку, каждый с фиксированным кодом Didit,
            направлением, сообщением и уровнем влияния. Со временем могут
            появляться новые коды, поэтому не отклоняйте неизвестные коды.
    PhoneSocialFootprint:
      type: object
      nullable: true
      description: >-
        Цифровой след номера телефона: онлайн-платформы, на которых он
        зарегистрирован. Присутствует, только если был задан параметр
        `enable_social` и проверка завершилась. Любое количество может быть
        null, если данные по нему не были возвращены. `profiles_registered: 0`
        означает, что платформы были проверены и номер телефона не найден ни на
        одной из них: это валидный, тарифицируемый ответ и частый признак
        синтетической личности.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: Платформы, где подтверждена регистрация номера телефона.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Платформы, проверенные на наличие регистрации.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Платформы, вернувшие связанное имя.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Платформы, вернувшие фото профиля.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Коммуникационные платформы с обнаруженным присутствием.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Уникальные категории платформ с обнаруженным присутствием.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Составной индикатор цифровой зрелости, 0-10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Индикатор заполненности профиля, 0-10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Соотношение бесплатных и платных платформ, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Регистрации на бесплатных платформах.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Регистрации на полностью платных платформах.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Регистрации на freemium-платформах.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Полнота профиля WhatsApp. Только для телефона; null для электронной
            почты.
          example: Partial
        registered_platforms:
          type: array
          description: Платформы, где подтверждена регистрация.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Платформы, проверенные с отрицательным результатом.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Количество регистраций и их соотношение по категориям платформ.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Сведения о профиле на платформе, сгруппированные по платформам, если
            платформа их предоставляет.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    EmailIntelligence:
      type: object
      description: >-
        Нормализованный блок аналитики электронной почты. Присутствует только в
        том случае, если для этого адреса электронной почты запускалось
        дополнение для аналитики; если он присутствует, то также доступен через
        псевдоним `enrichment` с идентичными значениями.
      properties:
        score:
          type: number
          nullable: true
          description: Нормализованная оценка риска от 0 до 100. Чем выше, тем выше риск.
        deliverable:
          type: string
          nullable: true
          description: Диапазон доставляемости (например, `high`).
        breach_risk_level:
          type: string
          nullable: true
          description: '`Low`, `Medium` или `High`.'
        breach_risk_index:
          type: number
          nullable: true
          description: Числовой индекс риска утечки данных.
        is_recent_breach:
          type: boolean
          nullable: true
          description: '`true`, когда адрес фигурирует в недавней утечке данных.'
        is_frequent_breached:
          type: boolean
          nullable: true
          description: '`true`, когда адрес фигурирует во множестве утечек данных.'
        is_disposable:
          type: boolean
          nullable: true
          description: '`true`, если домен принадлежит сервису одноразовой почты.'
        is_free_domain:
          type: boolean
          nullable: true
          description: '`true`, если домен принадлежит бесплатному почтовому сервису.'
        is_breached:
          type: boolean
          nullable: true
          description: '`true`, когда адрес фигурирует в известных утечках данных.'
        no_of_breaches:
          type: number
          nullable: true
          description: Количество известных утечек, содержащих этот адрес.
        reason_codes:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: >-
                  Постоянный идентификатор сигнала Didit, например
                  `IR-5AC67A32`. Непрозрачный: группируйте и фильтруйте по нему,
                  не парсите его.
              value:
                nullable: true
                description: >-
                  Для флага риска (например, `voip`, `leaked`, `disposable`,
                  `spam_trap`), его значение: логическое значение, уровень или
                  дата. Null для скорингового кода причины.
              direction:
                type: string
                enum:
                  - risk
                  - trust
                description: Повысил ли сигнал риск или повысил уровень доверия.
              message:
                type: string
                description: Понятное объяснение сигнала на английском языке.
              impact_level:
                type: string
                nullable: true
                description: >-
                  Насколько сильно сигнал повлиял на скоринг, например `low`,
                  `medium` или `high`.
          description: >-
            Сигналы, объясняющие оценку, каждый с фиксированным кодом Didit,
            направлением, сообщением и уровнем влияния. Со временем могут
            появляться новые коды, поэтому не отклоняйте неизвестные коды.
    EmailSocialFootprint:
      type: object
      nullable: true
      description: >-
        Цифровой след адреса электронной почты: онлайн-платформы, на которых он
        зарегистрирован. Присутствует, только если был задан параметр
        `enable_social` и проверка завершилась. Любое количество может быть
        null, если данные по нему не были возвращены. `profiles_registered: 0`
        означает, что платформы были проверены и адрес электронной почты не
        найден ни на одной из них - это валидный, тарифицируемый ответ и частый
        признак синтетической личности.
      properties:
        profiles_registered:
          type: integer
          nullable: true
          description: Платформы, где подтверждена регистрация адреса электронной почты.
          example: 5
        profiles_checked:
          type: integer
          nullable: true
          description: Платформы, проверенные на наличие регистрации.
          example: 14
        names_found:
          type: integer
          nullable: true
          description: Платформы, вернувшие связанное имя.
          example: 0
        photos_found:
          type: integer
          nullable: true
          description: Платформы, вернувшие фото профиля.
          example: 0
        communication_breadth:
          type: integer
          nullable: true
          description: Коммуникационные платформы с обнаруженным присутствием.
          example: 2
        digital_footprint_diversity:
          type: integer
          nullable: true
          description: Уникальные категории платформ с обнаруженным присутствием.
          example: 5
        digital_sophistication_index:
          type: integer
          nullable: true
          description: Составной индикатор цифровой зрелости, 0-10.
          example: 5
        engagement_depth_index:
          type: integer
          nullable: true
          description: Индикатор заполненности профиля, 0-10.
          example: 3
        subscription_affordability_index:
          type: integer
          nullable: true
          description: Соотношение бесплатных и платных платформ, 0-10.
          example: 2
        free_platforms:
          type: integer
          nullable: true
          description: Регистрации на бесплатных платформах.
          example: 4
        full_paid_platforms:
          type: integer
          nullable: true
          description: Регистрации на полностью платных платформах.
          example: 0
        partial_paid_platforms:
          type: integer
          nullable: true
          description: Регистрации на freemium-платформах.
          example: 1
        whatsapp_profile_completeness:
          type: string
          nullable: true
          enum:
            - Basic
            - Partial
            - Complete
            - Not Present
            - null
          description: >-
            Полнота профиля WhatsApp. Только для телефона; null для электронной
            почты.
          example: Partial
        registered_platforms:
          type: array
          description: Платформы, где подтверждена регистрация.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        not_registered_platforms:
          type: array
          description: Платформы, проверенные с отрицательным результатом.
          items:
            $ref: '#/components/schemas/SocialFootprintPlatform'
        categories:
          type: object
          description: Количество регистраций и их соотношение по категориям платформ.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintCategorySummary'
        profiles:
          type: object
          description: >-
            Сведения о профиле на платформе, сгруппированные по платформам, если
            платформа их предоставляет.
          additionalProperties:
            $ref: '#/components/schemas/SocialFootprintProfile'
    DocumentAIDetectedCode:
      type: object
      required:
        - type
        - page_number
        - position
        - x
        - 'y'
        - width
        - height
        - page_width
        - page_height
        - raw_payload
        - parsed_payload
      properties:
        type:
          type: string
          description: >-
            Обнаруженная символика, например `QR_CODE`, `CODE_128`, `EAN_13`,
            `DATA_MATRIX` или `PDF_417`.
        page_number:
          type: integer
          minimum: 1
          description: Номер страницы (начиная с 1).
        position:
          type: array
          nullable: true
          description: >-
            Обнаруженный многоугольник в пиксельных координатах отрисованной
            страницы. `null`, если надежные координаты недоступны.
          items:
            type: array
            minItems: 2
            maxItems: 2
            items:
              type: integer
        x:
          type: integer
          nullable: true
          description: Левый край ограничивающей рамки в пикселях отрендеренной страницы.
        'y':
          type: integer
          nullable: true
          description: Верхний край ограничивающей рамки в пикселях отрендеренной страницы.
        width:
          type: integer
          nullable: true
          description: >-
            Ширина ограничивающего прямоугольника в пикселях отображаемой
            страницы.
        height:
          type: integer
          nullable: true
          description: >-
            Высота ограничивающего прямоугольника в пикселях отображаемой
            страницы.
        page_width:
          type: integer
          description: Ширина отрисованной страницы в пикселях.
        page_height:
          type: integer
          description: Высота отрисованной страницы в пикселях.
        raw_payload:
          type: string
          description: >-
            Необработанный payload декодера в виде строки base64 при наличии; в
            противном случае пустая строка.
        parsed_payload:
          nullable: true
          description: >-
            Декодированная строка или структурированное значение. `null`, если
            код был обнаружен, но не смог быть декодирован.
    BankVerificationResult:
      type: object
      description: >-
        Результат одного шага проверки банка для Проверки пользователей и
        Верификации бизнеса (KYB). `method` указывает, как был подтверждён счёт,
        а `none` означает, что пользователь продолжил без банка до оценки
        какой-либо попытки. `continued_without_bank` указывает, что пользователь
        продолжил без банка, в том числе после оценённой попытки. См. [Способы
        проверки
        банка](/ru/core-technology/bank-verification/verification-methods) и
        [Если пользователь не может подтвердить
        банк](/ru/core-technology/bank-verification/fallbacks).
      properties:
        schema_version:
          type: integer
          description: Версия этой структуры результата. На текущий момент `1`.
        bank_verification_id:
          type: string
          format: uuid
          description: ID этого результата.
        node_id:
          type: string
          description: Узел сценария, к которому относится этот результат.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Expired
          description: Вердикт шага после выполнения его действий и правил статуса.
        original_status:
          type: string
          nullable: true
          description: >-
            Первый вердикт, вынесенный на шаге, до любых последующих изменений,
            таких как ручная проверка.
        method:
          type: string
          nullable: true
          enum:
            - open_banking
            - account_lookup
            - microdeposits
            - statement
            - none
          description: >-
            Способ верификации счёта: `open_banking` (вход через банк: человек
            авторизовался в своём банке), `account_lookup` (проверка счёта:
            человек ввёл реквизиты счёта, и банк подтвердил имя),
            `microdeposits` или `statement` (загрузка банковской выписки).
            `none`, если человек продолжил без банка до оценки какой-либо
            попытки, поэтому ни один счёт не был верифицирован. После оцененной
            попытки сохраняется метод этой попытки. `null` до оценки счёта, а
            также когда сценарий ограничивает возвращаемые данные. Правила
            сценария читают то же значение, что и `bank.method`.
        provider:
          type: string
          nullable: true
          description: >-
            Ключ маршрута, выполнившего подключение. Чтобы определить, как был
            проверен аккаунт, читайте `method`, а не этот ключ.
        credential_source:
          type: string
          nullable: true
          enum:
            - native
            - byok
          description: >-
            `native`: собственный маршрут Didit, списываемый с вашего баланса
            Didit. `byok`: провайдер маркетплейса, подключенный с использованием
            ваших собственных учетных данных.
        route:
          type: object
          nullable: true
          description: >-
            Маршрут, выбранный до получения согласия. Впоследствии он никогда не
            меняется.
          properties:
            provider_key:
              type: string
              nullable: true
              description: Ключ маршрута.
            credential_source:
              type: string
              enum:
                - native
                - byok
            is_fallback:
              type: boolean
              description: >-
                Использовался ли собственный маршрут Didit в качестве замены
                провайдера маркетплейса, который не смог подключиться.
            provider_connection_id:
              type: string
              nullable: true
              description: Использованное подключение к маркетплейсу, для `byok`.
            requested_scopes:
              type: array
              items:
                type: string
              description: >-
                Данные, запрошенные подключением, например `ownership` или
                `balances`.
        connection:
          type: object
          nullable: true
          description: Подключение последней попытки. `null` до первой попытки.
          properties:
            status:
              type: string
              enum:
                - pending
                - connected
                - cancelled
                - timeout
                - failed
                - unsupported
                - revoked
                - expired
            institution_id:
              type: string
              nullable: true
              description: >-
                Идентификатор банка. `null` для проверки счёта, если банк не
                выбран.
            institution_name:
              type: string
              nullable: true
              description: Название банка. `null` для проверки счёта.
            institution_country:
              type: string
              nullable: true
              description: Страна счёта, ISO 3166-1 alpha-3.
            oauth:
              type: boolean
              nullable: true
              description: >-
                Выполнялся ли вход в банк через OAuth или по схеме app-to-app.
                `null` для проверки счёта.
            connected_at:
              type: string
              format: date-time
              nullable: true
              description: Когда подключение прошло успешно.
            consent_expires_at:
              type: string
              format: date-time
              nullable: true
              description: Когда заканчивается банковское согласие, для входа через банк.
            last_refreshed_at:
              type: string
              format: date-time
              nullable: true
              description: Когда финансовые данные в последний раз считывались повторно.
            attempts:
              type: integer
              description: >-
                Количество попыток, совершённых человеком на этом шаге, по всем
                методам суммарно.
            reason_code:
              type: string
              nullable: true
              description: >-
                Причина, по которой подключение имеет статус, отличный от
                `connected`, например `USER_CANCELLED`, `INSTITUTION_DOWN`,
                `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` или
                `VERIFICATION_COMPLETED`.
        account:
          type: object
          nullable: true
          description: >-
            Оцениваемый аккаунт. Имеет значение `null` до тех пор, пока аккаунт
            не будет оценён.
          properties:
            account_id_masked:
              type: string
              nullable: true
              description: Номер счёта, маскированный.
            iban_masked:
              type: string
              nullable: true
              description: Маскированный IBAN.
            sort_code:
              type: string
              nullable: true
              description: Код сортировки в Великобритании.
            routing_number_masked:
              type: string
              nullable: true
              description: Маршрутизационный номер, маскированный.
            type:
              type: string
              nullable: true
              enum:
                - checking
                - current
                - savings
                - business
                - other
            subtype:
              type: string
              nullable: true
              description: Собственный подтип счёта, используемый банком.
            currency:
              type: string
              nullable: true
              description: Валюта счёта по стандарту ISO 4217.
            holder_type:
              type: string
              nullable: true
              enum:
                - person
                - business
                - unknown
            holders_count:
              type: integer
              nullable: true
            is_joint:
              type: boolean
              nullable: true
            is_business:
              type: boolean
              nullable: true
        ownership:
          type: object
          nullable: true
          description: >-
            Результат сопоставления владельца счёта с подтверждённой личностью.
            `null` до тех пор, пока счёт не будет оценен.
          properties:
            result:
              type: string
              enum:
                - match
                - partial_match
                - no_match
                - unknown
                - not_verifiable
              description: >-
                `partial_match`: близкое совпадение. `not_verifiable`: банк
                ответил без указания владельца для сравнения. `unknown`:
                подтверждающие данные не удалось прочитать, либо не было данных
                личности для сравнения.
            reference_identity_source:
              type: string
              nullable: true
              description: >-
                Шаг, с данными которого сравнивалась личность владельца: `kyc`,
                `database_validation`, `expected_details`, `questionnaire`,
                `document_ai` или `kyb`.
            name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Оценка имени держателя от Didit.
            provider_name_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                Собственная оценка совпадения имени владельца от банка, если она
                была возвращена.
            address_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Оценка адреса владельца, если выполнялось сопоставление адреса.
            email_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Оценка email владельца, если выполнялось сопоставление email.
            phone_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: >-
                Оценка телефона владельца, если выполнялось сопоставление
                телефона.
            dob_score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
              description: Оценка даты рождения владельца, если банк предоставил её.
            close_match:
              type: boolean
              nullable: true
              description: Попало ли имя в диапазон близкого совпадения.
            holder_confirmation:
              type: string
              nullable: true
              enum:
                - pending
                - confirmed
                - rejected
              description: >-
                Ответ человека на запрос подтверждения близкого совпадения
                имени. `null`, если запрос не отправлялся.
            method:
              type: string
              nullable: true
              enum:
                - exact
                - token_set
                - nickname
                - transliteration
                - fuzzy
                - provider_only
                - microdeposits
              description: >-
                Какое сравнение имён сформировало оценку. Это не метод
                верификации: для него смотрите поле верхнего уровня `method`.
            matched_holder_index:
              type: integer
              nullable: true
            holders:
              type: array
              items:
                type: object
              description: Каждый владелец, указанный банком, с соответствующими оценками.
            owner_identity_available:
              type: boolean
              nullable: true
            evidence_freshness:
              type: string
              nullable: true
              enum:
                - live
                - cached
                - refreshed
            evaluated_at:
              type: string
              format: date-time
              nullable: true
              description: Когда было вычислено решение.
        financial_data:
          type: object
          description: >-
            Финансовые данные, прочитанные шагом. Их считывает только вход через
            банк.
          properties:
            balances:
              type: object
              nullable: true
              description: С областью видимости `balances`.
            transactions:
              type: object
              nullable: true
              description: С областью видимости `transactions`.
            income:
              type: object
              nullable: true
              description: С областью видимости `income`.
            categorization:
              type: object
              nullable: true
              description: >-
                Категоризация прочитанных транзакций от Didit. `null` при их
                отсутствии.
            not_collected:
              type: array
              items:
                type: string
                enum:
                  - balances
                  - income
                  - transactions
              description: >-
                Данные, запрошенные шагом, которые не собираются методом,
                верифицировавшим счёт. Балансы, транзакции и доходы поступают
                только через банковскую авторизацию, поэтому для аккаунта,
                верифицированного проверкой счёта, они перечисляются здесь.
                Никогда не является ошибкой. В противном случае пусто.
        billing:
          type: object
          nullable: true
          properties:
            route:
              type: string
              enum:
                - native
                - byok
            billed:
              type: boolean
            marketplace_fee:
              type: string
              nullable: true
              description: Списанная комиссия платформы маркетплейса, для `byok`.
            usage_type:
              type: string
              nullable: true
              description: >-
                Строка использования, по которой было списано начисление:
                `bank_verification` для входа в банк или проверки счёта,
                `bank_statement_upload` для загрузки выписки без предшествующей
                тарифицируемой попытки входа в банк и `bank_byok_fee` для
                комиссии маркетплейса при использовании собственного провайдера.
                `null`, если ничего не было списано.
        reference_identity:
          type: object
          nullable: true
          description: Личность, с которой сравнивался владелец, с указанием источника.
        signals:
          type: object
          nullable: true
          description: >-
            Сигналы счёта, считанные из истории транзакций, если шаг считывал
            её.
        connection_abandoned:
          type: boolean
          nullable: true
          description: >-
            Завершился ли шаг без совпадения после того, как пользователь
            покинул процесс на этапе своего банка.
        not_covered:
          type: boolean
          nullable: true
          description: >-
            Были ли банк или страна пользователя недоступны на этом шаге. Также
            имеет значение `true`, если пользователь продолжил без банка,
            поскольку ни один метод не позволил верифицировать его страну или
            банк.
        continued_without_bank:
          type: boolean
          description: >-
            Завершил ли пользователь шаг, нажав **Continue without your bank**.
            В таком случае `continuation` указывает причину. Параметр `method`
            равен `none`, если до продолжения не было оценено ни одной попытки.
            После оценённой попытки, например, при несовпадении владельца,
            `method` сохраняет метод этой попытки, а её вердикт и коды причин
            остаются в силе. Возвращается даже в том случае, если сценарий
            сужает возвращаемые данные.
        continuation:
          type: object
          nullable: true
          description: >-
            Как пользователь продолжил без банка. `null`, если он этого не
            сделал. Когда сценарий ограничивает возвращаемые данные, `reason`
            всё равно возвращается, а все остальные ключи содержат `null`.
          properties:
            reason:
              type: string
              enum:
                - no_route
                - institution_unsupported
                - attempts_exhausted
                - person_choice
              description: >-
                Причина, определённая Didit, когда пользователь продолжил:
                `no_route` (в его стране нет подходящего входа в банк или
                проверки счёта), `institution_unsupported` (выбранный банк не
                может использоваться на этом шаге), `attempts_exhausted` (все
                попытки уже исчерпаны и ни одна не выполняется) или
                `person_choice` (способ проверки был, но пользователь решил
                продолжить, в том числе когда банк был недоступен в данный
                момент). `no_route` и `institution_unsupported` следуют
                `bank_unsupported_action`, `attempts_exhausted` следует
                `bank_attempts_exhausted_action`, а `person_choice` следует
                `bank_skipped_action`, если только оценённая попытка уже не
                определила исход шага.
            country:
              type: string
              nullable: true
              description: >-
                Страна, в которой человек проходил верификацию, в формате ISO
                3166-1 alpha-3. `null`, если он продолжил до выбора страны.
            offered:
              type: array
              items:
                type: string
                enum:
                  - statement
                  - microdeposits
              nullable: true
              description: >-
                Другие способы верификации, предложенные пользователю для этой
                страны при продолжении, в порядке их предложения: `statement`
                (загрузка выписки), затем `microdeposits`. Пусто, если ничего
                предложено не было.
            institution_id:
              type: string
              nullable: true
              description: >-
                Для `institution_unsupported`, ID банка, которым человек не смог
                воспользоваться: банк, который он выбрал, или банк, на котором
                завершилась его последняя попытка. Didit берёт его из
                собственного списка банков и никогда с устройства человека,
                поэтому банк, отсутствующий в этом списке, равен `null`. `null`
                для любой другой причины.
            institution_name:
              type: string
              nullable: true
              description: >-
                Для `institution_unsupported`: название этого банка из того же
                списка, что и `institution_id`. `null`, если банка нет в этом
                списке, а также для любой другой причины.
            continued_at:
              type: string
              format: date-time
              nullable: true
              description: Время, когда пользователь продолжил действие.
        evidence_purged_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Когда банковские подтверждения были удалены в соответствии с
            `bank_evidence_retention_days`. В остальных случаях `null`.
        warnings:
          type: array
          items:
            type: string
          description: >-
            Информационные коды, например `holder_declared`. Предупреждение само
            по себе никогда не меняет статус.
        reason_codes:
          type: array
          items:
            type: string
          description: >-
            Почему вердикт оказался именно таким, например `OWNER_NAME_PARTIAL`.
            Может применяться несколько причин. `NOT_COVERED`: пользователь
            продолжил без банка, так как ни один метод не смог проверить его
            страну или банк. `SKIPPED`: пользователь решил продолжить без банка,
            хотя способ проверки был доступен. Ни одна из причин не добавляется,
            если оценённая попытка уже определила шаг.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    SignatureResult:
      type: object
      description: >-
        Результат одного подписанта для одного шага электронной подписи. См.
        [отчёт об электронной
        подписи](/ru/core-technology/electronic-signature/report-electronic-signature).
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Передайте это значение как `signature_id`, чтобы скачать
            подтверждающие материалы этого подписанта или проверить его подпись.
        node_id:
          type: string
          description: Шаг сценария, сформировавший его.
        status:
          type: string
          enum:
            - intro
            - review
            - code
            - signing
            - signed
            - declined
          description: >-
            Каков статус подписанта на этом шаге. Только значение `signed`
            означает, что документы подписаны.
        verdict:
          type: string
          enum:
            - Not Finished
            - Approved
            - In Review
            - Declined
          description: >-
            Результат шага. Предупреждение задаёт его через своё правило;
            пользовательские правила статуса применяются после.
        level:
          type: string
          enum:
            - simple
            - aes
            - qes
          description: >-
            `simple` (по умолчанию) или `aes`. `qes` (квалифицированная
            электронная подпись, QES) является надстройкой, которая пока
            недоступна.
        format:
          type: string
          enum:
            - pdf
            - pades
          description: '`pdf` для простой подписи (Simple), `pades` для усиленной (AES).'
        profile:
          type: string
          nullable: true
          description: '`PAdES-B-LT` после подписания усиленной подписью (AES), иначе null.'
        signer:
          type: object
          properties:
            name:
              type: string
              nullable: true
              description: >-
                Имя подписанта. Верифицировано (на основе одобренной верификации
                личности или сессии), за исключением уровня Simple без
                верифицированного имени сессии, где используется имя, введённое
                подписантом вручную, и оно не проверяется.
            capacity:
              type: string
              enum:
                - self
                - company
            company:
              type: string
              nullable: true
            role:
              type: string
              nullable: true
              description: Должность ключевого лица, как заявлено.
            roles:
              type: array
              items:
                type: string
              description: Структурированные роли ключевого лица, заявленные для компании.
            identity_session_id:
              type: string
              format: uuid
              description: KYC-сессия, верифицировавшая подписанта.
        identity_used:
          type: object
          description: >-
            Подтверждённая личность, на которую опирается подпись. Пусто для
            простой подписи без подтверждённой личности.
          properties:
            session_id:
              type: string
              format: uuid
            kyc_id:
              type: string
              format: uuid
              nullable: true
            verified:
              type: boolean
            expected_name:
              type: string
              nullable: true
              description: Имя, которому должен был соответствовать подписант.
        certificate:
          type: object
          nullable: true
          description: >-
            Сертификат, которым были подписаны документы. `null` до подписания и
            всегда `null` для простой подписи.
          properties:
            issuer:
              type: string
            issued_to:
              type: string
            serial:
              type: string
              description: Серийный номер, шестнадцатеричный.
            valid_from:
              type: string
              format: date-time
            valid_until:
              type: string
              format: date-time
        confirmation:
          type: object
          properties:
            channel:
              type: string
              nullable: true
              enum:
                - email
                - sms
              description: >-
                `null` для простой подписи (Simple signature), у которой нет
                кода.
            destination:
              type: string
              nullable: true
              description: Маскированный контакт, на который был отправлен код.
            confirmed_at:
              type: string
              format: date-time
              nullable: true
            attempts:
              type: integer
              description: Введённые коды, включая правильный.
        timestamp:
          type: object
          nullable: true
          description: >-
            Метка времени RFC 3161 в подписи, выпущенная Didit. Имеет значение
            `null` до подписания и всегда `null` для простой подписи (Simple).
          properties:
            time:
              type: string
              format: date-time
            qualified:
              type: boolean
              description: Всегда `false` для AES.
            valid:
              type: boolean
        documents:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  Документ в экземпляре этого подписанта. Используйте его для
                  скачивания подписанного файла.
              uuid:
                type: string
                format: uuid
                description: То же, что и `id`.
              title:
                type: string
              file_name:
                type: string
              pages:
                type: integer
                description: >-
                  Подписанные страницы документа. Для Word это страницы
                  сконвертированного PDF.
              size_bytes:
                type: integer
              sha256_original:
                type: string
                description: >-
                  SHA-256 документа в том виде, в котором он был показан
                  подписывающей стороне.
              sha256_signed:
                type: string
                nullable: true
                description: SHA-256 подписанного PDF после подписания.
              status:
                type: string
                enum:
                  - signed
                  - declined
                  - not_signed
                  - not_reached
                description: >-
                  `not_signed`: открыт, но не подписан. `not_reached`: ни разу
                  не открывался.
              opened_at:
                type: string
                format: date-time
                nullable: true
              read_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Время, когда подписант дошёл до конца документа без полей,
                  если этого требует шаг.
              read_to_end:
                type: boolean
              consented_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Время, когда подписант выразил согласие с документом без полей
                  или заполнил поля документа с полями.
              consent:
                type: boolean
              signed_file:
                type: string
                nullable: true
                description: >-
                  Путь к подписанному PDF после подписания. См. [Скачать
                  подписанный
                  документ](/ru/sessions-api/electronic-signature/download-signed-document).
              mode:
                type: string
                enum:
                  - fields
                  - read_and_agree
                description: >-
                  `fields` для документа с полями, `read_and_agree` для
                  документа без них.
              source_format:
                type: string
                enum:
                  - pdf
                  - docx
                description: >-
                  `pdf`, или `docx` для документа Word, который Didit
                  конвертировал в PDF.
              conversion:
                type: object
                nullable: true
                description: >-
                  `null` для PDF. Для документа Word: исходный файл и
                  конвертация.
                properties:
                  from:
                    type: string
                    enum:
                      - docx
                  file_name:
                    type: string
                    description: Исходное имя файла Word.
                  sha256:
                    type: string
                    description: SHA-256 вашего исходного файла Word.
                  size_bytes:
                    type: integer
                    description: Размер вашего исходного файла Word.
                  converter:
                    type: string
                    description: Версия конвертера, создавшего PDF.
              fields:
                type: array
                description: Поля документа с их значениями. Пусто для документа без полей.
                items:
                  $ref: '#/components/schemas/SignatureFieldResult'
        adopted_signature:
          type: object
          nullable: true
          description: >-
            Подпись и инициалы, выбранные подписантом для полей подписи и
            инициалов. `null`, пока подписант их не примет.
          properties:
            method:
              type: string
              enum:
                - typed
                - drawn
              description: >-
                `typed`: верифицированное имя в рукописном стиле. `drawn`:
                нарисовано пальцем или мышью.
            font:
              type: string
              nullable: true
              description: >-
                Стиль рукописного шрифта для введенной подписи. `null`, если
                нарисована.
            adopted_at:
              type: string
              format: date-time
        electronic_signature_consent_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Время, когда подписант на экране проверки согласился подписать
            документы в электронном виде. Устанавливается, если какой-либо
            документ содержит поля.
        evidence_file:
          type: string
          nullable: true
          description: >-
            Путь к PDF-файлу с подтверждающими материалами после подписания. См.
            [Скачивание подтверждающих материалов
            подписи](/ru/sessions-api/electronic-signature/download-evidence).
        warnings:
          type: array
          description: >-
            Предупреждения, сформированные для этого подписанта. См.
            [Предупреждения электронной
            подписи](/ru/core-technology/electronic-signature/warnings-electronic-signature).
          items:
            type: object
            properties:
              code:
                type: string
                enum:
                  - SIGNATURE_DECLINED
                  - SIGNATURE_OTP_FAILED
                  - SIGNATURE_NAME_MISMATCH
                  - SIGNATURE_IDENTITY_NOT_VERIFIED
                  - SIGNATURE_DOCUMENT_CHANGED
                  - SIGNATURE_FIELD_DATA_MISSING
              node_id:
                type: string
        validation:
          type: object
          nullable: true
          description: >-
            Последняя криптографическая проверка подписанных документов. `null`
            до момента подписания документов. Если Didit не может подтвердить
            результат подписания, возвращается `{"valid": null, "reason":
            "signature_provider_outcome_unknown", "checked_at": ...}`, а
            `status` остаётся `signing`: считайте документ неподписанным.
          properties:
            valid:
              type: boolean
              nullable: true
              description: >-
                `true`, когда каждый документ действителен. `null`, когда
                результат подписания не удалось подтвердить.
            reason:
              type: string
              description: >-
                Задаётся, когда `valid` равен `null`:
                `signature_provider_outcome_unknown`.
            checked_at:
              type: string
              format: date-time
            documents:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  checked_at:
                    type: string
                    format: date-time
                  valid:
                    type: boolean
                    description: >-
                      `true`, если и подпись, и метка времени действительны и
                      доверены.
                  integrity:
                    type: boolean
                    description: '`true`, если документ не изменялся с момента подписания.'
                  trusted:
                    type: boolean
                    description: >-
                      `true`, если сертификат подписи восходит к доверенному
                      корневому сертификату.
                  revoked:
                    type: boolean
                  trusted_list:
                    type: object
                    description: >-
                      Проверка по доверенному списку ЕС (EU Trusted List). Для
                      AES: `{"status": "not_applicable", "reason":
                      "aes_not_qualified"}`.
                    properties:
                      status:
                        type: string
                      reason:
                        type: string
                  certificate:
                    type: object
                    nullable: true
                    description: >-
                      Сертификат, которым были подписаны документы. `null` до
                      подписания и всегда `null` для простой подписи.
                    properties:
                      issuer:
                        type: string
                      issued_to:
                        type: string
                      serial:
                        type: string
                        description: Серийный номер, шестнадцатеричный.
                      valid_from:
                        type: string
                        format: date-time
                      valid_until:
                        type: string
                        format: date-time
                  timestamp:
                    type: object
                    nullable: true
                    description: >-
                      Метка времени RFC 3161 в подписи, выпущенная Didit. Имеет
                      значение `null` до подписания и всегда `null` для простой
                      подписи (Simple).
                    properties:
                      time:
                        type: string
                        format: date-time
                      qualified:
                        type: boolean
                        description: Всегда `false` для AES.
                      valid:
                        type: boolean
        declined_at:
          type: string
          format: date-time
          nullable: true
        declined_action:
          type: string
          enum:
            - DECLINE
            - REVIEW
            - NO_ACTION
        signed_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          description: Время, когда ссылка для подписания перестает работать.
        email_sent_at:
          type: string
          format: date-time
          nullable: true
        email_unavailable_reason:
          type: string
          nullable: true
        ip_address:
          type: string
          nullable: true
          description: IP-адрес подписанта на момент запроса кода.
        place:
          type: string
          nullable: true
          description: 'Не собирается: всегда `null`.'
        place_unavailable_reason:
          type: string
          nullable: true
          enum:
            - not_collected
    AMLScreening:
      type: object
      properties:
        node_id:
          type: string
          description: Уникальный идентификатор этого шага AML в графе сценария.
        status:
          type: string
          description: >-
            Статус этого AML-скрининга на уровне функции. Не зависит от общего
            `status` сессии: сессия может получить итоговое решение, пока
            отдельная функция остаётся `In Review`.
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
        total_hits:
          type: integer
          description: Общее количество найденных совпадений
        entity_type:
          type: string
          description: 'Тип проверяемого субъекта: физическое лицо или компания'
        hits:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: >-
                  Стабильный идентификатор Didit для совпадения: `hit_`, за
                  которым следуют 24 шестнадцатеричных символа. Та же найденная
                  сущность сохраняет тот же `id` при повторном скрининге
                  субъекта. Передавайте его как `hit_id` в endpoint проверки
                  совпадений AML.
              url:
                type: string
                format: uri
                description: Исходный URL для совпадения
              match:
                type: boolean
                description: Является ли это подтверждённым совпадением
              score:
                type: number
                format: float
                nullable: true
                minimum: 0
                maximum: 1
                description: >-
                  Устаревшая взвешенная оценка совпадения в диапазоне 0–1
                  (например, `0.73`). Используйте вместо этого `match_score`
                  (0–100).
                deprecated: true
              target:
                type: boolean
                nullable: true
                description: >-
                  Является ли найденная сущность непосредственным объектом
                  включения в список (в отличие от связанной стороны). `null`,
                  если источник этого не указывает.
              caption:
                type: string
                description: Подпись или заголовок совпадения
              datasets:
                type: array
                items:
                  type: string
                  enum:
                    - PEP
                    - PEP Level 1
                    - PEP Level 2
                    - PEP Level 3
                    - PEP Level 4
                    - Sanctions
                    - Adverse Media
                    - Warnings and Regulatory Enforcement
                    - Fitness and Probity
                    - SIP
                    - SIE
                    - Insolvency
                    - Other Lists
                description: >-
                  Список категорий наборов данных, в которых найдено совпадение.
                  Указывает, фигурировала ли сущность в списках PEP (с указанием
                  уровня), санкционных базах данных, негативных публикациях в
                  СМИ, предупреждениях/мерах регуляторного воздействия или
                  других наборах данных комплаенса. Значение `Other Lists`, если
                  источник сущности не указывает ни одну из этих категорий.
              features:
                type: object
                nullable: true
                description: Дополнительные характеристики совпадения
              rca_name:
                type: string
                description: Имя RCA, если применимо
              last_seen:
                type: string
                format: date-time
                description: Дата, когда совпадение наблюдалось в последний раз
              risk_view:
                type: object
                properties:
                  crimes:
                    type: object
                    properties:
                      score:
                        type: integer
                      weightage:
                        type: integer
                      risk_level:
                        type: string
                      risk_scores:
                        type: object
                  countries:
                    type: object
                    properties:
                      score:
                        type: integer
                      weightage:
                        type: integer
                      risk_level:
                        type: string
                      risk_scores:
                        type: object
                  categories:
                    type: object
                    properties:
                      score:
                        type: integer
                      weightage:
                        type: integer
                      risk_level:
                        type: string
                      risk_scores:
                        type: object
                  custom_list:
                    type: object
              first_seen:
                type: string
                format: date-time
                description: Дата, когда совпадение было обнаружено впервые
              properties:
                type: object
                properties:
                  name:
                    type: array
                    items:
                      type: string
                  alias:
                    type: array
                    items:
                      type: string
                  notes:
                    type: array
                    items:
                      type: string
                  title:
                    type: string
                    nullable: true
                  gender:
                    type: array
                    items:
                      type: string
                  height:
                    type: string
                    nullable: true
                  topics:
                    type: string
                    nullable: true
                  weight:
                    type: string
                    nullable: true
                  address:
                    type: string
                    nullable: true
                  country:
                    type: string
                    nullable: true
                  website:
                    type: string
                    nullable: true
                  eyeColor:
                    type: string
                    nullable: true
                  keywords:
                    type: string
                    nullable: true
                  lastName:
                    type: array
                    items:
                      type: string
                  position:
                    type: string
                    nullable: true
                  religion:
                    type: string
                    nullable: true
                  birthDate:
                    type: array
                    items:
                      type: string
                  education:
                    type: array
                    items:
                      type: string
                  ethnicity:
                    type: string
                    nullable: true
                  firstName:
                    type: array
                    items:
                      type: string
                  hairColor:
                    type: string
                    nullable: true
                  weakAlias:
                    type: string
                    nullable: true
                  birthPlace:
                    type: array
                    items:
                      type: string
                  modifiedAt:
                    type: string
                    nullable: true
                  wikidataId:
                    type: string
                    nullable: true
                  citizenship:
                    type: string
                    nullable: true
                  nationality:
                    type: string
                    nullable: true
              match_score:
                type: number
                description: >-
                  Взвешенная оценка уверенности в идентификации (0-100),
                  рассчитанная на основе схожести имени, даты рождения и
                  сопоставления страны. Используется для определения, является
                  ли совпадение ложным срабатыванием или возможным совпадением.
                format: float
                nullable: true
              risk_score:
                type: number
                description: >-
                  Оценка риска сущности (0-100). Используется для определения
                  окончательного AML-статуса (Одобрена/На проверке/Отклонена) на
                  основе наивысшего risk_score среди совпадений, не являющихся
                  ложными срабатываниями.
              review_status:
                type: string
                description: >-
                  Статус проверки для этого совпадения. Может принимать значения
                  'Unreviewed', 'Confirmed Match', 'False Positive' или
                  'Inconclusive'.
                enum:
                  - Unreviewed
                  - Confirmed Match
                  - False Positive
                  - Inconclusive
              score_breakdown:
                type: object
                description: Подробное описание того, как рассчитывался match_score.
                properties:
                  name_score:
                    type: integer
                    description: Необработанный процент сходства имён (0-100).
                  name_weight:
                    type: integer
                    description: Исходный вес для имени из конфигурации (0-100).
                  name_weight_normalized:
                    type: number
                    description: >-
                      Нормализованный вес для имени после пересчёта весов из-за
                      отсутствующих данных (0-100).
                  name_contribution:
                    type: number
                    description: Баллы за имя, вошедшие в общий балл.
                  dob_score:
                    type: integer
                    description: Оценка совпадения даты рождения (от -100 до 100).
                  dob_weight:
                    type: integer
                    description: Исходный вес для даты рождения из конфигурации (0-100).
                  dob_weight_normalized:
                    type: number
                    description: >-
                      Нормализованный вес для даты рождения после пересчёта
                      весов из-за отсутствующих данных (0-100).
                  dob_contribution:
                    type: number
                    description: Баллы за дату рождения, вошедшие в общий балл.
                  country_score:
                    type: integer
                    description: Оценка совпадения страны (от -100 до 100).
                  country_weight:
                    type: integer
                    description: Исходный вес для страны из конфигурации (0-100).
                  country_weight_normalized:
                    type: number
                    description: >-
                      Нормализованный вес для страны после пересчёта весов из-за
                      отсутствующих данных (0-100).
                  country_contribution:
                    type: number
                    description: Баллы за страну, вошедшие в общий балл.
                  document_number_match_type:
                    type: string
                    description: Результат оценки номера документа по правилу «Golden Key».
                    enum:
                      - MATCH
                      - NEUTRAL
                      - HARD_MISMATCH
                  document_number_effect:
                    type: string
                    description: Понятное описание влияния номера документа на оценку.
                  total_score:
                    type: integer
                    description: Финальная взвешенная оценка совпадения (0-100).
              pep_matches:
                type: array
                items:
                  type: object
                  properties:
                    aliases:
                      type: array
                      items:
                        type: string
                    education:
                      type: array
                      items:
                        type: string
                    list_name:
                      type: string
                    publisher:
                      type: string
                    source_url:
                      type: string
                      format: uri
                    description:
                      type: string
                    matched_name:
                      type: string
                    pep_position:
                      type: string
                    date_of_birth:
                      type: string
                    other_sources:
                      type: array
                      items:
                        type: string
                    place_of_birth:
                      type: string
              linked_entities:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: array
                      items:
                        type: string
                    active:
                      type: array
                      items:
                        type: string
                    status:
                      type: array
                      items:
                        type: string
                    details:
                      type: array
                      items:
                        type: string
                    relation:
                      type: array
                      items:
                        type: string
              warning_matches:
                type: array
                description: >-
                  Список совпадений по предупреждениям и мерам регуляторного
                  воздействия. Включает записи из категорий: Warning, SIP,
                  Warnings and Regulatory Enforcement, Fitness and Probity, SIE
                  и Insolvency.
                items:
                  type: object
                  properties:
                    list_name:
                      type: string
                      description: Название издателя списка предупреждений
                    matched_name:
                      type: string
                      description: Имя совпало в списке предупреждений
                    description:
                      type: string
                      description: Описание записи о предупреждении
                    publisher:
                      type: string
                      description: Издатель или источник предупреждения
                    source_url:
                      type: string
                      format: uri
                      description: URL источника предупреждения
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: Дополнительные исходные URL
                    countries:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Страны, связанные с предупреждением
                    created_at:
                      type: string
                      nullable: true
                      description: Дата создания записи о предупреждении
                    updated_at:
                      type: string
                      nullable: true
                      description: Дата последнего обновления записи о предупреждении
                    additional_data:
                      type: object
                      description: >-
                        Дополнительные данные из источника предупреждения. Может
                        содержать объект `data` с массивом `case_details`.
                      properties:
                        data:
                          type: object
                          properties:
                            case_details:
                              type: array
                              description: >-
                                Сведения о кейсах с предупреждениями, связанных
                                с этим совпадением
                              items:
                                type: object
                                properties:
                                  case_type:
                                    type: string
                                    description: Тип кейса с предупреждением
                                    enum:
                                      - Accusation
                                      - Arrest
                                      - Bribery
                                      - Criminal
                                      - Fraud
                                      - Illegal Fundraising
                                      - Non-conviction Terror
                                      - Proclaimed Offender
                                      - Regulatory Enforcement
                                      - Terrorism
                                      - Terrorism-related
                                      - Terrorism-related listing
              sanction_matches:
                type: array
                description: >-
                  Список совпадений по санкционным спискам, найденных для этой
                  сущности.
                items:
                  type: object
                  properties:
                    list_name:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Название санкционного списка (списков)
                    matched_name:
                      type: string
                      description: Имя совпало с именем в санкционном списке
                    description:
                      type: string
                      description: Описание санкционной записи
                    reason:
                      type: string
                      nullable: true
                      description: >-
                        Причина применения санкций к субъекту в виде
                        произвольного текста. Формируется объединением записей о
                        причинах из санкционного списка. Примеры: 'Executive
                        Order 13224 (Terrorism)', 'Support for actions
                        undermining Ukraine's sovereignty', 'Listed due to
                        national security concerns.'
                    source_url:
                      type: string
                      format: uri
                      description: URL источника санкции
                    other_sources:
                      type: array
                      items:
                        type: string
                      description: Дополнительные исходные URL
                    details:
                      type: array
                      items:
                        type: string
                      description: Дополнительные сведения о санкции
                    legal_basis:
                      type: array
                      items:
                        type: string
                      description: Правовое основание для санкции
                    listed_on:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Дата (даты) внесения субъекта в список
                    sanction_list:
                      type: array
                      items:
                        type: string
                      nullable: true
                      description: Идентификаторы санкционного списка
                    sanction_program:
                      type: array
                      items:
                        type: string
                      description: >-
                        Санкционные программы, по которым сущность внесена в
                        список
                    sanctioning_authority:
                      type: array
                      items:
                        type: string
                      description: Орган/органы, наложившие санкцию
                    updated_on:
                      type: array
                      items:
                        type: string
                      description: Дата (даты) последнего обновления санкционной записи
                    additional_data:
                      type: object
                      description: >-
                        Дополнительные данные из источника санкций, не вошедшие
                        в основные поля
              adverse_media_details:
                type: object
                properties:
                  sentiment:
                    type: string
                  entity_type:
                    type: string
                  sentiment_score:
                    type: integer
                  adverse_keywords:
                    type: object
                    additionalProperties:
                      type: integer
              adverse_media_matches:
                type: array
                items:
                  type: object
                  properties:
                    country:
                      type: string
                    summary:
                      type: string
                    headline:
                      type: string
                    sentiment:
                      type: string
                    thumbnail:
                      type: string
                      format: uri
                    source_url:
                      type: string
                      format: uri
                    author_name:
                      type: string
                      nullable: true
                    other_sources:
                      type: array
                      items:
                        type: string
                    adverse_keywords:
                      type: array
                      items:
                        type: string
                    sentiment_score:
                      type: integer
                    publication_date:
                      type: string
                      format: date-time
              additional_information:
                type: object
        score:
          type: number
          format: float
          nullable: true
          minimum: 0
          maximum: 100
          description: >-
            Общий балл AML-скрининга — наивысшая оценка риска среди всех
            совпадений (число с плавающей точкой, 0–100). `null` до момента
            вычисления.
        screened_data:
          type: object
          properties:
            full_name:
              type: string
            nationality:
              type: string
            date_of_birth:
              type: string
              format: date
            document_number:
              type: string
              nullable: true
        is_ongoing_monitoring_enabled:
          type: boolean
          description: >-
            Включён ли постоянный AML-мониторинг для этого скрининга. Если
            `true`, сущность периодически проверяется повторно, и любые новые
            совпадения обновляют отчёт.
        next_ongoing_monitoring_bill_date:
          type: string
          format: date
          nullable: true
          description: >-
            Дата (ГГГГ-ММ-ДД), когда за эту подписку на постоянный мониторинг в
            следующий раз будут списаны средства. Вычисляется как дата
            последнего списания за постоянный мониторинг плюс 365 дней, если
            `is_ongoing_monitoring_enabled = true`; в противном случае `null`.
            Это дата биллинга, а не дата скрининга: для неё используйте
            `last_ongoing_screening_at`.
        last_ongoing_screening_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Когда постоянный мониторинг в последний раз завершил повторный
            скрининг этой записи, независимо от того, изменился ли результат.
            `null`, если запись никогда не проходила повторный скрининг;
            значение никогда не заполняется задним числом от даты включения или
            даты биллинга.
        last_ongoing_screening_datasets_updated_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Самая недавняя дата обновления набора данных AML, указанная
            провайдером на момент этого скрининга. `null`, если провайдер не
            предоставил даты набора данных; значение никогда не оценивается
            приблизительно.
        warnings:
          type: array
          items:
            type: object
            properties:
              feature:
                type: string
                enum:
                  - ID_VERIFICATION
                  - NFC
                  - LIVENESS
                  - FACEMATCH
                  - PROOF_OF_ADDRESS
                  - PHONE
                  - EMAIL
                  - AML
                  - LOCATION
                  - DATABASE_VALIDATION
                  - QUESTIONNAIRE
                  - DOCUMENT_AI
                  - KYB_REGISTRY
                  - KYB_DOCUMENTS
                  - KYB_KEY_PEOPLE
                  - GEOLOCATION
                  - SIGNATURE
                description: >-
                  Функция, сгенерировавшая это предупреждение. Значение
                  определяет блок функции, к которому относится предупреждение.
                  В рамках AML-скрининга это обычно `AML`, однако перечисление
                  выше является определяющим для всех предупреждений функций в
                  payload решения.
              risk:
                type: string
              additional_data:
                type: object
                nullable: true
              log_type:
                type: string
              short_description:
                type: string
              long_description:
                type: string
              node_id:
                type: string
                description: >-
                  Идентификатор узла графа сценария, сгенерировавшего это
                  предупреждение
    GeolocationCheck:
      type: object
      description: >-
        Один результат проверки местоположения, принятая попытка одного узла
        сценария. Измерение, погрешность и подлинность находятся в отдельных
        ключах, поэтому точное неподтверждённое определение местоположения
        отличается от неточного подтверждённого.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Узел сценария, создавший этот результат, благодаря чему сценарий с
            двумя шагами проверки местоположения остаётся понятным.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Статус этого шага верификации местоположения на уровне функции,
            определённый на основе его предупреждений. Не зависит от `status`
            сессии.
        outcome:
          type: string
          nullable: true
          description: Что произошло во время этой попытки.
          enum:
            - verified
            - low_accuracy
            - accuracy_undetermined
            - stale
            - approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - mock_detected
            - outside_geofence
            - in_blocked_area
            - anonymizer_detected
            - skipped
            - replay_rejected
            - unsupported_client
            - null
        permission:
          type: string
          nullable: true
          description: >-
            Что предоставила операционная система или браузер. `not_requested`
            означает, что шаг использует только IP-геолокацию подключения,
            поэтому у пользователя никогда не запрашивается разрешение.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Широта точки фиксации по WGS84. `null`, если точка не определена.
          format: double
        longitude:
          type: number
          nullable: true
          description: Долгота точки фиксации по WGS84. `null`, если точка не определена.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Радиус неопределённости в метрах при уровне уверенности, указанном в
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Уровень уверенности, который платформа присваивает `accuracy_m`:
            `p95` (браузеры), `p68` (Android) или `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: Когда устройство определило координаты, по своим внутренним часам.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Количество секунд между фиксацией координат устройством и их
            получением Didit.
        source:
          type: string
          nullable: true
          description: >-
            Источник определения местоположения, если платформа его указывает.
            `ip` означает, что местоположение определено по IP-адресу
            подключения.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: Клиент, создавший исправление.
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Версия SDK, сформировавшего исправление.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true`, если устройство сообщает, что координаты получены от
            поставщика фиктивного местоположения или ПО для симуляции. `null`,
            если платформа об этом не сообщает (браузеры не могут это
            определить); `null` не эквивалентно `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Только для iOS: `true`, если данные позиционирования получены от
            внешнего аксессуара. В остальных случаях `null`.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Подтверждено ли исправление аттестацией устройства. Браузеры
            возвращают значение `unsupported`, поскольку в веб-среде нет
            механизма аттестации; это не является ошибкой.
        country_code:
          type: string
          nullable: true
          description: >-
            Код страны по стандарту ISO 3166-1 alpha-2, в которой находится
            точка фиксации.
        region_code:
          type: string
          nullable: true
          description: Подразделение по ISO 3166-2, в котором находится геопозиция.
        city:
          type: string
          nullable: true
          description: Ближайший населённый пункт, метка для проверяющих.
        geofence:
          type: object
          description: Результат применения правил шага для страны и региона.
          properties:
            enabled:
              type: boolean
              description: Применяет ли шаг какое-либо правило для страны или региона.
            result:
              type: string
              nullable: true
              description: >-
                Положение позиции относительно правил. Значение `undetermined`
                означает, что круг погрешности пересекает границу или позиция не
                сопоставлена ни с одной страной; это не свидетельствует о
                нахождении за пределами территории.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true`, когда `geofence.result` имеет значение `inside`, `false`,
            когда `outside`, иначе `null`.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            По какому местоположению оценивался результат для зоны: по
            координатам `device` или по локации соединения по `ip`.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            Идентификаторы настроенных разрешённых зон, внутри которых находится
            позиция.
        blocked_areas:
          type: array
          items:
            type: string
          description: >-
            Идентификаторы настроенных заблокированных зон, в которых находится
            позиция.
        position_source:
          type: string
          nullable: true
          description: >-
            Откуда шаг берет данные о местоположении в соответствии с
            настройками: данные устройства, сверенные с местоположением по IP,
            только данные устройства или только местоположение по IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Характеристики подключения и устройства: каждое со значением `true`,
            `false` или `null`, если источник не может это определить.
          properties:
            vpn:
              type: boolean
              nullable: true
            proxy:
              type: boolean
              nullable: true
            tor:
              type: boolean
              nullable: true
            spoofing:
              type: boolean
              nullable: true
            emulator:
              type: boolean
              nullable: true
        ip_distance_km:
          type: number
          nullable: true
          description: >-
            Расстояние до IP-локации сессии за вычетом обоих радиусов
            неопределённости; `0`, если они перекрываются.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Объединённый радиус, который был вычтен: радиус местоположения по IP
            плюс точность этой координаты.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Находится ли `ip_distance_km` в пределах расстояния, настроенного на
            шаге. `null`, если хотя бы одна из сторон неизвестна.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Расстояние до геокодированного адреса из документа, удостоверяющего
            личность, или подтверждения адреса. `null`, если адрес в профиле
            отсутствует.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Было ли расстояние от адреса признано допустимым благодаря допуску
            на перемещение для шага. Значение `null`, если допуск отключён.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            При финальной попытке: эта проверка плюс предыдущие несовпадения
            того же человека подряд.
        attempts:
          type: integer
          description: Номер этой попытки в пределах узла, начиная с 1.
        consent:
          type: object
          nullable: true
          description: >-
            Согласие, данное человеком перед системным промптом, записанное с
            версией формулировки и языком, которые он видел.
          properties:
            accepted_at:
              type: string
              format: date-time
            version:
              type: string
              nullable: true
            locale:
              type: string
              nullable: true
        warnings:
          type: array
          items:
            type: object
            properties:
              feature:
                type: string
                enum:
                  - ID_VERIFICATION
                  - NFC
                  - LIVENESS
                  - FACEMATCH
                  - PROOF_OF_ADDRESS
                  - PHONE
                  - EMAIL
                  - AML
                  - LOCATION
                  - DATABASE_VALIDATION
                  - QUESTIONNAIRE
                  - DOCUMENT_AI
                  - KYB_REGISTRY
                  - KYB_DOCUMENTS
                  - KYB_KEY_PEOPLE
                  - GEOLOCATION
                  - SIGNATURE
                description: >-
                  Функция, сгенерировавшая это предупреждение. Значение
                  определяет блок функции, к которому относится предупреждение.
                  Массив предупреждений каждого модуля обычно использует
                  значение, соответствующее его модулю (например, `PHONE` внутри
                  `phone_verifications[].warnings`), однако перечисление выше
                  является определяющим для всех предупреждений функций в
                  payload решения.
              risk:
                type: string
              additional_data:
                type: object
                nullable: true
              log_type:
                type: string
              short_description:
                type: string
              long_description:
                type: string
              node_id:
                type: string
                description: >-
                  Идентификатор узла графа сценария, сгенерировавшего это
                  предупреждение
          description: >-
            Предупреждения, сформированные на этом шаге верификации
            местоположения, с параметром `feature`, равным `GEOLOCATION`. Коды
            предупреждений начинаются с `LOCATION_`.
    GeolocationAttempt:
      type: object
      description: >-
        Одна попытка шага проверки местоположения: те же ключи, что и в
        `geolocation_checks[]`, за исключением `warnings`, а также время, когда
        Didit получил эту попытку.
      properties:
        node_id:
          type: string
          nullable: true
          description: >-
            Узел сценария, создавший этот результат, благодаря чему сценарий с
            двумя шагами проверки местоположения остаётся понятным.
        status:
          type: string
          enum:
            - Not Finished
            - Approved
            - Declined
            - In Review
            - Resub Requested
          description: >-
            Статус этого шага верификации местоположения на уровне функции,
            определённый на основе его предупреждений. Не зависит от `status`
            сессии.
        outcome:
          type: string
          nullable: true
          description: Что произошло во время этой попытки.
          enum:
            - verified
            - low_accuracy
            - accuracy_undetermined
            - stale
            - approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - mock_detected
            - outside_geofence
            - in_blocked_area
            - anonymizer_detected
            - skipped
            - replay_rejected
            - unsupported_client
            - null
        permission:
          type: string
          nullable: true
          description: >-
            Что предоставила операционная система или браузер. `not_requested`
            означает, что шаг использует только IP-геолокацию подключения,
            поэтому у пользователя никогда не запрашивается разрешение.
          enum:
            - granted_precise
            - granted_approximate
            - denied
            - restricted
            - unavailable
            - timeout
            - dismissed
            - not_requested
            - null
        latitude:
          type: number
          nullable: true
          description: Широта точки фиксации по WGS84. `null`, если точка не определена.
          format: double
        longitude:
          type: number
          nullable: true
          description: Долгота точки фиксации по WGS84. `null`, если точка не определена.
          format: double
        accuracy_m:
          type: number
          nullable: true
          description: >-
            Радиус неопределённости в метрах при уровне уверенности, указанном в
            `accuracy_confidence`.
          format: double
        accuracy_confidence:
          type: string
          nullable: true
          description: >-
            Уровень уверенности, который платформа присваивает `accuracy_m`:
            `p95` (браузеры), `p68` (Android) или `unspecified` (iOS).
          enum:
            - p95
            - p68
            - unspecified
            - null
        measured_at:
          type: string
          nullable: true
          description: Когда устройство определило координаты, по своим внутренним часам.
          format: date-time
        age_seconds:
          type: integer
          nullable: true
          description: >-
            Количество секунд между фиксацией координат устройством и их
            получением Didit.
        source:
          type: string
          nullable: true
          description: >-
            Источник определения местоположения, если платформа его указывает.
            `ip` означает, что местоположение определено по IP-адресу
            подключения.
          enum:
            - gps
            - fused
            - network
            - wifi
            - cell
            - browser
            - unknown
            - ip
            - null
        platform:
          type: string
          nullable: true
          description: Клиент, создавший исправление.
          enum:
            - web
            - ios
            - android
            - react_native
            - flutter
            - null
        sdk_version:
          type: string
          nullable: true
          description: Версия SDK, сформировавшего исправление.
        is_mock:
          type: boolean
          nullable: true
          description: >-
            `true`, если устройство сообщает, что координаты получены от
            поставщика фиктивного местоположения или ПО для симуляции. `null`,
            если платформа об этом не сообщает (браузеры не могут это
            определить); `null` не эквивалентно `false`.
        produced_by_accessory:
          type: boolean
          nullable: true
          description: >-
            Только для iOS: `true`, если данные позиционирования получены от
            внешнего аксессуара. В остальных случаях `null`.
        integrity:
          type: string
          enum:
            - attested
            - not_attested
            - failed
            - unsupported
            - not_determined
          description: >-
            Подтверждено ли исправление аттестацией устройства. Браузеры
            возвращают значение `unsupported`, поскольку в веб-среде нет
            механизма аттестации; это не является ошибкой.
        country_code:
          type: string
          nullable: true
          description: >-
            Код страны по стандарту ISO 3166-1 alpha-2, в которой находится
            точка фиксации.
        region_code:
          type: string
          nullable: true
          description: Подразделение по ISO 3166-2, в котором находится геопозиция.
        city:
          type: string
          nullable: true
          description: Ближайший населённый пункт, метка для проверяющих.
        geofence:
          type: object
          description: Результат применения правил шага для страны и региона.
          properties:
            enabled:
              type: boolean
              description: Применяет ли шаг какое-либо правило для страны или региона.
            result:
              type: string
              nullable: true
              description: >-
                Положение позиции относительно правил. Значение `undetermined`
                означает, что круг погрешности пересекает границу или позиция не
                сопоставлена ни с одной страной; это не свидетельствует о
                нахождении за пределами территории.
              enum:
                - inside
                - outside
                - undetermined
                - null
        inside_geofence:
          type: boolean
          nullable: true
          description: >-
            `true`, когда `geofence.result` имеет значение `inside`, `false`,
            когда `outside`, иначе `null`.
        geofence_basis:
          type: string
          nullable: true
          description: >-
            По какому местоположению оценивался результат для зоны: по
            координатам `device` или по локации соединения по `ip`.
          enum:
            - device
            - ip
            - null
        inside_areas:
          type: array
          items:
            type: string
          description: >-
            Идентификаторы настроенных разрешённых зон, внутри которых находится
            позиция.
        blocked_areas:
          type: array
          items:
            type: string
          description: >-
            Идентификаторы настроенных заблокированных зон, в которых находится
            позиция.
        position_source:
          type: string
          nullable: true
          description: >-
            Откуда шаг берет данные о местоположении в соответствии с
            настройками: данные устройства, сверенные с местоположением по IP,
            только данные устройства или только местоположение по IP.
          enum:
            - device_and_ip
            - device_only
            - ip_only
            - null
        anonymizers:
          type: object
          nullable: true
          description: >-
            Характеристики подключения и устройства: каждое со значением `true`,
            `false` или `null`, если источник не может это определить.
          properties:
            vpn:
              type: boolean
              nullable: true
            proxy:
              type: boolean
              nullable: true
            tor:
              type: boolean
              nullable: true
            spoofing:
              type: boolean
              nullable: true
            emulator:
              type: boolean
              nullable: true
        ip_distance_km:
          type: number
          nullable: true
          description: >-
            Расстояние до IP-локации сессии за вычетом обоих радиусов
            неопределённости; `0`, если они перекрываются.
          format: double
        ip_distance_uncertainty_km:
          type: number
          nullable: true
          description: >-
            Объединённый радиус, который был вычтен: радиус местоположения по IP
            плюс точность этой координаты.
          format: double
        ip_consistent:
          type: boolean
          nullable: true
          description: >-
            Находится ли `ip_distance_km` в пределах расстояния, настроенного на
            шаге. `null`, если хотя бы одна из сторон неизвестна.
        document_distance_km:
          type: number
          nullable: true
          description: >-
            Расстояние до геокодированного адреса из документа, удостоверяющего
            личность, или подтверждения адреса. `null`, если адрес в профиле
            отсутствует.
          format: double
        travel_excused:
          type: boolean
          nullable: true
          description: >-
            Было ли расстояние от адреса признано допустимым благодаря допуску
            на перемещение для шага. Значение `null`, если допуск отключён.
        consecutive_mismatches:
          type: integer
          nullable: true
          description: >-
            При финальной попытке: эта проверка плюс предыдущие несовпадения
            того же человека подряд.
        attempts:
          type: integer
          description: Номер этой попытки в пределах узла, начиная с 1.
        consent:
          type: object
          nullable: true
          description: >-
            Согласие, данное человеком перед системным промптом, записанное с
            версией формулировки и языком, которые он видел.
          properties:
            accepted_at:
              type: string
              format: date-time
            version:
              type: string
              nullable: true
            locale:
              type: string
              nullable: true
        received_at:
          type: string
          nullable: true
          description: Когда Didit получил попытку.
          format: date-time
        created_at:
          type: string
          format: date-time
    KYBRegistryShareholding:
      type: object
      nullable: true
      description: >-
        Информация о владении владельца в едином формате для любой страны и
        источника реестра. Null, если в реестре нет сведений о владении.
        Диапазон (например, 25-50% для британского PSC) не считается долей:
        `percentage` равен null, а диапазон сохраняется в `ownership_min_shares`
        / `ownership_max_shares`.
      properties:
        share_class:
          type: string
          nullable: true
          description: Класс или тип акций в том виде, как он указан в реестре.
        number_of_shares:
          type: number
          nullable: true
          description: Количество акций во владении.
        currency:
          type: string
          nullable: true
          description: Валюта по стандарту ISO 4217 для приведённых ниже значений.
        nominal_value:
          type: number
          nullable: true
          description: Номинальная стоимость одной акции.
        total_value:
          type: number
          nullable: true
          description: Общая стоимость актива.
        percentage:
          type: number
          nullable: true
          description: Точная доля в процентах с точностью до четырёх знаков после запятой.
      required:
        - share_class
        - number_of_shares
        - currency
        - nominal_value
        - total_value
        - percentage
    KYBRegistryAddress:
      type: object
      description: >-
        Адрес, указанный реестром, в едином формате для всех стран и источников
        реестров. Каждый ключ присутствует всегда; часть, которую реестр не
        публикует, имеет значение null.
      properties:
        type:
          type: string
          nullable: true
          description: >-
            Тип адреса в нижнем регистре: `registered` для юридического адреса;
            другие типы указываются так, как их называет реестр (например,
            `postal`, `office`). `null`, когда реестр не указывает назначение
            адреса.
        address:
          type: string
          description: Полный адрес одной строкой. Всегда присутствует в каждом адресе.
        street:
          type: string
          nullable: true
          description: Улица и номер дома.
        city:
          type: string
          nullable: true
          description: Город или населённый пункт.
        postal_code:
          type: string
          nullable: true
          description: Почтовый индекс.
        region:
          type: string
          nullable: true
          description: Регион, штат или провинция.
        country_code:
          type: string
          nullable: true
          description: Двухбуквенный код страны ISO 3166-1 alpha-2.
        description:
          type: string
          nullable: true
          description: Собственное обозначение адреса в реестре, если оно предоставлено.
      required:
        - type
        - address
        - street
        - city
        - postal_code
        - region
        - country_code
        - description
    KYBRegistryIndustry:
      type: object
      description: >-
        Вид деятельности, к которому реестр относит компанию, в едином формате
        для всех стран и источников реестров.
      properties:
        code:
          type: string
          nullable: true
          description: >-
            Код деятельности в том виде, в каком он указан в реестре (например,
            `73110`).
        description:
          type: string
          nullable: true
          description: Название вида деятельности, если оно публикуется реестром.
        scheme:
          type: string
          nullable: true
          description: >-
            Система классификации, одно название на систему независимо от
            сообщившего её источника: `UK SIC 2007`, `US SIC`, `NACE Rev. 2`,
            `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`, `SBI`, `NOGA 2008`, `CAE Rev.
            4`, `Canada SIC 1977`; другие национальные системы сохраняют
            собственное название реестра. Null, если реестр не указывает
            систему.
        is_primary:
          type: boolean
          description: >-
            True для основного вида деятельности компании. Ровно одна запись
            является основной, если список не пуст.
      required:
        - code
        - description
        - scheme
        - is_primary
    KYBRegistryData:
      type: object
      nullable: true
      description: >-
        Нормализованные данные реестра Didit по компании: результат проверки
        структуры владения (`ownership_error`, `section_errors`,
        `ubo_resolution`, `lite_enrichment`), исправления, внесённые с помощью
        update-data, и факты реестра, для которых нет отдельного поля. Никогда
        не содержит исходную запись источника реестра. Каждый ключ опционален и
        присутствует только тогда, когда у компании есть для него значение;
        могут добавляться новые ключи. Используйте канонические поля
        (`addresses`, `industries`, `ownership`,
        `beneficial_owners[].shareholding`) для всего, что они охватывают.
      properties:
        company_name:
          type: string
          description: Название компании, исправленное в панели управления.
        registration_number:
          type: string
          description: >-
            Регистрационный номер, указанный в реестре или в исправлении через
            консоль.
        country_code:
          type: string
          description: >-
            Страна регистрации, указанная в реестре или при корректировке в
            консоли.
        region:
          type: string
          description: Регион или штат регистрации.
        incorporation_date:
          type: string
          description: Дата регистрации (ISO 8601).
        registration_date:
          type: string
          description: >-
            Дата регистрации (ISO 8601), если реестр указывает её отдельно от
            даты инкорпорации.
        dissolution_date:
          type: string
          description: Дата ликвидации (ISO 8601), если она указана в реестре.
        tax_number:
          type: string
          description: Налоговый номер.
        vat_number:
          type: string
          description: Номер плательщика НДС.
        legal_address:
          type: string
          description: Юридический адрес с исправлениями из консоли.
        registered_address:
          type: string
          description: Зарегистрированный адрес согласно данным реестра.
        company_type:
          type: string
          description: Организационно-правовая форма.
        registry_status:
          type: string
          description: Статус компании в реестре.
        verification_status:
          type: string
          description: Статус верификации.
        alternative_names:
          type: string
          description: >-
            Другие наименования, под которыми компания ведет или вела
            коммерческую деятельность.
        nature_of_business:
          type: string
          description: Описание деятельности.
        registered_capital:
          type: string
          description: Зарегистрированный капитал в том виде, как он напечатан.
        registered_capital_amount:
          type: string
          description: Размер зарегистрированного капитала в виде десятичной строки.
        registered_capital_currency:
          type: string
          description: Валюта зарегистрированного капитала (ISO 4217).
        website:
          type: string
          description: Веб-сайт.
        email:
          type: string
          description: Контактный email.
        phone:
          type: string
          description: Контактный телефон.
        legal_entity_identifier:
          type: string
          description: Идентификатор юридического лица (LEI).
        location_of_registration:
          type: string
          description: Место регистрации.
        control_scheme:
          type: string
          description: Схема корпоративного управления, если она раскрывается реестром.
        ownership_error:
          type: string
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
          description: >-
            Причина, по которой запрошенный уровень структуры владения не был
            предоставлен, в тех же кодах, что и `ownership.unavailable_reason`.
            `no_owners_on_record` (реестр ответил и не указал ни одного
            владельца) и `ownership_section_unavailable` (реестр не вернул
            раздел структуры владения) представляют собой разные результаты
            проверки.
        section_errors:
          type: object
          description: >-
            Разделы, которые реестр не вернул, с ключами, соответствующими
            разделам (`officers`, `shareholders`, `group_structure`). Указанный
            здесь раздел не был возвращён: пустой список рядом с ним ничего не
            сообщает о компании.
          additionalProperties:
            $ref: '#/components/schemas/KYBRegistrySectionError'
        ubo_resolution:
          $ref: '#/components/schemas/KYBRegistryUboResolution'
        lite_enrichment:
          $ref: '#/components/schemas/KYBRegistryLiteEnrichment'
        registry_metadata:
          type: object
          additionalProperties:
            oneOf:
              - type: string
              - type: number
              - type: boolean
          description: >-
            Собственные поля реестра для компании с ключами, как они названы в
            реестре, в виде простых значений (устаревшие записи). Включены
            только поля, проверенные как факты из реестра.
        registry_sources:
          type: array
          description: >-
            Официальные реестры, из которых была получена запись (устаревшие
            записи). Другие источники не указываются.
          items:
            $ref: '#/components/schemas/KYBRegistrySource'
        previous_names:
          type: array
          items:
            type: string
          description: >-
            Названия, под которыми компания была зарегистрирована ранее
            (исторические записи).
        parent_companies:
          type: array
          items:
            type: string
          description: Материнские компании, указанные в реестре (устаревшие записи).
        documents_available:
          type: integer
          description: >-
            Количество документов компании, доступных в реестре (устаревшие
            записи).
    KYBRegistryOwnership:
      type: object
      description: >-
        Результат уровня структуры владения (акционеры / UBO) в едином формате
        для любой страны и любого реестра.
      properties:
        status:
          type: string
          nullable: true
          enum:
            - not_requested
            - pending
            - delivered
            - not_held
            - unavailable
            - null
          description: >-
            `delivered`, когда реестр опубликовал структуру владения;
            `not_held`, когда реестр структуры владения ответил и в нём вовсе
            нет этой компании (см. `unavailable_reason`); `unavailable`, когда
            он не предоставил данные о структуре владения по любой другой
            причине (см. `unavailable_reason`); `pending`, пока реестр всё ещё
            запрашивает их; `not_requested` для уровня Basic.
        tier_requested:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: Уровень, заказанный сценарием.
        tier_delivered:
          type: string
          nullable: true
          enum:
            - basic
            - shareholders
            - ubo
            - null
          description: >-
            Уровень, предоставленный реестром (и включенный в счёт). Запрос UBO,
            на который получены данные только о прямых акционерах, имеет
            значение `shareholders`.
        unavailable_reason:
          type: string
          nullable: true
          enum:
            - no_owners_on_record
            - no_natural_person_owner
            - ownership_section_unavailable
            - company_not_found
            - ambiguous_company_match
            - missing_registration_number
            - entity_type_not_covered
            - provider_unavailable
            - other
            - null
          description: >-
            Причина, по которой запрошенный уровень структуры владения не был
            предоставлен. Имеет значение null, если `status` не равен
            `unavailable` или `pending`.
        direct_ownership_complete:
          type: boolean
          nullable: true
          description: >-
            True, когда заявленные доли прямых акционеров в сумме составляют
            100% (с точностью до одного процентного пункта из-за округления);
            false, если нет; null, если структура владения не была передана или
            доля не указана.
        unresolved:
          type: array
          description: >-
            Части структуры владения, которые реестр не смог определить,
            например отсутствие сведений о структуре группы выше прямых
            владельцев.
          items:
            type: object
            properties:
              reason:
                type: string
              section:
                type: string
                nullable: true
      required:
        - status
        - tier_requested
        - tier_delivered
        - unavailable_reason
        - direct_ownership_complete
        - unresolved
    KYBOwnershipStructure:
      type: object
      nullable: true
      description: >-
        Структура владения (cap table), подтверждённая реестром на момент
        предоставления уровня структуры владения: прямые `shareholders` и
        `beneficial_owners`. Null, если реестр не подтвердил структуру владения.
        Она никогда не содержит собственные строки источника реестра; актуальную
        запись см. в `company.beneficial_owners` и `company.ownership`.
      properties:
        shareholders:
          type: array
          items:
            $ref: '#/components/schemas/KYBOwnershipStructureOwner'
        beneficial_owners:
          type: array
          items:
            $ref: '#/components/schemas/KYBOwnershipStructureOwner'
      required:
        - shareholders
        - beneficial_owners
    InvestigatorBlock:
      type: object
      nullable: true
      description: >-
        Последняя проверка элемента в Investigator или null, если она никогда не
        проводилась. Передаётся в решении сессии V3 и бизнес-сессии (и,
        следовательно, в webhook `status.updated`).
      properties:
        run_id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - running
            - completed
            - failed
        stage:
          type: string
          enum:
            - shadow
            - live
        queue:
          type: string
          enum:
            - kyc
            - kyb
            - aml
            - transactions
            - cases
        is_open:
          type: boolean
        recommendation:
          type: string
          enum:
            - approve
            - decline
            - escalate
            - request
          nullable: true
        recommendation_detail:
          type: string
          nullable: true
        confidence:
          type: string
          enum:
            - high
            - moderate
            - low
          nullable: true
        summary:
          type: string
          nullable: true
        ready_to_accept:
          type: boolean
        prepared_at:
          type: string
          format: date-time
          nullable: true
        automated:
          type: boolean
          description: >-
            Investigator принял решение самостоятельно, даже если впоследствии
            решение было переопределено.
        decided_by:
          type: string
          enum:
            - investigator
            - member
          nullable: true
        decision:
          nullable: true
          allOf:
            - $ref: '#/components/schemas/InvestigatorDecision'
          type: object
    BiometricRetention:
      type: object
      description: Время удаления активных биометрических данных этой сессии.
      required:
        - jurisdictions
        - deletes_at
      properties:
        jurisdictions:
          type: array
          items:
            type: string
          description: >-
            Коды штатов США, чьи биометрические правила устанавливают лимит на
            удаление для этого человека (`US`, если штат неизвестен). Пусто,
            если ни одно из правил не применяется.
        deletes_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Дата удаления активных биометрических данных (изображений лиц и
            шаблонов) этой сессии в соответствии с настройками хранения вашего
            приложения и юридическим лимитом юрисдикции этого лица, если он
            применим. `null`, если дата ещё не применима.
    SocialFootprintPlatform:
      type: object
      properties:
        platform:
          type: string
          description: Идентификатор платформы.
          example: whatsapp
        category:
          type: string
          description: >-
            Категория платформы, например: MESSAGING, SOCIAL_MEDIA, ECOMMERCE,
            PROFESSIONAL, EMAIL_PROVIDER.
          example: MESSAGING
        scope:
          type: string
          enum:
            - global
            - local
          description: '`global` для глобальных платформ, `local` для региональных.'
          example: global
    SocialFootprintCategorySummary:
      type: object
      properties:
        registered:
          type: integer
          nullable: true
          description: Платформы этой категории, где подтверждена регистрация.
          example: 2
        ratio:
          type: number
          format: float
          nullable: true
          description: >-
            Доля проверенных платформ категории с наличием регистрации, от 0.0
            до 1.0.
          example: 0.6667
    SocialFootprintProfile:
      type: object
      properties:
        name:
          type: string
          nullable: true
          description: Имя профиля, если платформа его предоставляет.
        photo:
          type: string
          nullable: true
          description: URL фотографии профиля, если платформа её предоставляет.
        about:
          type: string
          nullable: true
          description: Текст «о себе»/биография профиля, если платформа его предоставляет.
        privacy_status:
          type: string
          nullable: true
          enum:
            - PUBLIC
            - PRIVATE
            - null
          description: Видимость профиля, если платформа её предоставляет.
        business_account:
          type: boolean
          nullable: true
          description: >-
            Является ли профиль бизнес-аккаунтом, если платформа раскрывает эту
            информацию.
    SignatureFieldResult:
      type: object
      description: >-
        Поле подписанного документа с его значением в экземпляре этого
        подписанта. См.
        [Поля](/ru/core-technology/electronic-signature/report-electronic-signature#поля).
      properties:
        key:
          type: string
          description: Ключ поля, используемый в `sign.field_values`.
        type:
          type: string
          enum:
            - signature
            - initials
            - full_name
            - date_signed
            - text
            - checkbox
            - email
            - data
        role:
          type: string
          enum:
            - verified_person
            - legal_representative
            - key_people
        label:
          type: string
        page:
          type: integer
          description: >-
            Номер страницы, начиная с 1. Для документа Word это страница
            сконвертированного PDF.
        x:
          type: number
          description: Левый край, в виде доли ширины страницы.
        'y':
          type: number
          description: Верхний край в виде доли от высоты страницы.
        width:
          type: number
          description: Ширина в виде доли от ширины страницы.
        height:
          type: number
          description: Высота в виде доли от высоты страницы.
        required:
          type: boolean
        value:
          nullable: true
          description: >-
            Строка для `text`, `email`, `full_name`, `date_signed` и `data`,
            булево значение для `checkbox`, и `true` для проставленной подписи
            или инициалов. `null`, если поле пустое.
        display_value:
          type: string
          nullable: true
          description: >-
            Значение в том виде, в каком оно проставлено на странице: даты в
            формате поля `date_format`, `Yes` или `No` для чекбокса, `Signed`
            для подписи или инициалов.
        value_source:
          type: string
          nullable: true
          enum:
            - signer
            - identity
            - contact
            - company
            - session
            - metadata
            - api
            - signing_time
            - null
          description: >-
            Источник значения: `signer` (введено, отмечено или применено
            подписантом), `identity` (верифицированное удостоверение личности),
            `contact` (верифицированный email или телефон), `company`
            (верифицированная компания), `session` (`vendor_data`), `metadata`,
            `api` (`sign.field_values`) или `signing_time` (дата подписания).
        filled_at:
          type: string
          format: date-time
          nullable: true
        image_url:
          type: string
          nullable: true
          description: >-
            Только для подписи и инициалов: путь к применённому изображению. См.
            [Скачивание изображения
            подписи](/ru/sessions-api/electronic-signature/download-field-image).
        value_unavailable_reason:
          type: string
          nullable: true
          enum:
            - source_empty
            - null
          description: >-
            `source_empty`, когда предзаполненное поле не имело значения в
            сессии, а `signature_field_data_missing_action` разрешил подписанту
            всё равно поставить подпись.
    KYBRegistrySectionError:
      type: object
      description: Раздел, который реестр не вернул.
      properties:
        status_code:
          type: integer
          nullable: true
          description: Статус, возвращённый реестром для данного раздела.
      required:
        - status_code
    KYBRegistryUboResolution:
      type: object
      description: Как уровень UBO обходил цепочку владения выше компании.
      properties:
        parent_chain:
          type: array
          description: >-
            Корпоративные материнские структуры от конечной материнской компании
            до самой компании.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        subsidiaries:
          type: array
          description: >-
            Компании, находящиеся непосредственно под компанией в её
            корпоративной группе.
          items:
            $ref: '#/components/schemas/KYBRegistryGroupCompany'
        unresolved:
          type: array
          description: >-
            Части цепочки, которые реестр не смог определить (те же записи, что
            и в `ownership.unresolved`).
          items:
            type: object
            properties:
              reason:
                type: string
                description: >-
                  Причина, например `no_group_structure_on_record`,
                  `selected_company_not_in_group_structure` или `section_error`.
              section:
                type: string
                nullable: true
                description: Соответствующий раздел, например `group_structure`.
            required:
              - reason
              - section
      required:
        - parent_chain
        - subsidiaries
        - unresolved
    KYBRegistryLiteEnrichment:
      type: object
      description: >-
        Пустые поля профиля Lite, заполненные другим источником реестра страны.
        Источник не указан.
      properties:
        fields:
          type: array
          items:
            type: string
          description: Поля компании, которые были заполнены.
        people_added:
          type: integer
          description: Количество добавленных должностных лиц или владельцев.
      required:
        - fields
        - people_added
    KYBRegistrySource:
      type: object
      description: >-
        Официальный реестр, из которого была прочитана запись. Указываются
        только официальные государственные реестры, регуляторы и официальная
        система идентификаторов; любые другие источники опускаются.
      properties:
        name:
          type: string
          description: Название реестра, например `UK Companies House`.
        source_type:
          type: string
          enum:
            - official
          description: Всегда `official`.
      required:
        - name
        - source_type
    KYBOwnershipStructureOwner:
      type: object
      description: >-
        Один владелец из снимка структуры владения: те же идентификационные
        данные из реестра и доля, что и в `company.beneficial_owners[]`, а также
        его канонический `shareholding`.
      properties:
        name:
          type: string
          nullable: true
          description: Имя владельца, как указано в реестре.
        first_name:
          type: string
          nullable: true
          description: Имя физического лица, если оно указано в реестре.
        last_name:
          type: string
          nullable: true
          description: Фамилия физического лица, если она указана в реестре.
        date_of_birth:
          type: string
          nullable: true
          description: Дата рождения (ISO 8601), если реестр её публикует.
        country_of_birth:
          type: string
          nullable: true
          description: Страна рождения, если она опубликована в реестре.
        company_name:
          type: string
          nullable: true
          description: Название компании (для корпоративного владельца).
        registration_number:
          type: string
          nullable: true
          description: Регистрационный номер корпоративного владельца.
        entity_type:
          type: string
          nullable: true
          enum:
            - person
            - company
            - null
          description: Является ли владелец физическим лицом или компанией.
        nationality:
          type: string
          nullable: true
          description: Гражданство, если оно указано в реестре.
        designation:
          type: string
          nullable: true
          description: Должность или роль владельца в том виде, как она указана в реестре.
        roles:
          type: array
          items:
            type: string
          description: >-
            `shareholder` для прямого владельца, `ubo` для бенефициарного
            владельца.
        ownership_min_shares:
          type: string
          nullable: true
          description: >-
            Нижняя граница доли в процентах (равна верхней границе в случае
            точной доли).
        ownership_max_shares:
          type: string
          nullable: true
          description: Верхняя граница доли владения в процентах.
        voting_min_shares:
          type: string
          nullable: true
          description: Нижняя граница прав голоса в процентах.
        voting_max_shares:
          type: string
          nullable: true
          description: Верхняя граница прав голоса в процентах.
        appointment_date:
          type: string
          nullable: true
          description: Дата начала пребывания в должности или назначения (ISO 8601).
        is_active:
          type: boolean
          nullable: true
          description: False для бывшего владельца.
        shareholding:
          $ref: '#/components/schemas/KYBRegistryShareholding'
      required:
        - name
        - first_name
        - last_name
        - date_of_birth
        - country_of_birth
        - company_name
        - registration_number
        - entity_type
        - nationality
        - designation
        - roles
        - ownership_min_shares
        - ownership_max_shares
        - voting_min_shares
        - voting_max_shares
        - appointment_date
        - is_active
        - shareholding
    InvestigatorDecision:
      type: object
      description: >-
        Как элемент покинул очередь Investigator. `decided_by`,
        `original_outcome` и `overrides` возвращаются эндпоинтами принятия и
        переопределения, а также отчётом; блок `investigator` решения по сессии
        содержит остальные поля.
      properties:
        outcome:
          type: string
          enum:
            - accepted
            - edited
            - overridden
            - decided_elsewhere
            - automated
          description: >-
            `accepted` или `edited`: рекомендация принята (`edited` с изменённым
            описанием), `overridden`: выбрано другое действие,
            `decided_elsewhere`: решение принято вне Investigator, пока отчёт
            был открыт, `automated`: решение, принятое Investigator
            автоматически.
        action:
          type: string
          enum:
            - approve
            - decline
            - escalate
            - request
        actor_email:
          type: string
          nullable: true
        actor_name:
          type: string
          nullable: true
        override_category:
          type: string
          enum:
            - missing_context
            - needs_information
            - policy_differs
            - evidence_misread
            - other
            - ''
          nullable: true
        override_reason:
          type: string
          nullable: true
        final_status:
          type: string
          description: Статус элемента после принятия решения.
        agreed:
          type: boolean
          description: Совпало ли решение с рекомендацией.
          nullable: true
        decided_at:
          type: string
          format: date-time
        billed:
          type: boolean
          description: За проверку была списана плата.
        decided_by:
          type: string
          enum:
            - investigator
            - member
        original_outcome:
          type: object
          description: >-
            Решение, принятое модулем Investigator самостоятельно, без учёта
            последующих переопределений. Null для решений, принятых командой.
          properties:
            action:
              type: string
            final_status:
              type: string
            decided_at:
              type: string
              format: date-time
          nullable: true
        overrides:
          type: array
          description: >-
            Каждое переопределение решения, принятое Investigator
            самостоятельно, начиная с самых старых.
          items:
            type: object
            properties:
              action:
                type: string
              actor_email:
                type: string
                nullable: true
              actor_name:
                type: string
                nullable: true
              override_category:
                type: string
              override_reason:
                type: string
              previous_status:
                type: string
              final_status:
                type: string
              agreed:
                type: boolean
                nullable: true
              overridden_at:
                type: string
                format: date-time
    KYBRegistryGroupCompany:
      type: object
      description: Компания корпоративной группы по её идентификатору в реестре.
      properties:
        name:
          type: string
          nullable: true
          description: Название компании.
        country_code:
          type: string
          nullable: true
          description: Страна регистрации.
        registration_number:
          type: string
          nullable: true
          description: Регистрационный номер.
      required:
        - name
        - country_code
        - registration_number
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в
        Business Console. Основной ключ имеет полный доступ. Именованный ключ
        может иметь ограниченную область действия: без доступа, чтение или
        запись для каждого ресурса, ограничение определенными сценариями или
        одобренными сессиями, списком IP-адресов и сроком действия. 401
        означает, что ключ неверен, отозван или его срок действия истек; 403
        означает, что ключ не был передан, у ключа нет доступа к этому ресурсу
        или действию, либо запрос поступил с адреса вне его списка IP-адресов;
        404 на маршруте сессии означает, что сессия не входит в сценарии или
        статусы ключа. Ключ без доступа к медиа получает URL изображений, видео
        и PDF как null, а ключ без прав на запись сессий получает ссылки на
        сессии и токены как null. См. https://docs.didit.me/console/api-keys.

````

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