Logo GH

AVS/CVV проверки и фрод-сигналы

1) Зачем AVS/CVV в iGaming

AVS (Address Verification Service) и CVV/CVC — базовые контроли card-not-present, которые:
  • уменьшают риск фрода/чарджбеков по «No Auth»/«Fraud»,
  • повышают доверие эмитента при первичных CIT,
  • помогают отсеивать ботов/дропы до 3DS-челленджа,
  • дает данные для policy-based роутинга и скоринга.

Важно: AVS/CVV не заменяют 3DS2/SCA и токенизацию, но хорошо работают вместе.

2) Как это работает (в общих чертах)

AVS: сравнение биллингового адреса клиента (улица, индекс, иногда город/штат) с адресом у эмитента. Возвращается код (match/partial/no match/unsupported).
CVV: проверка кода на карте; возвращается match / no match / not processed / issuer not certified.
Оба результата приходят в ответе авторизации от PSP/эквайера (или в отдельных полях вебхуков) и должны логироваться без PAN, связываться с `payment_id`.

3) Коды AVS (сводная логика принятия решений)

Коды различаются между схемами и PSP, но практическая нормализация выглядит так:
  • Полное совпадение: `Y` (улица + индекс) → сильный позитивный сигнал.
  • Частичное совпадение: `A` (улица ок, индекс нет), `Z` (индекс ок, улица нет), `W/X` (9-/5-значный ZIP), `D/M` (международные совпадения) → умеренно позитивный.
  • Нет совпадения: `N` → негативный сигнал; возможен отказ или усиленная проверка/3DS.
  • Недоступно/не применимо: `U` (issuer unavailable), `R` (retry), `S` (AVS not supported), `G` (international not supported) → нейтральный/слабонегативный, решение зависит от контекста.
Рекомендации по политике:
  • Высокорисковые рынки/карты: требовать ≥ частичного совпадения либо 3DS-challenge по умолчанию.
  • Низкорисковые клиенты с историей: смягчать до допуска «partial match» без челленджа.
  • Для подписок (MIT): AVS полезен на initial CIT; далее опирайтесь на 3DS-артефакты/токены и историю.

4) Коды CVV/CVC (нормализация)

Match: `M` — сильный позитивный фактор (особенно для первичной записи карты).
No Match: `N` — сильный негатив; рекомендуется отказ или обязательный 3DS-challenge.
Not processed/Not present: `P`/`S` — слабонегативный, см. контекст (иногда эмитент не поддерживает или поле потеряно).
Issuer not certified/Unavailable: `U` — нейтральный/слабонегативный.

Практика:
  • Для CIT с `CVV=N` — обычно отклонять (или отправлять в 3DS-challenge и проверку).
  • Для MIT (повторы) CVV не запрашивается; полагайтесь на связь с initial CIT.

5) Связка AVS/CVV ↔ 3DS/SCA и network-токены

3DS2 с успешным результатом (ECI/CAVV) обеспечивает liability shift (в рамках правил), что уменьшает значимость AVS/CVV как «обязательного» барьера, но:
  • AVS/CVV снижают риск челленджа и повышают шанс frictionless.
  • При `AVS=N` и/или `CVV=N` — разумно насильно инициировать 3DS.
  • Network tokens (VTS/MDES/NSPK) и VAU/ABU повышают AR и LTV; вместе с AVS/CVV дают лучшую картину риска на initial CIT.

6) Фрод-сигналы: что собирать и как использовать

Технические/контекстные сигналы:
  • Device fingerprint (canvas/webgl/audio, шрифты, timezone, lang).
  • Velocity: попытки оплаты за окно (по карте/аккаунту/устройству/IP/BIN).
  • Гео-согласованность: IP-страна vs BIN-страна vs биллинг vs язык/валюта.
  • Поведенческие паттерны: скорость ввода, фокус полей, копипаст, ошибки CVV.
  • История аккаунта: возраст, AHT игровых сессий, KYC-статус, возвраты.
  • Платежные атрибуты: MCC 7995, тип карты (prepaid/debit/credit), эмитентский риск.
  • 3DS-метаданные: method completion, dsTransID, частота челленджей у эмитента.
Правила:
  • Стройте композитный риск-скор (0–100) с весами: CVV, AVS, device, geo, velocity, 3DS-история.
Пороговая логика:
  • `score ≤ T1` → frictionless (если доступно);
  • `T1 < score ≤ T2` → challenge (3DS);
  • `score > T2` → decline или ручная проверка/альтернатива.

7) Матрица решений (пример для оркестратора)

УсловиеДействиеПримечание
CVV=M и AVS=YПродолжить без челленджа (если риск-скор низкий)Наилучший сценарий
CVV=M и AVS=partial (A/Z/W/M)Разрешить; 3DS по риску/сумме/геоКомбинируйте с device/velocity
CVV=NОтклонить или 3DS-challenge (если политика позволяет)Для CIT почти всегда отказ
AVS=N (CVV=M)Включить 3DS; при soft-decline → повторВозможны честные mismatch (междунар.)
AVS=U/S/G/RРешение по скору и BIN-странеНе карать там, где AVS системно не работает
Высокий velocity/несогласованный GEO3DS + усиленная антифрод-проверкаВозможен роутинг к PSP с лучшим AR по BIN

8) Ретраи и UX-паттерны

CVV-ошибка (N): покажите понятное сообщение «Проверьте код на карте», очистите только поле CVV, не заставляйте вводить все заново.
AVS-несовпадение: предложите проверить индекс/улицу, дайте подсказки формата (ZIP-5/ZIP-9).
Soft-decline/SCA: автоматический повтор с 3DS, без повторного ввода карты.
Velocity-блок: короткий «cool-down» с таймером и советом использовать другой метод.
Альтернативы: A2A (банковские переводы), локальные кошельки по рынку.

9) Data & схемы хранения (минимум полей)

Храните только безопасные метаданные, без PAN/CVV:
  • `payment_id`, `psp_txn_id`, `token_id`, `bin`, `last4`, `scheme`, `issuer_country`
  • `avs_result_normalized` ∈ {Y, PARTIAL, N, NA}
  • `cvv_result_normalized` ∈ {M, N, NA}
  • `risk_score`, `velocity_bucket`, `device_id`, `ip_country`, `bill_country`
  • `threeDS`:{`version`, `eci`, `cavv`?, `method_done`:bool, `challenge`:bool}
  • `decision` ∈ {approve, challenge, decline}, `reason`
  • `route` (PSP_A/B), `was_retry`:bool, timestamps

10) Метрики и наблюдаемость (KPI/SLO)

Качество и конверсия

Approval Rate по кластерам `AVS/CVV` (например, `CVV=M & AVS=Y` vs `CVV=M & AVS=partial`).
Frictionless % и Challenge success % при разных классах AVS.
Abandon rate на экранах ввода CVV/адреса.

Риск

Chargeback rate (fraud/consumer dispute) в разрезе AVS/CVV комбинаций.
Доля false positive: отказов при последующей легитимности (по апелляциям/повторам).
Soft-decline → успешный повтор (после 3DS).

Техника

Latency AVS/CVV проверки (p95) и доля `U/S/G` (недоступно).
Спайки по `CVV=N`, `AVS=N` (алерты) в разрезе BIN/эмитента/PSP.

11) Анти-паттерны

Трактовать `AVS=U/S/G` как жесткий отказ на международных BIN — потеря конверсии.
Требовать AVS в странах/банках, где он системно не поддерживается.
Логировать сырые адреса без маскировки и без целей — риск утечек/PII.
Хард-отклонять `CVV=N` без анализа частоты ошибки ввода (возможен честный мис-тайп).
Игнорировать 3DS-артефакты и историю клиента при частичных совпадениях AVS.

12) Чек-лист внедрения

  • Нормализованный словарь кодов AVS/CVV по схемам/PSP.
  • Политики принятия решений (approve/challenge/decline) по комбинациям.
  • Интеграция с 3DS2: автопереход в challenge при негативных AVS/CVV.
  • Скоринг риска: device, geo, velocity, история клиента, BIN-политики.
  • UX-шаблоны ошибок (локализация, сохранение введенных полей).
  • Дэшборды KPI и алерты по всплескам `N`/`U/S/G`.
  • PAN-safe: hosted fields/iframe, токенизация; в логи — только метаданные.
  • A/B-тесты порогов (T1/T2) и правил по рынкам/эмитентам.
  • Плейбуки ретраев/soft-decline и альтернативных методов оплаты.
  • Политики хранения адресов/PII (GDPR/DSR), маскирование, минимизация.

13) Пример политик по рынкам (эскиз)

США/Канада (AVS силен): `AVS=Y` или `partial + 3DS/низкий риск`; `AVS=N` → challenge/decline.
ЕС (PSD2): упор на 3DS2 (frictionless где можно); AVS — сигнал для скоринга.
Международные рынки с ограниченной поддержкой AVS: опора на 3DS + device/geo/velocity; `AVS=U/S/G` — нейтрально.

14) Резюме

AVS/CVV — это «первые фильтры» в CNP-платежах. Они должны работать в связке с 3DS2, токенизацией и риск-скорингом, а решения — приниматься по контексту, а не по одному коду. Нормализуйте ответы, стройте скоринг, автоматизируйте переход в 3DS, аккуратно обращайтесь с адресами/PII и измеряйте результат метриками. Так вы снизите фрод и чарджбеки, не убивая конверсию.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.