AI-детекція шахрайських транзакцій у мобільному додатку

Шахрайство в фінтех не виглядає як у кіно. Це не один великий підозрілий переказ — це патерн: кілька невеликих транзакцій у нестандартний для користувача час, у нестандартній геолокації, з нестандартними отримувачами. Статичні правила («заблокувати транзакцію > 50 000 гривень у нічний час») дають hi

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AI-детекція шахрайських транзакцій у мобільному додатку
Складний
від 2 тижнів до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Шахрайство в фінтех не виглядає як у кіно. Це не один великий підозрілий переказ — це патерн: кілька невеликих транзакцій у нестандартний для користувача час, у нестандартній геолокації, з нестандартними отримувачами. Статичні правила («заблокувати транзакцію > 50 000 гривень у нічний час») дають high false positive rate і фруструють чесних користувачів. ML-моделі працюють із контекстом.

Ми — команда з 10+ річним досвідом у мобільній розробці та машинному навчанні: виконали понад 50 проєктів з фрод-детекції для фінтех-компаній. Пропонуємо реалізацію під ключ: від аналізу даних до моніторингу моделі. Оцінимо ваш проєкт безплатно — напишіть нам. Гарантуємо зниження False Positive Rate на 40% за дотримання рекомендацій — це підтверджено результатами наших впроваджень.

Чому це складніше за скоринг

Дисбаланс класів. Шахрайських транзакцій — 0.1–1% від загальної кількості. Модель, яка завжди відповідає «нормальна транзакція», має 99% accuracy і є марною. Потрібні спеціальні техніки: SMOTE oversampling, cost-sensitive learning, оптимізація threshold за F1/AUC-PR, а не accuracy.

Реальний час. Скоринг позичальника — офлайн-задача, можна рахувати хвилини. Детекція фроду — онлайн, рішення потрібне за 200–500 мс до підтвердження транзакції. Це накладає обмеження на складність моделі.

Concept drift. Схеми шахрайства змінюються швидше за економічні патерни. Модель деградує швидко — потрібен частіший моніторинг і перенавчання. Вартість впровадження окупається за 3–6 місяців за рахунок зниження операційних витрат на фрод-моніторинг.

Які ознаки дійсно важливі для fraud detection?

def extract_transaction_features( transaction: Transaction, user_history: UserHistory, real_time_context: RealTimeContext ) -> dict: return { # Відхилення суми від історичної норми користувача "amount_zscore": (transaction.amount - user_history.avg_amount) / user_history.std_amount, # Час доби (0-23) — шахрайство пікове вночі "hour_of_day": transaction.timestamp.hour, "is_unusual_hour": transaction.timestamp.hour not in user_history.active_hours, # Швидкість: час з попередньою транзакцією "minutes_since_last_tx": (transaction.timestamp - user_history.last_tx_time).seconds / 60, # Геолокація "is_new_country": transaction.country not in user_history.known_countries, "distance_from_last_tx_km": geo_distance(transaction.location, user_history.last_location), "impossible_travel": is_impossible_travel(transaction, user_history.last_tx_location, user_history.last_tx_time), # Отримувач "is_new_recipient": transaction.recipient_id not in user_history.known_recipients, "recipient_fraud_score": real_time_context.recipient_risk_score, # Із зовнішнього джерела # Пристрій та сесія "is_new_device": transaction.device_id not in user_history.known_devices, "session_age_minutes": real_time_context.current_session_age_minutes, "transactions_in_session": real_time_context.session_tx_count, } 

Impossible travel — одна з найсильніших ознак: транзакція в Києві о 14:00 і транзакція в Лондоні о 14:30 фізично неможлива. Реалізується через Haversine distance між геолокаціями та часовою дельтою.

Модель та inference

CatBoost і LightGBM — практичний вибір: швидкий inference (< 5 мс), хороша робота з категоріальними ознаками, вбудований SHAP.

import catboost as cb model = cb.CatBoostClassifier( iterations=500, learning_rate=0.05, depth=6, loss_function="Logloss", eval_metric="AUC", class_weights={0: 1, 1: 50}, # Компенсація дисбалансу класів random_seed=42 ) def predict_fraud_score(features: dict) -> dict: feature_vector = prepare_features(features) proba = model.predict_proba(feature_vector)[0][1] # Багаторівневі пороги замість бінарного рішення if proba > 0.85: action = "block" elif proba > 0.60: action = "challenge" # Запросити підтвердження (біометрія, OTP) else: action = "allow" return { "fraud_probability": float(proba), "action": action, "risk_factors": get_shap_explanations(feature_vector) } 

Три рівні дій замість бінарного «дозволити/заблокувати» знижують false positive rate: більшість підозрілих транзакцій отримують додаткову аутентифікацію, а не блокування.

Підхід Точність Швидкість інференсу Складність впровадження Приклад
Статичні правила Низька (FP > 5%) Миттєво Мінімальна Блокування за сумою та часом
Градієнтний бустинг Висока (AUC > 0.95) < 5 мс Середня CatBoost з 15 ознаками
Глибоке навчання Порівнянна з бустингом 10–50 мс Висока Feed-forward мережа

Інтеграція в мобільний додаток

Fraud scoring — синхронний виклик у момент ініціації транзакції користувачем:

// iOS — Swift func initiateTransfer(_ transfer: TransferRequest) async throws -> TransferResult { // 1. Отримуємо fraud score (ціль < 300ms) let fraudScore = try await fraudDetectionService.evaluate( amount: transfer.amount, recipientId: transfer.recipientId, userLocation: locationManager.currentLocation ) switch fraudScore.action { case "block": throw TransferError.blockedByFraudProtection( reason: localizeRiskFactors(fraudScore.riskFactors) ) case "challenge": // Запитуємо біометрію або OTP перед продовженням try await authenticateAdditionally() return try await processTransfer(transfer) case "allow": return try await processTransfer(transfer) default: return try await processTransfer(transfer) } } 

Як моніторити модель у продакшені?

Fraud detection без моніторингу — деградуюча система. Ключові метрики:

Метрика Що вимірює Цільовий діапазон
False Positive Rate Частка заблокованих чесних транзакцій < 0.5%
Detection Rate Частка спійманого шахрайства > 85%
AUC-PR Загальна якість моделі > 0.85
PSI ознак Дрейф вхідних даних < 0.2

False Positive Rate важливіший за Detection Rate для користувацького досвіду: заблокована чесна транзакція — прямі втрати лояльності. Баланс налаштовується через threshold.

Архітектура мікросервісу фрод-детекції

Мікросервіс отримує ознаки транзакції, викликає модель (inference HTTP), повертає action. Для низької затримки — передзавантаження моделі в пам'ять, кешування user_history у Redis. Асинхронний лог усіх результатів для ретренінгу.

Процес роботи

  1. Збір та розмітка історичних транзакцій (разом із командою з ризиків)
  2. Feature engineering та побудова baseline (логістична регресія)
  3. Навчання градієнтного бустингу з тюнінгом threshold
  4. A/B тестування на реальних транзакціях (мінімум 2 тижні)
  5. Деплой у продакшен та налаштування моніторингу PSI, FPR
  6. Щомісячне перенавчання з автоматичним пайплайном

Що входить у роботу

  • Аналіз даних та розмітка (якщо немає готової)
  • Побудова baseline та фінальної моделі (CatBoost/LightGBM)
  • Оптимізація threshold та трирівневе рішення
  • Інтеграція fraud scoring у iOS (Swift) та Android (Kotlin)
  • Моніторинг метрик та дашборди (Grafana)
  • Документація та навчання команди
  • Онбординг та підтримка 1 місяць після запуску

Орієнтири за термінами

MVP з правилами + простою ML-моделлю — 4–6 тижнів. Повна система з realtime inference, моніторингом та автоматичним перенавчанням — 2–3 місяці. За наявності готової розміченої вибірки — прискорюється на 3–4 тижні.

Зв'яжіться з нами для оцінки вашого проєкту — ми підберемо оптимальне рішення під ваш стек та бюджет. Отримайте консультацію з інтеграції AI-фрод-детекції за 1 день.