# Защита от фрода: работа с risk score в Stripe

> 🛡️ Практические рекомендации, как использовать оценку риска Stripe (risk score), чтобы защитить выдачу товара от оплат крадеными картами. По смежным темам:
>
> * Что EasyPay делает против фрода на своей стороне — [Что делать, если у вас хай-риск продукт?](https://docs.thenextgen.store/s/635a43c1-37fa-463b-bc7e-7ede7884fce2/doc/chto-delat-esli-u-vas-haj-risk-produkt-iz6C33qYOE).
> * Где взять risk score платежа — [Webhook EasyPay: структура данных платежей Stripe](https://docs.thenextgen.store/s/635a43c1-37fa-463b-bc7e-7ede7884fce2/doc/webhook-easypay-struktura-dannyh-platezhej-stripe-2aK80hyqzo).
> * Что происходит при диспуте — [Возвраты, отмены подписок и chargeback'и](https://docs.thenextgen.store/s/635a43c1-37fa-463b-bc7e-7ede7884fce2/doc/vozvraty-otmeny-podpisok-i-chargebacki-A3RrY2KDAG).

## Контекст

### Зачем это нужно

Мошенники покупают цифровые товары украденными картами. Через 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` — сработало правило Radar
* `Stripe 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](https://docs.thenextgen.store/s/635a43c1-37fa-463b-bc7e-7ede7884fce2/doc/webhook-easypay-struktura-dannyh-platezhej-stripe-2aK80hyqzo). Те же объекты можно получить по запросу через [Endpoint: Получение платёжных объектов Stripe](https://docs.thenextgen.store/s/635a43c1-37fa-463b-bc7e-7ede7884fce2/doc/endpoint-poluchenie-platyozhnyh-obuektov-stripe-tu4gaOUuSJ).

| Что нужно | Путь |
|-----------|------|
| Имя пользователя | `Charge → billing_details → name` |
| Email     | `Charge → billing_details → email` |
| Оценка риска | `Charge → outcome → risk_score` |
| Страна карты | `Charge → payment_method_details → card → country` |
| Последние 4 цифры | `Charge → payment_method_details → card → last4` |
| Статус 3D Secure | `Charge → payment_method_details → card → three_d_secure` |
| Причина отклонения | `Charge → outcome → seller_message` |


---

## Итого: алгоритм действия


1. Добавить автоматическую блокировку выдачи товара на 24 часа: платежи с risk_score > 39 или risk_score > 19 из нетипичной страны.
2. Предоставить поддержке данные: заблокированные платежи, неуспешные платежи с причинами, успешные платежи с предположительно украденных карт.
3. Поддержка принимает решение — выдать товар или сделать рефанд.


---

## Роль EasyPay

EasyPay предоставляет инструменты для реализации описанной логики и делится практикой, накопленной на аналогичных кейсах. Конкретные пороги, правила и решения остаются на стороне партнёра.