Перейти к основному содержанию
POST
curl

Обзор

Этот метод явно создает объект User до запуска любой сессии. Созданный объект получает статус ACTIVE, если вы не укажете иное. По желанию тот же вызов отправляет человеку по электронной почте ссылку на верификацию (см. Отправка ссылки на верификацию).

Когда использовать

  • Предварительное заполнение метаданных (уровень, источник регистрации, внутренние теги) до того, как клиент пройдет верификацию.
  • Миграция от другого поставщика: воссоздайте существующий список пользователей в Didit, чтобы история и аналитика начинались с известной базовой точки.
  • Импорт доверенных изображений лиц из профилей: сначала создайте User, затем вызовите Загрузка лица User с возвращенным didit_internal_id.
  • Сценарии только с транзакциями: зарегистрируйте User с vendor_data, чтобы отправлять транзакции без запуска сессии проверки пользователей (KYC).
  • Приглашение на верификацию: создайте человека и отправьте ему ссылку на верификацию по электронной почте одним вызовом.

Контактные данные

Вы можете передать контактные данные человека вместе с полями профиля. Если full_name не передан, first_name и last_name объединяются через пробел в full_name. email и phone_number сохраняются в metadata.contact, а country в metadata.address. country принимает код ISO 3166, alpha-2 или alpha-3 (ES или ESP), и сохраняется в верхнем регистре. Если переданное вами значение metadata уже содержит contact или address, которое не является объектом JSON, Didit не перезаписывает это значение: вызов возвращает 400 с указанием контактного поля, для которого требуется объект JSON.

Отправка ссылки на верификацию

Установите send_verification_link в true, чтобы пригласить человека пройти верификацию в этом же вызове. Didit создает для человека сессию верификации по сценарию, указанному в workflow_id, и отправляет ссылку на адрес email. Используйте language, чтобы выбрать язык письма; если параметр не указан, письмо будет на английском.
  • email и workflow_id обязательны при отправке ссылки, а сценарий должен проверять человека: сценарий Верификации бизнеса (KYB) возвращает 400.
  • Сессия проходит те же проверки, что и в Создание сессии. Если vendor_data попал в список блокировки или недостаточно кредитов, вызов возвращает 400.
  • Человек и сессия создаются вместе или не создаются вовсе. Если какая-либо проверка не проходит, ничего не записывается и письмо не отправляется.
  • Ответ содержит verification_link с session_id сессии, session_number, status, url, workflow_id и email, на который была отправлена ссылка. Без ссылки verification_link равен null.

Примечания

  • vendor_data обязателен и должен быть уникальным для каждого приложения. При попытке создать дубликат возвращается ошибка конфликта. Чтобы обновить существующего пользователя, используйте PATCH /v3/users/{vendor_data}/.
  • Длина vendor_data ограничена 2000 байтами (в кодировке UTF-8). Значение длиннее этого лимита возвращает ошибку валидации с кодом 400 и не принимается.
  • Поля, которые обычно берутся из проверенных сессий (full_name, date_of_birth), можно заполнить здесь, но их может перезаписать первая одобренная сессия проверки пользователей (KYC).
  • Этот метод не принимает изображения лиц. Чтобы прикрепить доверенное импортированное изображение лица, после того как метод вернет didit_internal_id, используйте POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/.
  • Само создание не отправляет webhook. Последующие изменения пользователя отправляют user.data.updated или user.status.updated.
  • При send_verification_link новая сессия обновляет пользователя в том же вызове, и это отправляет user.data.updated.

Права доступа

Основной секретный ключ и API-ключи с полным доступом всегда могут вызывать этот метод. Ключу с пользовательским доступом нужно право записи в Люди (users). При send_verification_link: true также нужна запись в Сессии, потому что вызов создает сессию и передает ее ссылку. Без нее вызов возвращает 403 с сообщением This API key has no write access to sessions., и ничего не записывается. Ключ, ограниченный отдельными сценариями или одобренными сессиями, не может обращаться к этому методу. Роли и права доступа в Консоли определяют, что участник команды может делать в Консоли. Для запросов с API-ключами они не проверяются.

Связанные материалы

Авторизации

x-api-key
string
header
обязательно

API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в Business Console. Основной ключ имеет полный доступ. Именованный ключ может иметь ограниченную область действия: без доступа, чтение или запись для каждого ресурса, ограничение определенными сценариями или одобренными сессиями, списком IP-адресов и сроком действия. 401 означает, что ключ неверен, отозван или его срок действия истек; 403 означает, что ключ не был передан, у ключа нет доступа к этому ресурсу или действию, либо запрос поступил с адреса вне его списка IP-адресов; 404 на маршруте сессии означает, что сессия не входит в сценарии или статусы ключа. Ключ без доступа к медиа получает URL изображений, видео и PDF как null, а ключ без прав на запись сессий получает ссылки на сессии и токены как null. См. https://docs.didit.me/console/api-keys.

Тело

application/json
vendor_data
string
обязательно

Ваш уникальный идентификатор этого пользователя (произвольная строка, НЕ UUID). Должен быть уникальным среди пользователей приложения; сопоставляется в точности в переданном виде.

full_name
string | null

Полное юридическое имя пользователя.

Maximum string length: 512
display_name
string | null

Понятное отображаемое имя, показываемое в консоли (имеет приоритет над full_name при отображении в интерфейсе).

Maximum string length: 255
date_of_birth
string<date> | null

Дата рождения в формате YYYY-MM-DD.

status
enum<string>
по умолчанию:ACTIVE

Начальный статус жизненного цикла. По умолчанию ACTIVE.

Доступные опции:
ACTIVE,
FLAGGED,
BLOCKED
metadata
object | null

Произвольный JSON-объект, прикрепляемый к пользователю. По умолчанию {}.

approved_emails
string[]

Заранее добавленные в доверенные адреса электронной почты для этого пользователя, например ["john@example.com"].

approved_phones
string[]

Заранее добавленные в доверенные номера телефонов для этого пользователя, например ["+14155551234"].

issuing_states
string[]

Заранее указанные страны выдачи (ISO 3166-1 alpha-3), например ["USA"].

first_name
string

Имя. Если full_name не передан, Didit объединяет first_name и last_name через пробел в full_name. Не возвращается отдельным полем.

Maximum string length: 255
last_name
string

Фамилия. Объединяется с first_name в full_name, если full_name не передан. Не возвращается отдельным полем.

Maximum string length: 255
email
string<email>

Контактный email, сохраняемый в metadata.contact.email (заменяет email, переданный вами внутри metadata.contact). Обязателен, если send_verification_link равен true: ссылка отправляется на этот адрес. Если metadata.contact не является объектом JSON, вызов возвращает ошибку 400 для этого поля.

phone_number
string

Контактный номер телефона, сохранённый в metadata.contact.phone_number. Если metadata.contact не является JSON-объектом, вызов возвращает 400 для этого поля.

Maximum string length: 32
country
string

Страна в виде кода ISO 3166, alpha-2 или alpha-3 (ES или ESP). Сохраняется в верхнем регистре в metadata.address.country. Если metadata.address не является JSON-объектом, вызов вернёт 400 для этого поля.

Maximum string length: 3

Когда true, Didit создает сессию верификации для человека по workflow_id и отправляет ему ссылку по электронной почте на email. Требуются email и workflow_id. API-ключу с ограниченной областью действия также требуется разрешение на запись в sessions.

workflow_id
string<uuid>

Сценарий сессии верификации. Обязателен, если send_verification_link имеет значение true. Должен верифицировать физическое лицо: сценарий Верификация бизнеса (KYB) будет отклонён. В остальных случаях игнорируется.

language
string

Язык письма для верификации в виде кода поддерживаемого языка. Если значение не указано, используется английский. Игнорируется, если send_verification_link не равен true.

Maximum string length: 10

Ответ

Пользователь создан. Полная запись пользователя (такой же структуры, как в Get User), а также verification_link: сессия верификации, отправленная Didit по электронной почте, если send_verification_link был равен true, иначе null.

Полные сведения о пользователе. Дополняет UserListItem метаданными, комментариями и updated_at.

Сессия верификации, созданная Didit и отправленная пользователю по электронной почте. Присутствует всегда: null, если send_verification_link не был равен true.

didit_internal_id
string<uuid>

Стабильный внутренний UUID Didit для этого пользователя.

vendor_data
string | null

Ваш уникальный идентификатор этого пользователя (передаётся при создании сессий). Может быть равен null, если идентификатор поставщика не был передан.

display_name
string | null

Пользовательское отображаемое имя, заданное вами

full_name
string | null

Полное имя, извлечённое из верифицированных документов

date_of_birth
string<date> | null
effective_name
string | null

Наиболее подходящее имя: display_name, если задано, иначе full_name

status
enum<string>

Статус жизненного цикла записи пользователя (НЕ статус сессии). ACTIVE используется по умолчанию, FLAGGED помечает пользователя для ручной проверки, BLOCKED запрещает новые сессии для этого vendor_data.

Доступные опции:
ACTIVE,
FLAGGED,
BLOCKED
portrait_image_url
string | null

Предварительно подписанный URL портретного фото пользователя (срок действия истекает через несколько часов)

session_count
integer

Общее количество сессий верификации для этого пользователя

approved_count
integer

Количество одобренных сессий

declined_count
integer

Количество отклонённых сессий

in_review_count
integer

Количество сессий на проверке

issuing_states
string[]

Коды стран выдачи по стандарту ISO 3166-1 alpha-3, указанные в одобренных документах, удостоверяющих личность этого пользователя, например ["USA", "ESP"]. Пустой массив, если таких кодов нет.

approved_emails
string[]

Подтверждённые адреса электронной почты, собранные из одобренных сессий этого пользователя, например ["john@example.com"].

approved_phones
string[]

Подтверждённые номера телефонов, собранные из одобренных сессий этого пользователя, например ["+14155551234"].

features
object

Агрегированный статус по функциям среди всех сессий этого пользователя. Возможные ключи: ID_VERIFICATION, NFC, LIVENESS, FACE_MATCH, POA, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE, AML, IP_ANALYSIS, AGE_ESTIMATION, DATABASE_VALIDATION. Возможные значения: Approved, Declined, In Review, Not Finished, Resub Requested.

features_list
object[]

Те же данные, что и features, в виде упорядоченного массива объектов {feature, status}.

last_session_at
string<date-time> | null

Временная метка последней сессии

first_session_at
string<date-time> | null

Временная метка первой сессии

last_activity_at
string<date-time> | null

Временная метка последней активности по этому пользователю (сессия, транзакция, смена статуса, редактирование данных и т. д.).

tags
object[]

Назначения тегов. ПРИМЕЧАНИЕ: в подробных ответах каждая запись представляет собой объект-связку тега ({uuid, tag: {...}, added_by_email, added_by_name, created_at}), в отличие от плоской структуры {uuid, name, color}, используемой в ответах со списком.

created_at
string<date-time>
metadata
object

JSON с пользовательскими метаданными, прикреплённый вами к этому пользователю. По умолчанию: {}.

comments
object[]

Журнал действий и комментарии по этому пользователю (изменения статуса, правки профиля, ручные заметки).

updated_at
string<date-time>
Последнее изменение 7 ноября 2026 г.