Реалізація 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 робочого дня.







