Реализация KYC/KYB проверки в мобильном приложении
KYC (Know Your Customer) и KYB (Know Your Business) — это не просто «загрузить фото паспорта». Это комплекс технических и регуляторных требований: верификация личности, liveness detection, проверка по санкционным спискам, AML-скрининг, хранение и аудит данных. Мобильное приложение — точка сбора данных и orchestration процесса. Мы реализуем KYC/KYB под ключ: интегрируем SDK, настраиваем backend, обрабатываем все статусы верификации. Сроки — от 15 рабочих дней. Ошибки здесь стоят дорого — отзыв лицензии или штрафы регулятора. Наша команда имеет 5+ лет опыта и реализовала 50+ проектов с KYC-интеграцией. Закажите консультацию для оценки вашего проекта.
Как выбрать провайдера KYC?
Самостоятельная реализация KYC — редкость. Процессинг документов, liveness detection с защитой от атак (фотографии, deepfake video, 3D-маски), проверка по санкционным спискам (OFAC, EU, UN) — это отдельный продукт, требующий нескольких лет разработки и постоянных обновлений. Интеграция готового SDK обходится в разы дешевле самостоятельной разработки, экономя бюджет проекта.
На рынке зрелые SDK: Onfido, Jumio, Sumsub, IDnow, Veriff, Stripe Identity. Выбор зависит от географии пользователей, типа документов, требований регулятора и ценовой модели. Мы интегрируем SDK провайдера в мобильное приложение, настраиваем серверный webhook, строим UI flow и обрабатываем все состояния верификации. Обратитесь к нам — мы поможем выбрать оптимального провайдера.
| Провайдер | Liveness | Документов (стран) | KYB | Enterprise-защита |
|---|---|---|---|---|
| Onfido | Passive | 195 | Есть | Deepfake, 3D-маски |
| Jumio | Active | 200+ | Есть | Deepfake, 3D-маски |
| Sumsub | Passive | 220+ | Есть | Deepfake (enterprise) |
Интеграция Sumsub как пример
Sumsub — популярный выбор для СНГ и Европы. SDK для iOS (SumSubSDK) и Android (com.sumsub.sns:core).
Общий flow:
- Backend создаёт applicant через Sumsub API:
POST /resources/applicantsсexternalUserId. - Backend генерирует access token для SDK:
POST /resources/accessTokensсapplicantIdиlevelName. - Мобильное приложение получает access token от вашего backend.
- SDK запускается с этим токеном.
// iOS import IdensicMobileSDK let sdk = SNSMobileSDK.init( accessToken: receivedToken, baseUrl: "https://api.sumsub.com", flowName: "basic-kyc", locale: "ru" ) sdk.onStatusDidChange = { sdk, prevStatus in switch sdk.status { case .ready: break case .incomplete: self.handleIncomplete() case .pending: self.showPendingScreen() case .approved: self.handleApproved() case .declined: self.handleDeclined() case .failed: self.handleError(sdk.failReason) @unknown default: break } } sdk.present(from: self) // Android val sdk = SNSMobileSDK.Builder(this) .withAccessToken(token, onTokenExpiration = { callback -> viewModel.refreshApplicantToken { newToken -> callback(newToken) } }) .withLocale(Locale("ru")) .build() sdk.launch() Обработчик onTokenExpiration важен: токен живёт 10 минут. Если пользователь завис на фото-шаге дольше — SDK вызовет callback и ждёт обновлённый токен.
Как работает liveness detection?
Современный liveness detection — passive (пользователь смотрит в камеру) или active (моргнуть, повернуть голову). Passive работает на ML-моделях, активный — на motion detection.
Требования к камере: минимум 720p, автофокус. Слабое освещение — частая причина failure. SDK предоставляют real-time feedback: "Улучшите освещение", "Держите телефон ровнее".
Атаки на liveness:
- Фотография — базовая защита во всех SDK.
- Видео replay — более сложная защита.
- 3D-маски — защищают SDK класса enterprise (Jumio, Onfido).
- DeepFake — активная область разработки, не все SDK защищают.
Защита от DeepFake: подробнее
DeepFake атаки используют нейросети для генерации реалистичного видео. Защита основана на анализе микроэкспрессий, артефактов сжатия и неравномерности освещения. Ведущие провайдеры внедряют passive liveness с детекцией DeepFake в enterprise-решениях.Сканирование документов
Все SDK поддерживают автоматический capture: детектируют края документа, проверяют blur, отражения, читаемость. Пользователь не нажимает кнопку — SDK сам делает снимок при достижении порога качества. Это критично: ручной capture даёт 30–40% плохих снимков, автоматический — 5–8%. Автоматический захват лучше ручного в 2 раза по качеству.
Поддерживаемые документы зависят от SDK и региона. Sumsub покрывает 220+ стран. Onfido — 195. У каждого SDK есть database поддерживаемых документов.
MRZ (Machine Readable Zone) — нижняя полоса паспорта с зашифрованными данными. SDK извлекает данные из MRZ и сравнивает с визуальной зоной — extra validation.
KYB: верификация бизнеса
KYB сложнее KYC: нужны регистрационные документы компании, подтверждение адреса (утилитный счёт не старше 3 месяцев), KYC бенефициарных владельцев (UBO — beneficial owners с долей от 25%).
Sumsub Business Verification и Jumio KYB поддерживают KYB flow с wizard для сбора документов. Особенность: каждый UBO проходит полный KYC отдельно. Если у компании три бенефициара — три KYC-проверки, которые могут проходить асинхронно.
Мобильное приложение должно поддерживать этот асинхронный flow: пользователь отправил документы компании, сейчас ожидает верификацию UBO-1, UBO-2 в процессе, UBO-3 ещё не начал. Строим status dashboard с прогрессом по каждому участнику.
Webhooks и polling
Верификация — асинхронный процесс (от минут до дней при ручной проверке). После сабмита документов SDK сообщает статус pending. Реальный результат приходит через webhook на ваш backend.
Backend принимает webhook (applicantReviewed, applicantPending), обновляет статус пользователя в базе, отправляет push notification в мобильное приложение.
Мобильное приложение показывает статус "На проверке" с анимацией. Polling каждые 30–60 секунд — резервный механизм.
Хранение и соответствие GDPR
Изображения документов не хранятся на наших серверах — только у провайдера KYC. Мы храним только applicantId, статус и дату проверки. Права пользователя на удаление данных (GDPR Article 17) реализуем через API провайдера: DELETE /resources/applicants/{applicantId}.
Согласно GDPR, пользователи имеют право на удаление персональных данных. Мы обеспечиваем compliance через API провайдеров.
Retention policy: большинство провайдеров хранят данные 5–7 лет (требования AML/FATF). При удалении из провайдера мы задокументируем, что данные удалены — для аудита регулятора.
Что входит в работу
- Документация по интеграции (Sequence diagram, описание flow)
- Доступы к тестовой среде провайдера
- Обучение команды продукта
- Техническая поддержка на этапе запуска
- Аудит безопасности и соответствия регулятору
Этапы работы
| Этап | Длительность |
|---|---|
| Анализ требований и выбор провайдера | 2–3 дня |
| Backend интеграция (applicant, token, webhooks) | 5–7 дней |
| Mobile SDK интеграция | 5–7 дней |
| UI flow и обработка статусов | 3–5 дней |
| Тестирование на реальных документах в sandbox | 3–5 дней |
| Security review и подготовка к аудиту | 2–3 дня |
Срок: 15–25 рабочих дней. Зависит от провайдера, требований регулятора, наличия KYB-компонента.
Серверная часть (webhook handling, AML integration, audit trail) — оценивается отдельно с backend командой. Стоимость интеграции рассчитывается индивидуально; правильный выбор провайдера позволяет сократить затраты на поддержку.
Для консультации и оценки вашего проекта свяжитесь с нами. Мы оценим задачу в течение 1 рабочего дня.







