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

# Management API v3: сценарии и биллинг

> Настраивайте сценарии, анкеты, пользователей, биллинг и списки блокировки через API-ключ в Didit. Работает с агентами и MCP. Оплата по факту, без контрактов.

## Аутентификация

Все эндпоинты API управления используют ваш API-ключ приложения. В URL не нужны UUID организации и приложения: приложение определяется по вашему ключу.

```bash theme={null}
curl -H "x-api-key: YOUR_API_KEY" https://verification.didit.me/v3/...
```

Нет API-ключа? [Зарегистрируйтесь программно с помощью двух вызовов API](https://docs.didit.me/ru/integration/programmatic-registration.md).

***

## Сценарии

Сценарии определяют, через какие шаги верификации проходят ваши пользователи (сканирование документа, проверка живости, сравнение лиц, AML-скрининг и т. д.). Каждый сценарий представляет собой многоразовую конфигурацию, которую вы прикрепляете к сессиям.

**GET /v3/workflows/** `GET`

Список всех сценариев вашего приложения. Возвращает функции каждого сценария, пороговые значения и признак того, является ли он сценарием по умолчанию.

**POST /v3/workflows/** `POST`

Создание нового сценария. Укажите, какие функции верификации включить, задайте пороговые значения, настройте допустимые типы документов и другие параметры.

**GET /v3/workflows/\{uuid}/** `GET`

Получение полных сведений о конкретном сценарии, включая настройки всех функций и пороговые значения.

**PATCH /v3/workflows/\{uuid}/** `PATCH`

Обновление конфигурации сценария. Можно изменить настройки любой функции, пороговые значения или допустимые документы.

**DELETE /v3/workflows/\{uuid}/** `DELETE`

Удаление сценария. Сессии, которые уже используют этот сценарий, не затрагиваются.

> [!WARNING]
>
> Мы настоятельно рекомендуем создавать и настраивать сценарии в **Бизнес-консоли**. Визуальный конструктор сценариев предоставляет шаблоны, настройку функций перетаскиванием, параметры документов, подстройку пороговых значений и предпросмотр, и всё это без написания кода. API используйте только для автоматизации или программного управления сценариями.

### Быстрый пример: создание сценария

Значение `workflow_type` определяет базовый набор функций. Отдельные функции включаются и выключаются флагами `is_*_enabled`.

```bash theme={null}
curl -X POST https://verification.didit.me/v3/workflows/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_label": "Standard KYC",
    "workflow_type": "kyc",
    "is_default": true,
    "is_face_match_enabled": true,
    "is_liveness_enabled": true,
    "is_aml_enabled": false
  }'
```

Доступные значения `workflow_type`: `kyc`, `kyb`, `adaptive_age_verification`, `biometric_authentication`, `address_verification`, `questionnaire_verification`, `email_verification`, `phone_verification`.

Для сценариев `kyc` верификация личности включается автоматически, отдельный флаг для неё не нужен. Используйте флаги `is_*_enabled`, чтобы добавить или убрать дополнительные функции: сравнение лиц, проверку живости, AML-скрининг, NFC, проверку телефона, проверку электронной почты, подтверждение адреса, анализ устройства и IP и другие.

Затем используйте сценарий при создании сессий:

```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 '{
    "callback_url": "https://myapp.com/callback",
    "workflow_id": "WORKFLOW_UUID_FROM_ABOVE"
  }'
```

***

## Анкеты

Пользовательские формы, которые можно добавить в сценарии верификации, чтобы собирать у пользователей дополнительную информацию.

**GET /v3/questionnaires/** `GET`

Список всех анкет.

**POST /v3/questionnaires/** `POST`

Создание новой анкеты с пользовательскими вопросами, логикой ветвления и переводами.

**GET /v3/questionnaires/\{uuid}/** `GET`

Получение сведений об анкете, включая все вопросы и структуру формы.

**PATCH /v3/questionnaires/\{uuid}/** `PATCH`

Обновление анкеты.

**DELETE /v3/questionnaires/\{uuid}/** `DELETE`

Удаление анкеты.

***

## Пользователи

Управление верифицированными лицами (пользователями) в вашем приложении. Каждый пользователь идентифицируется строкой `vendor_data`, которую вы передаёте при создании сессий.

**GET /v3/users/** `GET`

Список всех пользователей вашего приложения, включая их статус верификации и историю сессий.

**GET /v3/users/\{vendor\_data}/** `GET`

Получение сведений о пользователе по вашему идентификатору vendor\_data.

**PATCH /v3/users/\{vendor\_data}/** `PATCH`

Обновление метаданных пользователя.

**POST /v3/users/delete/** `POST`

Пакетное удаление пользователей. Тело запроса: `{"vendor_data_list": ["user-1", "user-2"]}` или `{"delete_all": true}`. Также очищает все биометрические шаблоны, сохранённые для этих пользователей.

***

## Биометрические шаблоны

Биометрические шаблоны лица без изображений, которые приложение, давшее на это согласие, сохраняет после удаления сессий. См. [Биометрические шаблоны](https://docs.didit.me/ru/management-api/biometric-templates/overview.md).

**GET /v3/biometric-templates/** `GET`

Постраничный список с фильтрами (`vendor_data`, `vendor_user_uuid`, `status`, `source_type`, `retained_from`, `retained_to`, `ordering`).

**GET /v3/biometric-templates/count/** `GET`

Количество шаблонов с теми же фильтрами.

**GET /v3/biometric-templates/\{template\_uuid}/** `GET`

Один шаблон: пользователь-владелец, ссылка на источник, срок действия, инструкция и статус.

**DELETE /v3/biometric-templates/\{template\_uuid}/** `DELETE`

Удаление одного шаблона. Возвращает `{"uuid": "...", "outcome": "purged" | "already_purged"}`.

**POST /v3/biometric-templates/delete/** `POST`

Массовая очистка. Тело запроса: `{"template_uuids": [...]}` или `{"delete_all": true}` вместе с необязательными фильтрами.

***

## Операции с сессиями

**POST /v3/sessions/delete/** `POST`

Пакетное удаление сессий. Требует `delete:sessions`. Тело запроса: `{"session_numbers": ["1", "2", "3"]}` или `{"delete_all": true}` (сузьте `delete_all` с помощью фильтров списка сессий с префиксом `filter_`, например `filter_status`), а также необязательные `retain_face_embeddings`, `face_retention_days`, `face_retention_deadline`, `deletion_instruction` и `instruction_id`. Для 20 или менее подходящих сессий возвращается `200` с `face_retention_outcome` для каждой сессии; при большем количестве возвращается `202` с заданием на удаление.

**GET /v3/sessions/delete/\{job\_id}/** `GET`

Ход выполнения и итоговые показатели результатов массового удаления сессий, которое вернуло `202`.

**GET /v3/sessions/\{uuid}/reviews/** `GET`

Список проверок и журнал активности для сессии.

**POST /v3/sessions/\{uuid}/reviews/** `POST`

Добавление заметки к проверке или изменение статуса сессии.

***

## Биллинг

**GET /v3/billing/balance/** `GET`

Получить текущий баланс кредитов и настройки автопополнения.

```json theme={null}
{
  "balance": "142.5000",
  "auto_refill_enabled": true,
  "auto_refill_amount": "100.0000",
  "auto_refill_threshold": "10.0000"
}
```

**POST /v3/billing/top-up/** `POST`

Создать сессию оплаты Stripe Checkout для пополнения баланса кредитов. Каждое пополнение составляет от \$50 до \$20,000 и зачисляется по номинальной стоимости.

```json theme={null}
{
  "amount_in_dollars": 100,
  "success_url": "https://myapp.com/billing/success",
  "cancel_url": "https://myapp.com/billing/cancel"
}
```

***

## Списки (списки блокировки, разрешённые списки и пользовательские)

Управление типизированными списками для блокировки, разрешения и пользовательских условий сценария. Полную документацию см. в [документации по Lists API](https://docs.didit.me/ru/management-api/lists/overview.md).

**GET /v3/lists/** `GET`

Получить все списки приложения (списки блокировки, разрешённые списки и пользовательские).

**POST /v3/lists/\{list\_uuid}/entries/** `POST`

Добавить запись в список. Поддерживает `reference_session_id` для автоматического извлечения данных из сессии и `reference_object_uuid` для отслеживания связи с транзакциями, пользователями и компаниями.

**DELETE /v3/lists/\{list\_uuid}/entries/\{entry\_uuid}/** `DELETE`

Удалить запись из списка.

**POST /v3/lists/\{list\_uuid}/entries/face-upload/** `POST`

Загрузить изображение лица в список блокировки лиц (base64).

***

## Настройка webhook

**GET /v3/webhook/** `GET`

Получить текущую конфигурацию webhook, включая URL, версию, секретный ключ для проверки подписей webhook, а также политику хранения данных и биометрических шаблонов приложения.
Ответ также содержит `allowed_domains`, которое описано ниже, в разделе `PATCH /v3/webhook/`.

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "secret_shared_key": "whsec_a1b2c3d4e5f6...",
  "capture_method": "both",
  "data_retention_months": null,
  "face_retention_policy": "delete_with_session",
  "face_retention_days": null,
  "allowed_return_hosts": ["app.example.com"],
  "allowed_domains": ["https://app.example.com"]
}
```

**PATCH /v3/webhook/** `PATCH`

Обновить URL webhook, версию или перевыпустить секретный ключ. Установите `rotate_secret_key: true`, чтобы сгенерировать новый секрет webhook (старый сразу становится недействительным). Также задаёт политику хранения приложения: `data_retention_months` и `face_retention_policy` (`delete_with_session` по умолчанию или `retain_until_user_deleted`). Когда хранение включено, обязательно указывается конечное значение `face_retention_days` (1–3650). См. [Хранение биометрических шаблонов](https://docs.didit.me/ru/console/data-retention.md#хранение-биометрических-шаблонов). Также регистрирует `allowed_return_hosts`: до 20 имён хостов (например, `app.example.com`) без схемы, порта, пути и символа подстановки, на которые верификация через [Digital ID wallet API](https://docs.didit.me/ru/standalone-apis/digital-id-wallets.md#регистрация-адреса-возврата) может вернуть пользователя по HTTPS. Новый список заменяет зарегистрированный. Домен White label вашего приложения разрешён всегда.

Также задаёт `allowed_domains`: до 50 веб-источников (например, `https://app.example.com`), в которые может встраиваться размещённая страница верификации и на которые она может вернуть пользователя с помощью `callback` сессии.
Каждая запись состоит из схемы, хоста и необязательного порта, без пути, query-параметров и символа подстановки.
Используйте `https`. `http` принимается только для `localhost`, `127.0.0.1` и `::1`.
Didit сохраняет каждый источник в нижнем регистре без порта по умолчанию и возвращает список в `allowed_domains`.
Некорректная запись завершается ошибкой 400 для поля `allowed_domains`.
Новый список заменяет зарегистрированный, а пустой список снимает ограничение.
Пока список не пуст, [`POST /v3/session/`](https://docs.didit.me/ru/sessions-api/create-session) отклоняет веб-`callback`, которого в нём нет, с ошибкой 400, а размещённая страница верификации не перенаправляет пользователя на сохранённый или заданный по умолчанию в сценарии callback, если его нет в списке.
На пользовательские URL-схемы (глубокие ссылки в приложении) и серверные вызовы API это не распространяется.

Если вы передаёте `endpoints`, каждый адрес назначения webhook, которого нет в списке, удаляется безвозвратно вместе с секретом подписи и всем журналом доставки, точно так же, как при [`DELETE /v3/webhook/destinations/{destination_uuid}/`](https://docs.didit.me/ru/management-api/webhook/delete-destination).
Это действие нельзя отменить.
Чтобы управлять адресами назначения по одному, используйте [endpoint'ы адресов назначения webhook](https://docs.didit.me/ru/management-api/webhook/list-destinations.md).

```json theme={null}
{
  "webhook_url": "https://myapp.com/webhooks/didit",
  "webhook_version": "v3",
  "allowed_domains": ["https://app.example.com"]
}
```

***

## Полная сводка endpoint'ов API

| Endpoint | Method | Description |
| - | - | - |
| `/v3/session/` | POST | Создать сессию верификации |
| `/v3/sessions/` | GET | Получить все сессии |
| `/v3/session/{id}/decision/` | GET | Получить результат верификации сессии |
| `/v3/session/{id}/update-status/` | PATCH | Одобрить или отклонить сессию |
| `/v3/session/{id}/delete/` | DELETE | Удалить одну сессию |
| `/v3/sessions/delete/` | POST | Пакетное удаление сессий |
| `/v3/sessions/delete/{job_id}/` | GET | Статус задачи массового удаления сессий |
| `/v3/sessions/{id}/reviews/` | GET, POST | Активность сессии и проверки |
| `/v3/workflows/` | GET, POST | Получить список и создать сценарии |
| `/v3/workflows/{id}/` | GET, PATCH, DELETE | Детали, обновление и удаление сценария |
| `/v3/questionnaires/` | GET, POST | Получить список и создать анкеты |
| `/v3/questionnaires/{id}/` | GET, PATCH, DELETE | Детали анкеты |
| `/v3/users/` | GET | Получить список верифицированных пользователей |
| `/v3/users/{vendor_data}/` | GET, PATCH | Детали и обновление пользователя |
| `/v3/users/delete/` | POST | Пакетное удаление пользователей (также удаляет их сохранённые биометрические шаблоны) |
| `/v3/biometric-templates/` | GET | Получить список сохранённых биометрических шаблонов |
| `/v3/biometric-templates/count/` | GET | Подсчитать сохранённые биометрические шаблоны |
| `/v3/biometric-templates/{id}/` | GET, DELETE | Детали шаблона / удаление |
| `/v3/biometric-templates/delete/` | POST | Массовое удаление шаблонов |
| `/v3/lists/` | GET, POST | Получить все списки / создать список |
| `/v3/lists/{id}/` | GET, PATCH, DELETE | Детали, обновление и удаление списка |
| `/v3/lists/{id}/entries/` | GET, POST | Получить записи списка / добавить запись |
| `/v3/lists/{id}/entries/{eid}/` | DELETE | Удалить запись |
| `/v3/lists/{id}/entries/face-upload/` | POST | Загрузить лицо в список блокировки |
| `/v3/webhook/` | GET, PATCH | Конфигурация webhook (URL, секрет, версия), политика хранения и хосты возврата для API кошелька |
| `/v3/billing/balance/` | GET | Проверить баланс кредитов |
| `/v3/billing/top-up/` | POST | Пополнить баланс кредитов |


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