...

Верификация пользователей на сайте и в приложении

KYC на сайте и в приложении без своего интерфейса съёмки: виджет NeuroVision проводит пользователя по шагам — документ, селфи, проверки — и отправляет результат на ваш сервер. Подключите его скриптом или npm-пакетом, отправьте клиенту уникальную ссылку или постройте свой интерфейс на API. В мобильном приложении виджет работает через WebView.

3 способа встроить проверку: виджет, ссылка или API
до 6 бесплатных попыток съёмки на каждый шаг
1 000 одноразовых KYC-ссылок за один раз
iOS и Android мобильные браузеры и WebView приложений
Данные хранятся в России Реестр российского ПО № 19972 Виджет и кастомизация — во всех пакетах

KYC на сайте и в приложении: что вы встраиваете в свой продукт

Проверка личности онлайн на сайте — это не одна кнопка, а готовый фрагмент продукта: экраны съёмки, проверка снимков, антифрод и передача итога на ваш сервер. Всё это вы получаете целиком и настраиваете без релиза.

  • Готовые экраны съёмки

    Инструкция, рамка для документа, подсказки при ошибке и экран завершения уже свёрстаны и работают на компьютере и смартфоне. Вам не нужно разрабатывать интерфейс камеры.

    Как это выглядит
  • Сценарий без релиза

    Шаги, типы документов, страны и проверки задаются в редакторе сценария личного кабинета. Поменяли сценарий — виджет на сайте сразу работает по-новому.

    KYC и AML: инструкция
  • Проверки внутри

    Распознавание 16 000+ типов документов из 195+ стран и территорий, антифрод-проверки изображения: следы редактора, фото с экрана, распечатка. Селфи и проверка живости — если включены в сценарии.

    Антифрод
  • Итог — на ваш сервер

    Результат приходит вебхуком на адрес вашего бэкенда и доступен по запросу статуса. Браузер получает только событие о завершении.

    События и вебхук
  • Ваш бренд и язык

    Логотип, цвета, тексты экранов и языки интерфейса настраиваются в редакторе и входят во все пакеты.

    Кастомизация
  • Сайт, браузер, приложение

    Один и тот же виджет работает на сайте, в мобильном браузере и в приложении — через WebView или встроенный браузер. Нативных SDK для iOS и Android нет.

    WebView и приложение

Виджет, уникальная ссылка или свой интерфейс через API

Три способа встроить проверку ведут к одному результату — KYC-сессии с тем же JSON и тем же вебхуком. Разница в том, сколько кода вы пишете и кто рисует экраны съёмки. Способы можно совмещать: на сайте — виджет, в рассылке — ссылка.

  • Уникальная ссылка

    Проверка без интеграции: клиент открывает ссылку и проходит шаги на странице NeuroVision

    Верификация по ссылке

    Как подключается

    • ссылка kyc.neuro-vision.ru/<ID сценария>/<зашифрованный clientKey> собирается на вашем сервере; одноразовые KYC-ссылки создаются в личном кабинете — от 1 до 1 000 за раз, со сроком жизни

    Что делает ваша команда

    • отправляет ссылку в письме, SMS или мессенджере и принимает вебхук; код на сайте не нужен

    Когда выбирать

    • пилот за день, повторная проверка клиента, проверка сотрудников и курьеров, B2B-сервисы без своего приложения

    Ограничения

    • клиент уходит со страницы вашего сервиса; оформление — то же, что у виджета
  • KYC-виджет (Web SDK)

    Готовые экраны съёмки внутри вашего сайта или приложения

    Подключение виджета

    Как подключается

    • скрипт widget-lib.js или npm-пакет kyc-widget-nv для React; поверх страницы или внутри блока (mountElementId); в приложении — WebView или встроенный браузер

    Что делает ваша команда

    • шифрует clientKey на сервере, вызывает виджет по кнопке, принимает вебхук

    Когда выбирать

    • регистрация и заявка на сайте, личный кабинет, мобильное приложение без своей камеры

    Ограничения

    • нельзя вкладывать в чужой (cross-origin) iframe — браузер заблокирует камеру; часть подсказок во время съёмки не меняется
  • Свой интерфейс через API

    Съёмку рисует ваше приложение, снимки отправляет ваш бэкенд

    REST API

    Как подключается

    • бэкенд отправляет изображения в POST /kyc/process и читает ответ или вебхук

    Что делает ваша команда

    • рисует экраны и камеру, проверяет качество кадра до отправки, обрабатывает ошибки шагов и пересъёмку

    Когда выбирать

    • съёмка уже встроена в нативное приложение, нужен полный контроль над интерфейсом, документы приходят из вашей системы

    Ограничения

    • больше разработки; как пройти проверку живости без виджета — уточняется на тестовом доступе

Как пользователь проходит проверку в виджете

Типовой сценарий «паспорт и селфи с документом» на телефоне. Шаги включаются и выключаются в сценарии, тексты экранов можно переписать под ваш продукт. Как работает проверка живости — на странице Liveness. Посмотреть проверку глазами пользователя можно в демо.

Шаг 1

Старт и язык

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

Старт проверки: QR-код для перехода на телефон и выбор языка
Шаг 2

Короткая инструкция

Виджет объясняет, что будет дальше, просит подготовить документ и найти хорошее освещение. Здесь же — ссылки на ваши условия и политику конфиденциальности.

Инструкция перед съёмкой документа в виджете
Шаг 3

Доступ к камере

Браузер спрашивает разрешение на камеру. Без него съёмка недоступна, поэтому перед запросом виджет объясняет, зачем камера нужна.

Запрос доступа к камере перед съёмкой
Шаг 4

Съёмка документа в рамке

Документ должен целиком попасть в рамку: без пальцев на полях, бликов и размытия. Для слабых устройств рамку можно сделать вертикальной или горизонтальной.

Съёмка документа в рамке
Шаг 5

Проверка снимка

Если снимок подходит, виджет подтверждает приём. Если нет — показывает, что исправить, например «поля не видны», и предлагает переснять.

Документ принят или подсказка, что исправить
Шаг 6

Селфи с документом

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

Селфи с документом в руке
Шаг 7

Завершение

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

Проверка завершена: результат отправлен в сервис

Виджет верификации для сайта: скрипт, npm-пакет или ссылка

Web SDK верификации подключается за несколько строк. Нужны два значения: идентификатор сценария из личного кабинета и зашифрованный на вашем сервере clientKey.

Скрипт на сайте

Загрузите widget-lib.js и вызовите window.KYCWidget.setupKYC({...}) по кнопке. Виджет откроется поверх страницы или внутри вашего блока, если указать mountElementId и задать блоку размеры. Пример — ниже.

Подключение виджета

Что понадобится

  • Сценарий и его ID — в разделе «KYC/AML» личного кабинета
  • Секретный ключ сценария — только на вашем сервере
  • Сайт — по HTTPS
  • Адрес бэкенда для вебхука
  • Тестовый период 1 месяц

Подключение виджета на страницу

HTML
<button id="verify-btn" disabled>Загрузка…</button>
<script>
  const btn = document.getElementById("verify-btn");
  const script = document.createElement("script");
  script.src = "https://kyc.neuro-vision.ru/lib/widget-lib.js";
  script.onload = () => {
    btn.disabled = false;
    btn.textContent = "Пройти проверку";
  };
  document.body.appendChild(script);

  btn.addEventListener("click", () => {
    window.KYCWidget.setupKYC({
      scenarioId: "b7e4c1d2-0a9f-4e3b-8c5d-6f1a2e3b4c5d", // ID сценария (пример)
      clientKey: "q8Zt3kVf2mN9wX1yR4pL0sA7bC6dE5gHjK2lM3nP4rS=", // зашифрован на сервере
      clientUser: "user-000123",
      theme: "light",
      stickySession: true,
      successCb: (sessionJson) => {
        const { sessionId, status } = JSON.parse(sessionJson);
        console.log("Сессия завершена:", sessionId, status);
        // решение принимает бэкенд — по вебхуку или запросу статуса
      },
      finalizedCb: ({ status }) => console.log("Уже пройдена:", status),
      closeCb: () => console.log("Виджет закрыт"),
    });
  });
</script>

Уникальная ссылка на проверку

URL
https://kyc.neuro-vision.ru/<ID сценария>/<зашифрованный clientKey>
https://kyc.neuro-vision.ru/<ID сценария>/<зашифрованный clientKey>/<clientUser>

Пример (вымышленные значения):
https://kyc.neuro-vision.ru/b7e4c1d2-0a9f-4e3b-8c5d-6f1a2e3b4c5d/q8Zt3kVf2mN9wX1yR4pL0sA7bC6dE5gHjK2lM3nP4rS%3D/user-000123

Зашифрованный ключ — строка Base64: в ссылке её нужно URL-кодировать (= → %3D, / → %2F, + → %2B). Как зашифровать clientKey на сервере, все параметры виджета и пример для React — в документации: подключение, параметры, работа с clientKey.

Проверка личности в приложении: WebView, встроенный браузер и камера

Нативных SDK для iOS и Android нет — и для верификации пользователя в мобильном приложении они не обязательны. Виджет адаптивный и работает с камерой смартфона, поэтому KYC для мобильного приложения подключают через WebView или встроенный браузер. Ниже — что настроить, чтобы камера открылась.

  • Разрешение CAMERA в манифесте и запрос у пользователя во время работы
  • WebChromeClient.onPermissionRequest выдать странице доступ к камере
  • JavaScript и DOM Storage включить: виджету нужен localStorage
  • Адрес страницы только HTTPS, не file://

  • NSCameraUsageDescription текст запроса камеры в Info.plist
  • allowsInlineMediaPlayback видео камеры внутри страницы, не на весь экран
  • Решение о доступе к камере метод WKUIDelegate для запросов камеры (iOS 15+)

  • SFSafariViewController (iOS) разрешение камеры спрашивает браузер
  • Chrome Custom Tabs (Android) без своих настроек WebView
  • Ссылка или ваша страница открыть ссылку проверки или страницу с виджетом
  • Возврат в приложение URL перехода после успеха — в сценарии

  • Чужой (cross-origin) iframe браузер блокирует камеру, виджет вызовет closeCb
  • setupKYC внутри closeCb повторный запуск зациклится
  • Решение по successCb итог проверять на бэкенде
  • Один WebView на несколько клиентов «липкая» сессия держит ключ 15 минут
  • Настройки WebView в документации NeuroVision не описаны: это общие требования Android и iOS к доступу страницы к камере. Проверьте их в своём приложении на тестовом доступе. Встроенный браузер — самый простой путь: разрешения камеры он берёт на себя.

События виджета и вебхук: как результат попадает в вашу систему

  • На фронтенде: колбэки

    successCb — вызывается только при успешном итоге; приходит JSON-строка с sessionId, статусом и шагами.

    closeCb — пользователь закрыл виджет или браузер заблокировал камеру.

    finalizedCb — виджет открыли для сессии, которая уже завершена: приходит её статус.

    Используйте колбэки, чтобы закрыть окно и показать «Мы проверяем данные».

  • На бэкенде: вебхук

    Адрес — Backend Callback URL в настройках сценария.

    Шифрование — тело POST шифруется секретным ключом.

    Без персональных данных — флаг оставляет в уведомлении только статусы, данные бэкенд забирает сам по sessionId.

    Только итог — без промежуточных статусов. Проверки по базам можно получать по мере готовности.

  • Итог сессии

    success — все шаги и проверки пройдены.

    failed — хотя бы один шаг или проверка не пройдены, причина — в ошибках шага.

    suspicious — признаки мошенничества, кадры в такую сессию больше не слать.

    idle — пользователь не закончил.

    expired — истекло время жизни сессии из сценария.

Связать проверку с вашим пользователем помогает clientKey: вы задаёте его сами (ID пользователя или заявки), и в вебхуке и запросе статуса приходит именно это значение. Формат вебхука, методы статуса и коды ошибок — на странице API и SDK для верификации.

Кастомизация виджета: логотип, цвета, тексты и языки

Оформление — во всех пакетах

Пользователь должен понимать, что проходит проверку в вашем сервисе. Оформление настраивается в редакторе сценария с живым превью — без кода и без релиза. Кастомизация входит в стоимость KYC-сессии: отдельно её не оплачивают.

  • 01

    Логотип и тема

    Светлая или тёмная тема и отдельный логотип для каждой — лучше SVG или PNG с прозрачным фоном. Тему можно переопределить при запуске параметром theme. Ссылки на ваши условия и политику конфиденциальности выводятся на стартовом экране.

  • 02

    Цвета

    Фоны, основной и вторичный текст, акцентный цвет, цвета успеха и ошибки, лоадер, тени, границы, главная и вторичная кнопки. Проверяйте контраст текста и кнопок во всех состояниях — ориентир WCAG 2.1 AA.

  • 03

    Тексты экранов

    Заголовок, пункты инструкции, согласие на обработку персональных данных, подписи к QR-коду, подсказки по съёмке, экраны успеха, отказа, повтора и исчерпанных попыток. Не меняются подсказки во время съёмки и проверки живости, серверные ошибки, названия стран и документов.

  • 04

    Языки

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

  • 2 логотипа: для светлой и тёмной темы
  • 6+ языков интерфейса на выбор
  • 0 строк кода, чтобы поменять тексты

Мобильный UX: подсказки, рамка, пересъёмка и попытки

Большинство пользователей проходит проверку с телефона, в спешке и при плохом свете. Виджет сделан так, чтобы ошибка снимка не превращалась в брошенную заявку. Как выстроить весь путь клиента — от регистрации до решения — на странице «Цифровой онбординг клиентов».

  • С компьютера — на телефон

    Если на компьютере нет камеры или съёмка с ПК отключена, виджет показывает QR-код и ссылку: пользователь продолжает на смартфоне. Включить съёмку на компьютере можно в настройках.

  • Подсказка до съёмки

    Перед камерой — короткий экран: достать документ из обложки, положить на ровную поверхность, держать телефон вертикально. Тексты подсказок вы пишете сами.

  • Рамка под документ

    Документ снимается в рамке. Для слабых устройств рамку можно сделать вертикальной или горизонтальной — так проще попасть в кадр.

  • Понятная причина отказа

    Если поля не читаются, лицо обрезано или в кадре не документ, виджет говорит, что исправить, а не просто «ошибка». Переснимается только тот шаг, где возникла проблема.

    Почему переснимают документы
  • До 6 попыток на шаг

    На каждый шаг сценария — до 6 бесплатных попыток съёмки. После последней неудачной попытки сессия закрывается, а виджет показывает экран исчерпанных попыток.

    Ошибки KYC
  • Прервался — вернулся

    С включённой «липкой» сессией пользователь, который закрыл виджет, за 15 минут продолжит ту же проверку, а не начнёт заново. Завершённую сессию виджет повторно не открывает — показывает её итог.

    KYC-воронка

Требования к браузеру, камере и снимкам

  • Браузер и сайт

    Виджет работает в современных браузерах на компьютере и смартфоне — iOS и Android. Страница с виджетом должна открываться по HTTPS: без защищённого соединения браузер не даст доступ к камере.

  • Камера

    Камера нужна на шагах съёмки. Для селфи и проверки живости она обязательна, документ можно загрузить файлом, только если сценарий это разрешает и антифрод для вас не критичен. Мы советуем снимать камерой в виджете — так меньше риск подмены.

  • Снимки

    Принимаются JPEG и PNG. Документ — не меньше 200 пикселей по большей стороне, лицо — от 30×30 пикселей. Без бликов, сильного сжатия и обрезанных краёв; файлы HEIC, WEBP и PDF отклоняются — это важно для своего интерфейса.

Список распознаваемых документов — в документации: 16 000+ типов из 195+ стран и территорий.

Словарь: термины встраивания проверки

Слова, которые встречаются в документации Web SDK и в разговоре с разработчиками.

Web SDK (KYC-виджет)
Готовый JavaScript-компонент NeuroVision, который показывает пользователю шаги проверки и отправляет снимки в сервис. Подключается скриптом widget-lib.js или npm-пакетом kyc-widget-nv.
Web SDK
Сценарий
Набор шагов и правил проверки: документы, страны, антифрод, селфи, вебхук. Создаётся в редакторе личного кабинета, его ID передаётся в виджет как scenarioId.
Scenario
clientKey
Ваш идентификатор пользователя или заявки, до 36 символов. В виджет передаётся зашифрованным, в API и вебхуке возвращается в исходном виде.
clientUser
Необязательный ID пользователя, не обязательно уникальный. По нему находят все попытки одного человека и удаляют его данные.
Секретный ключ сценария
Ключ из личного кабинета, которым шифруют clientKey и тело вебхука. Хранится только на сервере.
Scenario secret key
KYC-ссылка
Ссылка на прохождение проверки на странице kyc.neuro-vision.ru. Собирается на сервере или создаётся в личном кабинете как одноразовая.
WebView
Компонент мобильного приложения, который показывает веб-страницу внутри приложения. Чтобы виджет получил камеру, приложение выдаёт странице разрешение.
WebView / WKWebView
Cross-origin iframe
Встроенный фрейм с чужого домена. Браузер не даёт такому фрейму камеру, поэтому виджет в нём не работает.
Колбэк
Функция на вашей странице, которую виджет вызывает при событии: завершение, закрытие, повторное открытие завершённой сессии.
Callback
Вебхук
Уведомление, которое сервис отправляет на адрес вашего сервера, когда сессия меняет статус или завершается.
Webhook
Липкая сессия
Режим, при котором виджет 15 минут помнит сессию и продолжает её при повторном открытии.
Sticky session
Пересъёмка
Повторная съёмка только тех шагов, которые не прошли сверку; их номера приходят в поле retake.
Retake

Сколько стоит проверка через виджет

Виджет, уникальная ссылка и кастомизация интерфейса входят во все пакеты — вы платите за KYC-сессию, а не за подключение. Распознавание документа с антифрод-проверками — от 16 ₽ за сессию, документ с селфи или проверкой живости — от 29 ₽. В сессию входят все шаги сценария и до 6 бесплатных попыток съёмки на шаг. Дополнительный документ в той же сессии — 10 ₽.

Рассчитать стоимость
  • 01

    От 16 ₽ за сессию: документ и антифрод-проверки

  • 02

    От 29 ₽: документ с селфи или проверкой живости

  • 03

    Виджет, ссылка и кастомизация — во всех пакетах

Фонд содействия инновациям

Проект «Разработка мультимодальной системы с применением искусственного интеллекта "Neuromed" для управления диагностическими процессами клиники на базе платформы компьютерного зрения "Нейровижн"» поддержан Фондом содействия инновациям в рамках реализации федерального проекта «Отечественные решения»

Частые вопросы о верификации на сайте и в приложении

Подключите скрипт widget-lib.js и вызовите виджет по кнопке, передав ID сценария и зашифрованный на сервере clientKey. Для React есть npm-пакет kyc-widget-nv. Если код писать не хочется, отправьте клиенту уникальную ссылку на проверку.

Виджет собирает и проверяет данные: распознаёт документ, проверяет снимки на подделку и, если это включено в сценарии, сравнивает селфи с фото в документе. Идентификация клиента в смысле 115‑ФЗ — процедура вашей организации, и решение по ней принимаете вы. NeuroVision даёт инструмент проверки, а не заменяет вашу процедуру.

Откройте виджет в WebView или во встроенном браузере приложения: виджет адаптивный и работает с камерой смартфона. В WebView нужно выдать странице доступ к камере — на Android через onPermissionRequest, на iOS через разрешение камеры и делегат WKWebView. Встроенный браузер (SFSafariViewController, Chrome Custom Tabs) спрашивает разрешение сам.

Нативных SDK для iOS и Android сейчас нет. Проверку в приложение встраивают через WebView или встроенный браузер — функции те же, что на сайте. Если нужна полностью своя камера, используйте REST API: снимки отправляет ваш бэкенд.

Виджет — готовые экраны съёмки, подсказки, пересъёмка и проверка качества кадра: вы пишете только вызов и обработку вебхука. Свой интерфейс через API даёт полный контроль над экранами, но камеру, проверку кадра и ошибки шагов вы делаете сами. Результат в обоих случаях одинаковый — KYC-сессия и вебхук.

В чужой (cross-origin) iframe — нет: браузер заблокирует камеру, и виджет закроется с вызовом closeCb. Чтобы встроить виджет в страницу, а не поверх неё, используйте параметр mountElementId — виджет займёт ваш блок.

Да, в редакторе сценария: логотип для светлой и тёмной темы, цвета фона, текста и кнопок, тексты экранов, включая экраны отказа и исчерпанных попыток, и языки интерфейса. Кастомизация входит во все пакеты. Не меняются подсказки во время съёмки, серверные ошибки и названия стран и документов.

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

Виджет покажет, что исправить, и предложит переснять только этот шаг. На каждый шаг — до 6 бесплатных попыток, после последней неудачной сессия закрывается. Как снизить число пересъёмок и брошенных проверок — на странице цифрового онбординга и в нашем блоге.

Итог приходит вебхуком на адрес вашего сервера из настроек сценария, его также можно запросить по sessionId или clientKey. Колбэк successCb в браузере вызывается только при успешном итоге, поэтому решение принимайте по данным с сервера.

В облаке NeuroVision на серверах в России или в вашем контуре, если платформа установлена у вас. Оригиналы изображений хранятся 3 месяца бесплатно, срок хранения результатов задаётся в сценарии, а вебхук можно отправлять без персональных данных. Подробнее — на странице «KYC-сервис в России».

Виджет и кастомизация входят во все пакеты: KYC-сессия с распознаванием документа и антифродом — от 16 ₽, с селфи или проверкой живости — от 29 ₽. Тестовый доступ даём на 1 месяц с личным кабинетом и документацией — оставьте заявку внизу страницы.

Не можете сформулировать запрос? Запишитесь на звонок, и наша команда свяжется с вами в удобное время

Записаться на звонок

Платформа NeuroVision — в реестре российского ПО, запись № 19972. Свидетельство Роспатента № 2023661508.

Адрес: Москва, Пресненская наб., д. 12 — деловой центр «Москва-Сити», башня «Федерация». Ближайшие станции метро — «Деловой центр» и «Международная».