Защита от фрода: работа с risk score в Stripe
🛡️ Практические рекомендации, как использовать оценку риска Stripe (risk score), чтобы защитить выдачу товара от оплат крадеными картами. По смежным темам:
Что EasyPay делает против фрода на своей стороне — Что делать, если у вас хай-риск продукт?.
Где взять risk score платежа — Webhook EasyPay: структура данных платежей Stripe.
Что происходит при диспуте — Возвраты, отмены подписок и chargeback'и.
Контекст
Зачем это нужно
Мошенники покупают цифровые товары украденными картами. Через 2-3 недели настоящий владелец карты открывает диспут, и деньги уходят обратно вместе со штрафом. Товар уже выдан — вы в минусе.
Stripe Radar оценивает каждый платёж и присваивает risk_score от 0 до 100. Чем выше — тем подозрительнее.
Задача — использовать risk_score, чтобы задержать выдачу товара при подозрительных платежах, разобраться в ситуации и принять решение: выдать или вернуть деньги.
Важно понимать
Эти рекомендации основаны на практике работы с цифровыми товарами и Stripe Radar. Они не являются гарантией защиты от фрода и требуют адаптации под конкретную бизнес-модель, географию и допустимый уровень риска.
Любая антифрод-логика — это компромисс между конверсией и риском диспутов. Ниже описан базовый консервативный подход, который можно ослаблять или усиливать по мере накопления данных.
Пороги риска для высокорисковых цифровых товаров — Stripe risk_score
0–19 — низкий риск. Выдавайте товар сразу.
20–39 — повышенный риск. Смотрите на дополнительные признаки.
40+ — высокий риск. Задержите выдачу на 24 часа.
1. Настройте правила автоматической задержки
Это первая версия. Корректируйте по мере накопления данных.
Правило 1: высокий риск
Если risk_score > 39 — задержка на 24 часа.
Правило 2: повышенный риск + нетипичная страна
Если risk_score > 19 и страна карты не входит в список ваших типичных стран — задержка на 24 часа.
Типичные страны определите по последнему месяцу: выгрузите продажи и посмотрите, из каких стран приходят ваши покупатели.
Автоматические правила служат только для временной задержки выдачи товара. Финальное решение о рефанде или выдаче всегда принимает поддержка на основе совокупности факторов.
2. Предоставьте поддержке данные для принятия решения
Чтобы за 24 часа принять решение — делать рефанд или выдавать товар — у поддержки должны быть следующие данные:
2.1 Платежи, заблокированные на 24 часа
Email и имя покупателя. Email-адреса, не соответствующие обычным пользовательским паттернам сервиса, являются дополнительным сигналом риска.
Использованные карты. Один email попал в блокировку на 24 часа с несколькими разными картами — сигнал повышенного риска, требующий дополнительной проверки.
Страна карты. Резкое появление новых стран, ранее не представленных в продажах, часто является сигналом возможной атаки. У мошенников обычно пачка карт из одной-двух локаций.
Использование 3D Secure. Если three_d_secure: null — платёж прошёл без подтверждения владельца. При диспуте по фроду ответственность на продавце, что делает превентивный рефанд более обоснованным.
2.2 Неуспешные платежи за последние 24 часа
Те же данные, что и по заблокированным платежам, плюс:
Причина неуспеха платежа. Посмотрите поле outcome → seller_message в failed-платежах:
One of your rules blocked this payment— сработало правило RadarStripe blocked this payment as too risky— Stripe заблокировал сам, без правил. Максимальный риск.
Если таких неуспешных платежей много, из тех же нетипичных стран и с тех же email — это с высокой вероятностью атака с украденными картами.
2.3 Успешные платежи с карт из 2.1
Часть оплат с украденных карт Stripe воспринимает как полностью легальные с risk_score = 0. Товар по ним будет отгружен.
Но при продолжении атаки платёжная система начинает помечать следующие платежи как проблемные. Это позволяет ретроспективно выявить ранее прошедшие платежи с тех же карт.
Экономика рефандов
При небольших чеках экономически выгоднее превентивный рефанд, чем диспут со штрафом.
Диспут по фроду = возврат суммы платежа + штраф $15 от платёжной системы.
Для платежей до $10 проактивный рефанд позволяет сохранить $15, даже если товар уже выдан.
3. Примите решение о рефанде
Если сходятся несколько признаков:
нетипичные email-адреса
много неуспешных платежей
нетипичные страны
повышенный risk_score
отсутствие 3D Secure
Мы рекомендуем вернуть деньги по всем заблокированным платежам без 3D Secure: лучше потерять продажу, чем получить диспут со штрафом.
То же касается незаблокированных платежей, если они сделаны с предположительно украденных карт, прошли без 3D Secure и их сумма до $10.
Рефанд делается через Telegram-бот EasyPay. Если вашему объёму нужна автоматизация — напишите команде заботы EasyPay, подберём решение.
Где найти данные
Все поля ниже приходят в webhook EasyPay внутри объекта Charge — структура описана в Webhook EasyPay: структура данных платежей Stripe. Те же объекты можно получить по запросу через Endpoint: Получение платёжных объектов Stripe.
Что нужно | Путь |
|---|---|
Имя пользователя |
|
| |
Оценка риска |
|
Страна карты |
|
Последние 4 цифры |
|
Статус 3D Secure |
|
Причина отклонения |
|
Итого: алгоритм действия
Добавить автоматическую блокировку выдачи товара на 24 часа: платежи с risk_score > 39 или risk_score > 19 из нетипичной страны.
Предоставить поддержке данные: заблокированные платежи, неуспешные платежи с причинами, успешные платежи с предположительно украденных карт.
Поддержка принимает решение — выдать товар или сделать рефанд.
Роль EasyPay
EasyPay предоставляет инструменты для реализации описанной логики и делится практикой, накопленной на аналогичных кейсах. Конкретные пороги, правила и решения остаются на стороне партнёра.