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

Шахрайські транзакції в мобільних застосунках стають дедалі витонченішими, і статичні правила не встигають за ними. Ми розробляємо AI-рішення для детекції фроду в реальному часі, використовуючи машинне навчання для аналізу поведінки користувача. Наша команда реалізує проєкт під ключ — від аудиту даних до впровадження та подальшої підтримки, забезпечуючи надійний захист вашого бізнесу.

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

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

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

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

Шахрайство в фінтех не виглядає як у кіно. Це не один великий підозрілий переказ — це патерн: кілька невеликих транзакцій у нестандартний для користувача час, у нестандартній геолокації, з нестандартними отримувачами. Статичні правила («заблокувати транзакцію > 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 день.

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

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

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714