> ## 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.

# Верификация личности: быстрый старт

> Создайте KYC с Didit за минуты: настройте no-code сценарий, запустите сессию и получайте webhook. Бесплатный кредит $10 в месяц.

Это краткое руководство поможет вам пройти путь от создания нового аккаунта Didit до реальной верификации личности: создайте аккаунт, настройте сценарий верификации по шаблону, настройте webhook и скопируйте API-ключ, запустите сессию верификации с помощью одного вызова API и получите решение в реальном времени.Эта страница дополняет урок Академии ниже: 19-минутная запись экрана, где в рабочей консоли создаётся сценарий верификации от шаблона до опубликованного сценария, включая правила, ветвление, цены и ссылку, которой можно поделиться.[Создание первого сценария верификации — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?rel=0\&playsinline=1)

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



      
      

\<pre>

\````# Goal — ship your first Didit verification end-to-end

You are integrating Didit (https://docs.didit.me) into my project. Take me from zero to a working KYC / KYB flow: account, workflow, session, hosted UI, webhook, decision.

For the full canonical recipe (5K-token version covering SDK pick, webhook HMAC verification, every status, decision parsing), use:

https://docs.didit.me/integration/integration-prompt

That page has a "Copy Prompt" button — copy its prompt and follow it. The summary below is enough to bootstrap if you can't fetch the full prompt.

\## My application context

\<my_stack>
Stack: [framework + language, e.g. Next.js 15 + TypeScript]
Surface: [web | iOS | Android | React Native | Flutter | backend-only]
Use case: [KYC at signup | KYB at business onboarding | age gate | re-auth]
Database: [Postgres | MySQL | Mongo]
\</my_stack>

\## Steps

1\. **Register programmatically (2 calls)** — `POST https://apx.didit.me/auth/v2/programmatic/register/` then `POST https://apx.didit.me/auth/v2/programmatic/verify-email/` with the 6-char code. Save `response.application.api_key` as `DIDIT_API_KEY`.

2\. **Create a workflow** —
\```bash
curl -X POST https://verification.didit.me/v3/workflows/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workflow_label": "Standard KYC",
"workflow_type": "kyc",
"features": [
  \{"feature": "OCR"},
  \{"feature": "LIVENESS", "config": {"face_liveness_method": "PASSIVE"}},
  \{"feature": "FACE_MATCH"},
  \{"feature": "AML"}
]
}'
\```
Persist `workflow.id`.

3\. **Create a session** —
\```bash
curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id": "$WORKFLOW_ID", "vendor_data": "user-42", "callback": "https://myapp.com/kyc/return"}'
\```
Response contains `session_id`, `url`, `session_token`. Redirect the user to `url` (or open in the SDK / an iframe).

4\. **Register a webhook destination** — `POST https://verification.didit.me/v3/webhook/destinations/` with `{"label": "Production", "url": "...", "subscribed_events": ["status.updated","data.updated","user.status.updated","user.data.updated"], "webhook_version": "v3"}` (`label` and `url` are required). Save the returned `secret_shared_key` as `DIDIT_WEBHOOK_SECRET` (`GET /v3/webhook/destinations/{destination_uuid}/` returns it again).

5\. **Receive webhooks** — verify the `X-Signature-V2` header (HMAC-SHA256 of canonical JSON; see /integration/webhooks). De-dupe on `event_id`. Respond within 5 seconds. Apply decision to your DB based on `status`.

6\. **Retrieve the decision (fallback)** — `GET https://verification.didit.me/v3/session/{session_id}/decision/`. V3 returns plural arrays (`id_verifications[]`, `liveness_checks[]`, `face_matches[]`, `aml_screenings[]`, ...). Never assume singular V2 fields.

\## Failure modes
\- Missing API key → `403 {"detail": "You do not have permission to perform this action."}` on verification.didit.me. Wrong, revoked or expired key → `401`. JWT problems on apx.didit.me → `403`.
\- Invalid `workflow_id` → `400`.
\- Webhook handler slower than 5s, or answering 5xx or 404 → Didit retries twice, after about 1 and 4 minutes, then drops the delivery. Resend it from the destination's delivery log.

\## Sources of truth (cross-check before shipping)
\- /openapi-25.json — verification API
\- /openapi-auth.json — programmatic auth
\- /reference/data-models — V3 decision shape
\- /integration/integration-prompt — canonical end-to-end prompt````

\</pre>



      
      

Вставьте в

**1. Создайте аккаунт Didit**1) Перейдите на [business.didit.me](https://business.didit.me)
2) Зарегистрируйтесь с помощью SSO или по электронной почте и паролю
3) Создайте **организацию** — здесь ваша команда управляет сценариями, API-ключами и активностью по верификации**2. Создайте сценарий верификации**Перейдите в раздел **Сценарии** на боковой панели и нажмите **Создать новый**. Выберите тип сценария:| Тип | Описание |
| - | - |
| **Simple Workflow** | Шаги выполняются в заданном порядке — идеально для стандартных процессов онбординга |
| **Node-Based Workflow** | Гибкая логика ветвления — создавайте условные пути на основе результатов верификации |Выберите шаблон для начала работы:| Шаблон | Сценарий использования |
| - | - |
| **KYC** | Стандартный онбординг пользователей |
| **Адаптивная проверка возраста** | Проверка возраста по селфи с запасным вариантом по документу |
| **Биометрическая аутентификация** | Беспарольная повторная аутентификация по селфи |
| **Проверка адреса** | Сценарий подтверждения адреса |Настройте сценарий, переключая блоки: Проверка живости, Сравнение лиц, AML, NFC, Телефон, Email и другие.Фрагмент ниже продолжает урок Академии с отметки 2:50, где новый сценарий создаётся из шаблона и настраивается узел за узлом.[Создание нового сценария из шаблона — Didit Academy](https://www.youtube.com/embed/7-nJ3JE20i4?start=170\&rel=0\&playsinline=1)**3. Настройте webhook и скопируйте API-ключ**Перейдите в раздел **Разработчикам** на боковой панели, затем в **API-ключи** и **Webhook**:1. Добавьте ваш **URL webhook** — сюда Didit отправляет обновления статуса
2. Скопируйте ваш **API-ключ** — храните его только на стороне сервера и никогда не передавайте во фронтенд-код
3. Сохраните **секрет подписи адреса назначения webhook** как `DIDIT_WEBHOOK_SECRET` в вашем файле `.env` — он необходим для проверки HMAC `X-Signature-V2` во входящих webhook> [!TIP]
>
> Вы можете **протестировать webhook напрямую** с этой страницы, используя различные данные и статусы без необходимости запускать полную верификацию. Это позволяет убедиться, что ваша интеграция работает корректно, до перехода в продакшн.**4. Запустите сессию верификации****Вариант А — Сессии на размещённой странице** (рекомендуется)Наш рекомендуемый способ интеграции. Didit постоянно проводит A/B-тестирование размещённого сценария, поэтому коэффициент завершения, скорость и защита от мошенничества постоянно улучшаются без необходимости разрабатывать собственный интерфейс.В консоли нажмите **«+»** → выберите сценарий → сгенерируйте ссылку или QR-код. Или создавайте сессии программно:```bash theme={null}
curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id": "your-workflow-id"}'
```> [!NOTE]
>
> Значение `workflow_id` можно найти в разделе **Сценарии** на боковой панели.В уроке Академии по интеграции это отметка 3:36: вызов создания сессии с единственным обязательным полем, затем данные поставщика и URL обратного вызова.[Создание сессии: единственное обязательное поле — Didit Academy](https://www.youtube.com/embed/fX03-WEu_EI?start=216\&rel=0\&playsinline=1)**Вариант B — Автономные API** (расширенные)Вызывайте endpoint напрямую из вашего бэкенда — сессия не требуется. Оптимально для межсерверного взаимодействия (сервер-сервер) или кастомных сценариев:| Endpoint | Назначение |
| - | - |
| `POST /v3/id-verification/` | Проверка документа |
| `POST /v3/face-match/` | Сравнение селфи с документом |
| `POST /v3/aml/` | Санкции и PEP |
| `POST /v3/passive-liveness/` | Обнаружение дипфейков |Полный список смотрите в [Справочник API](https://docs.didit.me/ru/standalone-apis/id-verification.md).**5. Получайте результаты в реальном времени**Didit отправляет события webhook на ваш endpoint — опрос не требуется.| Событие | Триггер |
| - | - |
| `status.updated` | Изменение статуса сессии пользователя или компании |
| `data.updated` | Изменение данных верификации сессии или сессии компании |
| `user.status.updated` | Изменение статуса пользователя поставщика |
| `user.data.updated` | Изменение профиля или агрегированных данных пользователя поставщика |
| `business.status.updated` | Изменение статуса компании поставщика |
| `business.data.updated` | Изменение профиля или агрегированных данных компании поставщика |
| `activity.created` | Зафиксировано событие активности |
| `transaction.created` | Транзакция создана |
| `transaction.status.updated` | Изменение статуса транзакции |Формат payload и проверку подписи смотрите в разделе [Webhook](https://docs.didit.me/ru/integration/webhooks.md).**6. Управляйте и отслеживайте**Используйте консоль, чтобы:- Просматривать ход сессии в реальном времени
- Скачивать отчёты в PDF/CSV для комплаенса
- Добавлять подозрительные идентификаторы или лица в список блокировки
- Вручную обновлять или отклонять сессииВ уроке Академии по чтению результатов подробно разбирается реальная сессия шаг за шагом: предупреждения, оценки, журнал событий, доставка webhook и экспорт в PDF, который запросит ваша команда комплаенса.[Как читать результат верификации — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?rel=0\&playsinline=1)## Нужна помощь> [card] [Электронная почта](mailto:hello@didit.me)
>
> [hello@didit.me](mailto:hello@didit.me)


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