> ## 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 Didit: REST API верификации личности

> Полный справочник REST API Didit: эндпоинты KYC, KYB, AML, биометрии и мониторинга транзакций. Спецификация OpenAPI, оплата по факту, $10 бесплатно в месяц.



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



      
      

\<pre>

\``Integrate Didit standalone verification APIs into my backend for server-to-server identity checks.

\## Available Standalone APIs

\### Identity & Documents
\- POST /v3/id-verification/ — multipart/form-data: front_image (required), back_image (optional). Returns: { request_id, id_verification: { status, first_name, last_name, document_type, document_number, date_of_birth, nationality, expiration_date, issuing_state, address, parsed_address, warnings[] } }
\- POST /v3/poa/ — multipart/form-data: document (PDF/image). Returns: { request_id, poa: { status, document_type, issuer, poa_address, poa_parsed_address, issue_date, warnings[] } }
\- POST /v3/database-validation/ — JSON: { issuing_state, validation_type, first_name, last_name, date_of_birth, personal_number, ... }. Returns: { request_id, database_validation: { status, validations } }

\### Document AI
\- POST /v3/document-ai/ — multipart/form-data: document (PDF/image), fields (one JSON-encoded array string of { key, name, instruction, type: "text"|"number"|"date", required, is_full_name }, 1-30 items), expected_first_name + expected_last_name OR expected_company_name (+ expected_company_country), document_ai_name_match_score_threshold (default 80), per-risk *_action params. Returns: { request_id, document_ai: { status, extracted_data: { <key>: value|null }, detected_codes[], fields[], name_match_score, name_on_document, warnings[] } }. $0.20 per document.

\### Biometrics & Face
\- POST /v3/passive-liveness/ — multipart/form-data: user_image. Returns: { request_id, passive_liveness: { status, score, method } }
\- POST /v3/face-match/ — multipart/form-data: user_image + ref_image. Returns: { request_id, face_match: { status, score } }
\- POST /v3/face-search/ — multipart/form-data: user_image. Returns: { request_id, face_search: { status, total_matches, matches[] } }
\- POST /v3/age-estimation/ — multipart/form-data: user_image. Returns: { request_id, age_estimation: { status, age_estimation, score } }

\### Compliance
\- POST /v3/aml/ — JSON: { full_name, entity_type, date_of_birth, nationality, document_number, include_adverse_media, include_ongoing_monitoring }. Returns: { request_id, aml: { status, total_hits, hits[], score, entity_type } }

\### Business Verification (KYB)
\- POST /v3/kyb/search/ — JSON: { country_code (required), name, registration_number, tier: "basic" (default) | "shareholders" | "ubo", search_type: "contains", webhook_url, vendor_data, metadata }. `tier` picks the provider chain the search runs on; retrieve the candidate from select (Lite), shareholders or ubo. Up to $0.50 per successful request, separately from profile retrieval; empty results and failures are not charged. Returns: { request_id, kyb_registry: { companies[] ({ kyb_response_id, name, registration_number, status, type, fetch_status }), pagination, search_status, search_resolved } }. `kyb_response_id` is an opaque handle — pass it straight to select/shareholders/ubo, never parse it.
\- POST /v3/kyb/select/ — JSON: { kyb_response_id (from search), save_api_request, vendor_data, metadata }. **Lite** tier, priced per country ([per-country prices](https://docs.didit.me/getting-started/kyb-registry-pricing.md)). Returns: { request_id, kyb_registry: { status, company_name, registration_number, country_code, company_type, incorporation_date, registered_address, officers[], beneficial_owners[], fetch_status, data_resolved, ... } }
\- POST /v3/kyb/shareholders/ and POST /v3/kyb/ubo/ — same JSON shape as select. **Shareholders** and **UBOs** tiers, priced per country; delivered and billed as the highest tier the country's registries can serve. v3 only.

\### Contact Verification
\- POST /v3/email/send/ — JSON: { email }. Sends OTP code.
\- POST /v3/email/check/ — JSON: { email, code }. Verifies OTP.
\- POST /v3/phone/send/ — JSON: { phone, channel }. Sends OTP via SMS/WhatsApp/Telegram.
\- POST /v3/phone/check/ — JSON: { phone, code }. Verifies OTP.

\### Bank Verification
\- POST /v3/bank/account-check/ - JSON: { country (ISO 3166-1 alpha-3), account: { iban } or { account_number, sort_code | routing_number | ifsc | bsb | transit_institution | bank_code } or { clabe } or { cbu_cvu }, holder: { full_name } or { business_name }, vendor_data }. Checks that a bank account belongs to the name, with no session. Returns: { request_id, result: match | close_match | no_match | cannot_verify, holder_name (close_match only), account (masked), vendor_data, created_at }. Billed once per check the bank answers; errors are never billed.

\## Authentication
All requests require: Headers: { "x-api-key": DIDIT_API_KEY }
For file uploads: multipart/form-data. For JSON: Content-Type: application/json.

\## Common Parameters
\- save_api_request (bool, default true): if true, appears in Console > Manual Checks
\- vendor_data (string): your internal ID for tracking

\## Example: ID Verification (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('front_image', fs.createReadStream('./id_front.jpg'));
form.append('back_image', fs.createReadStream('./id_back.jpg'));

const response = await fetch('https://verification.didit.me/v3/id-verification/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, ...form.getHeaders() },
body: form
});
const result = await response.json();
// result.id_verification.status: "Approved" or "Declined"
// result.id_verification.first_name, .last_name, .document_number, etc.

\## Example: AML Screening
const response = await fetch('https://verification.didit.me/v3/aml/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
full_name: 'John Doe',
entity_type: 'person',
date_of_birth: '1990-01-15',
nationality: 'US'
})
});
const result = await response.json();
// result.aml.status, result.aml.total_hits, result.aml.hits

\## When to Use Standalone APIs vs Sessions
\- Standalone: you have images/data, server-to-server, batch processing, custom UX
\- Sessions: user-facing flows where Didit handles camera, UX, multi-step, 54 languages

\## Rate Limits
\- Free: 10/min. Paid: 600/min. Exceeded: HTTP 429.

\## Environment Variables
\- DIDIT_API_KEY — from Didit Console > API & Webhooks

\## Docs
\- API Reference: https://docs.didit.me/api-reference/overview
\- Sessions vs APIs: https://docs.didit.me/api-reference/overview
\- Webhooks: https://docs.didit.me/integration/webhooks``

\</pre>



      
      

Вставьте в

Didit предлагает **два взаимодополняющих подхода** к верификации личности. Понимание различий необходимо для выбора подходящей интеграции для вашего сценария.### [Размещённые сессии](https://docs.didit.me/ru/sessions-api/create-session.md)Полные сценарии верификации с готовым оптимизированным интерфейсом. Пользователи работают с размещённым интерфейсом Didit через перенаправление, iframe или нативный SDK.### [Автономные API](https://docs.didit.me/ru/standalone-apis/id-verification.md)Прямые вызовы API между серверами. Вы отправляете данные (изображения, документы, имена) и получаете структурированные результаты верификации без пользовательского интерфейса.***## Размещённые сессии (рекомендуется для пользовательских сценариев)Размещённые сессии являются **рекомендуемым подходом** для большинства интеграций. При создании сессии Didit генерирует `verification_url`, который вы показываете пользователю. Пользователь проходит весь сценарий верификации в оптимизированном интерфейсе Didit, а результаты вы получаете через webhook или API.### Как это работает**1. Создание сессии**Ваш сервер вызывает `POST /v3/session/` с ID сценария. Didit возвращает `verification_url` и `session_token`.**2. Показ пользователю**Перенаправьте пользователя, встройте сценарий через iframe или инициализируйте нативный SDK с помощью token сессии.**3. Пользователь проходит верификацию**Пользователь следует пошаговому сценарию в оптимизированном интерфейсе Didit: захват документа, проверка живости и любые дополнительные шаги.**4. Получение результатов**Didit отправляет webhook на ваш сервер с решением по верификации, либо вы опрашиваете API получения результатов.### Почему сессии рекомендуются| Преимущество | Подробности |
| - | - |
| **Оптимизированный UX** | Интерфейс верификации непрерывно проходит глобальное A/B-тестирование, чтобы достигать максимальной доли завершённых верификаций |
| **Работа с камерой** | Умный выбор камеры, автоматический захват, проверки качества и совместимость с устройствами встроены |
| **Пошаговый сценарий** | Пошаговые инструкции, обратная связь в реальном времени и восстановление после ошибок для пользователя |
| **Сценарии с несколькими функциями** | Объединение нескольких функций (верификация личности + проверка живости + AML + проверка телефона + проверка email) в одном сценарии |
| **Безопасность** | Защита от спуфинга, активная проверка живости и отпечаток устройства встроены в сценарий |
| **Комплаенс** | Журналы аудита на уровне сессии, сбор согласия и политики хранения данных применяются автоматически |
| **Локализация** | 54 языка с автоматическим определением языка браузера |
| **Нативно для мобильных** | Нативные SDK для iOS, Android, React Native и Flutter |
| **Не требует обслуживания** | Didit берёт на себя все обновления интерфейса, ошибки браузеров и устройств и граничные случаи работы с камерой |### Когда использовать сессии- **Онбординг пользователей / KYC**: новые пользователи регистрируются и должны подтвердить личность
- **Проверка возраста**: подтверждение того, что пользователи соответствуют минимальным возрастным требованиям
- **Повторная верификация**: периодическая повторная верификация существующих пользователей
- **Биометрическая аутентификация**: пользователи аутентифицируются по лицу для чувствительных действий
- **Многошаговый комплаенс**: сценарии, требующие верификации личности, проверки живости, AML и проверки телефона за один проход
- Любой сценарий, в котором конечный пользователь присутствует и взаимодействует напрямую### Эндпоинты сессий| Эндпоинт | Назначение |
| - | - |
| [Создать сессию](https://docs.didit.me/ru/sessions-api/create-session.md) | Генерирует ссылку на верификацию для пользователя |
| [Получить сессию](https://docs.didit.me/ru/sessions-api/retrieve-session.md) | Получает полные результаты и решение по сессии |
| [Список сессий](https://docs.didit.me/ru/sessions-api/list-sessions.md) | Запрашивает и фильтрует все сессии |
| [Удалить сессию](https://docs.didit.me/ru/sessions-api/delete-session.md) | Удаляет сессию и все связанные с ней данные |
| [Создать PDF](https://docs.didit.me/ru/sessions-api/generate-pdf.md) | Экспортирует отчёт о верификации в PDF |
| [Поделиться сессией](https://docs.didit.me/ru/sessions-api/share-session/share.md) | Генерирует token общего доступа для Многоразового KYC с партнёром |
| [Импорт общей сессии](https://docs.didit.me/ru/sessions-api/share-session/import.md) | Импортирует сессию, которой поделился партнёр (Многоразовый KYC) |***## Автономные API (для серверной обработки)Автономные API позволяют вызывать отдельные функции верификации **напрямую с вашего сервера** без какого-либо пользовательского интерфейса. Вы отправляете данные (изображения, документы, имена) и получаете структурированные результаты.### Как это работает**1. Отправка данных**Ваш сервер вызывает автономный endpoint (например, `POST /v3/id-verification/`) с необходимыми данными: изображениями, документами или полями JSON.**2. Получение результатов**Didit обрабатывает запрос синхронно и возвращает структурированные результаты верификации в ответе.### Когда использовать автономные API| Вариант использования | Пример |
| - | - |
| **Обработка на бэкенде** | У вас уже есть изображения документов из собственного интерфейса захвата, и их нужно проверить |
| **Пакетная верификация** | Обработка большого объёма удостоверений личности, загруженных командой операционного отдела |
| **Собственный UX** | Вы создали собственный сценарий захвата и хотите использовать Didit только для анализа |
| **Сервер-серверные проверки** | AML-скрининг списка клиентов без какого-либо взаимодействия с пользователем |
| **Автоматизированные конвейеры** | CI/CD или повторные проверки комплаенса по cron (например, ежедневный AML-мониторинг) |
| **Интеграция с существующими системами** | Подключение верификации Didit к вашей существующей системе управления документами |
| **Вызовы одной функции** | Вам нужна только одна функция (например, только AML-скрининг или только сравнение лиц) |### Доступные автономные API**Личность и документы**| API | Что делает |
| - | - |
| [Верификация личности](https://docs.didit.me/ru/standalone-apis/id-verification.md) | Извлекает и проверяет данные из удостоверений личности (изображения лицевой и оборотной сторон) |
| [Подтверждение адреса](https://docs.didit.me/ru/standalone-apis/proof-of-address.md) | Проверяет документы с адресом (счета за коммунальные услуги, банковские выписки, государственные документы) |
| [Проверка адреса](https://docs.didit.me/ru/standalone-apis/address-validation.md) | Подтверждает существование адреса и возвращает его в нормализованном виде с координатами |
| [Проверка по базам данных](https://docs.didit.me/ru/core-technology/database-validation/overview.md) | Сверяет данные пользователя с государственными базами данных |**Document AI**| API | Что делает |
| - | - |
| [Document AI](https://docs.didit.me/ru/standalone-apis/document-ai.md) | Извлекает заданные вами поля из любого документа (PDF или изображения), с сопоставлением имён и проверкой на внесение изменений или манипуляции |**Биометрия и лица**| API | Что делает |
| - | - |
| [Пассивная проверка живости](https://docs.didit.me/ru/standalone-apis/passive-liveness.md) | Проверяет присутствие реального человека (защита от спуфинга) по одному изображению |
| [Сравнение лиц](https://docs.didit.me/ru/standalone-apis/face-match.md) | Сравнивает два лица, чтобы определить, принадлежат ли они одному человеку |
| [Поиск по лицу](https://docs.didit.me/ru/standalone-apis/face-search.md) | Ищет лицо среди всех ранее верифицированных сессий (1:N) |
| [Оценка возраста](https://docs.didit.me/ru/standalone-apis/age-estimation.md) | Оценивает возраст человека по изображению лица |**Комплаенс и риски**| API | Что делает |
| - | - |
| [AML-скрининг](https://docs.didit.me/ru/standalone-apis/aml-screening.md) | Проверяет физических лиц или компании по санкциям, политически значимым лицам (PEP) и спискам наблюдения |**Банковская проверка**| API | Что делает |
| - | - |
| [Account check](https://docs.didit.me/ru/standalone-apis/bank-account-check.md) | Проверяет, что банковский счёт принадлежит названному вами физическому лицу или компании, до отправки денег на этот счёт |**Верификация бизнеса (KYB)**| API | Что делает |
| - | - |
| [KYB Registry Search](https://docs.didit.me/ru/standalone-apis/kyb-registry-search.md) | Ищет в реестрах компаний по названию, регистрационному номеру и стране; до \$0.50 за успешный запрос |
| [KYB Registry Select](https://docs.didit.me/ru/standalone-apis/kyb-registry-select.md) | Получает полный профиль из реестра (должностные лица, бенефициарные владельцы, адреса) для выбранной компании |***## Сравнение по пунктам| | Размещённые сессии | Автономные API |
| - | - | - |
| **Сложность интеграции** | Низкая: перенаправление, iframe или SDK | Средняя: вы сами занимаетесь захватом и отправкой данных |
| **Взаимодействие с пользователем** | Да: пользователь проходит сценарий в интерфейсе Didit | Нет: только взаимодействие между серверами |
| **Камера и захват** | Обеспечивается Didit (оптимизировано) | Вы передаёте изображения и данные |
| **Сценарии с несколькими функциями** | Да: объединяйте функции в сценарий | Одна функция на один вызов API |
| **Оптимизация UX** | Постоянная оптимизация с помощью A/B-тестирования | Вы управляете UX |
| **Локализация** | 54 языка, определяются автоматически | Н/Д (нет интерфейса) |
| **Вебхуки** | Автоматические уведомления о статусе | Н/Д (синхронный ответ) |
| **Время ответа** | Асинхронно (пользователь проходит процесс в своём темпе) | Синхронно (секунды) |
| **Лучше всего подходит для** | Онбординг и верификация для пользователей | Обработка на бэкенде и автоматизация |
| **Видимость в консоли** | Полный жизненный цикл сессии на панели управления | Отображается в разделе ручных проверок |***## Можно ли использовать оба варианта?**Да.** Многие команды сочетают оба подхода:1) **Сессии для онбординга** — Новые пользователи проходят полный сценарий верификации на размещённой странице при регистрации
2) **Автономный AML для постоянного мониторинга** — Задание cron ежедневно ночью повторно проверяет всех одобренных пользователей по обновлённым спискам наблюдения
3) **Автономный поиск по лицу для обнаружения дубликатов** — Когда новая сессия одобрена, ваш сервер вызывает поиск по лицу для проверки на дубликаты
4) **Автономная верификация личности для операционных задач** — Ваша команда комплаенса вручную загружает документы для проверки пограничных случаев### Пример: комбинированная архитектура| Ваше приложение | API Didit | Тип |
| - | - | - |
| **Поток регистрации пользователей** | Sessions API (размещённый интерфейс) | Для пользователей |
| **Ночной повторный AML-скрининг** | Автономный AML API | Сервер-сервер |
| **Проверка документов операционной командой** | Автономный API верификации личности | Сервер-сервер |
| **Обнаружение дубликатов лиц** | Автономный API поиска по лицу | Сервер-сервер |***## Начало работы### [Быстрый старт с сессиями](https://docs.didit.me/ru/integration/api-full-flow.md)Создайте первую сессию верификации с размещённым интерфейсом за 5 минут.### [Аутентификация API](https://docs.didit.me/ru/getting-started/api-authentication.md)Получите API-ключ и начните отправлять аутентифицированные запросы.### [Настройка вебхуков](https://docs.didit.me/ru/integration/webhooks.md)Получайте уведомления в реальном времени при изменении статуса верификации.### [Создание сценария](https://docs.didit.me/ru/console/workflows.md)Создавайте собственные сценарии верификации в Business Console.***


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