> ## 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 в одном API

> Didit: единый Sessions API для KYC и KYB. Оплата за использование, менее 2 с, 220+ стран, 14,000+ документов, $10 бесплатно в месяц.

Сессии — это единица верификации в Didit. Когда вы запускаете верификацию, создаётся **сессия**. Когда верификация завершается, сессия содержит полный payload решения. Один и тот же API сессий работает с обоими типами:

| Тип | Что проверяется | Данные решения включают |
| - | - | - |
| **Сессия проверки пользователей (KYC)** | Физическое лицо | Верификацию личности, проверку живости, сравнение лиц, POA, NFC, проверку по базам данных, телефон, электронную почту, AML, анкеты, Анализ устройства и IP |
| **Сессия верификации бизнеса (KYB)** | Компания или юридическое лицо | Проверку в реестре компаний, ключевые лица (руководители и UBO), верификацию документов, телефон, электронную почту, AML, анкеты, Анализ устройства и IP |

В уроке Academy о том, что видят пользователи, глава с отметкой 5:34 сравнивает размещённый сценарий с созданием собственных экранов. Именно этот компромисс API решает за вас.

[Размещённый сценарий и собственные экраны — Didit Academy](https://www.youtube.com/embed/LzGe-dMWjUw?start=334\&rel=0\&playsinline=1)

## Тип определяется сценарием

Когда вы [создаёте сессию](https://docs.didit.me/ru/sessions-api/create-session.md), вы передаёте `workflow_id`. Тип сценария определяет, будет ли сессия сессией проверки пользователей или верификации бизнеса. Тип вы отдельно не выбираете. Сценарии KYB создают сессии верификации бизнеса, а сценарии KYC создают сессии проверки пользователей.

## Дискриминатор `session_kind`

Каждый ответ с сессией (при создании, получении, выводе списка, обновлении статуса, предоставлении доступа и импорте) содержит поле верхнего уровня:

```json theme={null}
{
  "session_id": "...",
  "session_kind": "user",
  ...
}
```

* `"user"`: сессия является **сессией проверки пользователей (KYC)**. Ответ содержит массивы функций, специфичные для пользователя.
* `"business"`: сессия является **сессией верификации бизнеса (KYB)**. Ответ содержит массивы функций, специфичные для бизнеса.

Используйте это поле, чтобы на вашей стороне выбирать структуру данных.

> [!NOTE]
>
> Значения перечисления — короткие идентификаторы `"user"` и `"business"`. Мы сделали их короткими для удобства API. Полные названия **Проверка пользователей (KYC)** и **Верификация бизнеса (KYB)** используются во всей документации для ясности.

## Массивы функций по типу

Массивы функций в решении зависят от типа. Поля, которых нет у одного из типов, просто не появляются в ответе (без null и заглушек):

| Массив функций | Проверка пользователей (KYC) | Верификация бизнеса (KYB) |
| - | :-: | :-: |
| `id_verifications` | ✅ | — |
| `liveness_checks` | ✅ | — |
| `face_matches` | ✅ | — |
| `nfc_verifications` | ✅ | — |
| `poa_verifications` | ✅ | — |
| `database_validations` | ✅ | — |
| `registry_checks` | — | ✅ |
| `document_verifications` | — | ✅ |
| `key_people_checks` | — | ✅ |
| `aml_screenings` | ✅ | ✅ |
| `phone_verifications` | ✅ | ✅ |
| `email_verifications` | ✅ | ✅ |
| `questionnaire_responses` | ✅ | ✅ |
| `ip_analyses` | ✅ | ✅ |
| `reviews` | ✅ | ✅ |
| `contact_details` | ✅ | ✅ |

## Общие поля верхнего уровня

Каждая сессия (обоих типов) содержит эти поля:

| Поле | Описание |
| - | - |
| `session_id` | UUID сессии |
| `session_kind` | `"user"` (Проверка пользователей / KYC) или `"business"` (Верификация бизнеса / KYB) |
| `session_number` | Порядковый номер в рамках приложения |
| `session_url` | URL размещённой страницы верификации |
| `status` | Общий статус сессии: `APPROVED`, `DECLINED`, `IN_REVIEW`, `IN_PROGRESS` и т. д. |
| `workflow_id` | UUID использованного сценария |
| `vendor_data` | Ваш идентификатор сущности. [Подробнее](https://docs.didit.me/ru/entities/vendor-data-linking.md) |
| `metadata` | Произвольный JSON, который вы прикрепили при создании |
| `callback` | Необязательный URL обратного вызова |
| `features` | Список функций, запускаемых сценарием и разделённых запятыми |
| `expected_details` | Необязательный payload ожидаемых данных для перекрёстной проверки |
| `created_at`, `expires_at` | Временные метки |

## Охватываемые endpoint

Следующие endpoint принимают оба типа. Отдельных путей `/v3/business-session/*` нет.

| Endpoint | Работает для |
| - | - |
| [`POST /v3/session/`](https://docs.didit.me/ru/sessions-api/create-session) | Создаёт сессию проверки пользователей или верификации бизнеса в зависимости от типа сценария |
| [`GET /v3/session/{id}/decision/`](https://docs.didit.me/ru/sessions-api/retrieve-session) | Получает сессию любого типа: выбор определяется по `session_id` |
| [`GET /v3/sessions/`](https://docs.didit.me/ru/sessions-api/list-sessions) | Выводит сессии обоих типов. Чтобы отфильтровать их по типу, используйте параметр запроса `session_kind` |
| [`PATCH /v3/session/{id}/update-status/`](https://docs.didit.me/ru/sessions-api/update-status) | Обновляет сессии любого типа |
| [`DELETE /v3/session/{id}/delete/`](https://docs.didit.me/ru/sessions-api/delete-session) | Удаляет сессии любого типа |
| [`GET /v3/session/{id}/generate-pdf/`](https://docs.didit.me/ru/sessions-api/generate-pdf) | Формирует PDF для сессий любого типа: использует шаблон проверки пользователей или верификации бизнеса |
| [`POST /v3/session/{id}/share/`](https://docs.didit.me/ru/sessions-api/share-session/share) | Token общего доступа содержит `session_kind` |
| [`POST /v3/session/import-shared/`](https://docs.didit.me/ru/sessions-api/share-session/import) | Импортирует сессии любого типа и сохраняет `session_kind` из token |

## Как работает поиск

Сессии проверки пользователей и верификации бизнеса — это два разных типа. Для ID используются UUID, поэтому коллизии исключены. Когда вы вызываете endpoint с `session_id`, Didit:

1. Сначала ищет ID в таблице проверки пользователей (там большая часть трафика).
2. Если ID не найден, ищет в таблице верификации бизнеса.
3. Возвращает 404, если ни в одной таблице совпадения нет.

Вам не нужно указывать API, какой тип сессии вы ищете.

## Статусы одинаковые

Значения статусов одинаковы для обоих типов. API возвращает их ровно так, как указано здесь: `"Not Started"`, `"In Progress"`, `"Approved"`, `"Declined"`, `"In Review"`, `"Abandoned"`, `"Expired"`, `"Kyc Expired"`, `"Resubmitted"`, `"Awaiting User"`. Сопоставление выполняется точно и с учётом регистра. Полный справочник см. в разделе [статусы верификации](https://docs.didit.me/ru/integration/verification-statuses.md).

## Webhooks

События webhook уже содержат поле `session_kind`, чтобы ваши обработчики webhook могли маршрутизировать события по типу:

| Событие | Тип | Срабатывает, когда |
| - | - | - |
| `status.updated` | Оба | Статус сессии изменился. Payload содержит `session_kind: "user"` или `"business"`. |
| `data.updated` | Оба | Данные сессии изменились (результаты функций, обновление данных реестра, постоянный AML-мониторинг). Payload содержит `session_kind`. |
| `business.status.updated` / `business.data.updated` | Бизнес-сущность | Связанная сущность компании изменилась. |
| `user.status.updated` / `user.data.updated` | Сущность пользователя | Связанная сущность пользователя изменилась. |

См. [webhooks](https://docs.didit.me/ru/integration/webhooks.md) для проверки подписи и семантики повторных попыток, а также [KYB webhooks](https://docs.didit.me/ru/business-verification/webhooks.md) для каталога событий верификации бизнеса (KYB).

## Следующие шаги

> [card] [Создать сессию](https://docs.didit.me/ru/sessions-api/create-session.md)
>
> Запустите верификацию — Проверка пользователей или Верификация бизнеса (KYB).

> [card] [Получить сессию](https://docs.didit.me/ru/sessions-api/retrieve-session.md)
>
> Получите решение. Работает для обоих типов.

> [card] [Список сессий](https://docs.didit.me/ru/sessions-api/list-sessions.md)
>
> Фильтрация по `session_kind`.

> [card] [Обновить статус](https://docs.didit.me/ru/sessions-api/update-status.md)
>
> Одобрить, отклонить, проверить, отправить повторно.

> [card] [Создать PDF](https://docs.didit.me/ru/sessions-api/generate-pdf.md)
>
> PDF-отчёты по типу сессии.

> [card] [Передача и импорт](https://docs.didit.me/ru/sessions-api/share-session/overview.md)
>
> Перенос сессий между приложениями.


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