ВАЛИДАЦИЯ БЕЗ СЛЕДА: Энциклопедия методов проверки платёжных карт

Professor

Professional
Messages
1,477
Reaction score
1,539
Points
113

ВВЕДЕНИЕ: Почему проверка карты — это искусство​

В мире платёжных систем проверка карты на валидность — это как прощупывание льда перед тем, как на него ступить. Одно неверное движение — и лёд трескается: карта блокируется, владелец получает уведомление, а вы теряете инструмент, который мог бы пригодиться. Задача проверки карты без её «убивания» — это балансирование на грани, где нужно получить максимум информации, оставив минимум следов.

Эта статья — полное руководство по всем методам проверки платёжных карт, которые позволяют узнать о карте всё, не вызывая подозрений. Здесь вы найдёте пошаговые алгоритмы, сравнение методов, разбор типичных ошибок и способы их исправления. Материал носит исключительно образовательный характер и призван помочь специалистам по безопасности, разработчикам и фрод-аналитикам понять, как устроены механизмы валидации платёжных инструментов.

ЧАСТЬ 1. БАЗОВЫЕ МЕТОДЫ ПРОВЕРКИ (БЕЗ ОБРАЩЕНИЯ К ПЛАТЁЖНОЙ СИСТЕМЕ)​

Эти методы не оставляют следов, не требуют авторизации и не несут риска для карты. Они работают исключительно с данными, которые вы уже имеете.

Глава 1.1. Алгоритм Луна (Luhn Algorithm)​

Что это: Простейший и самый безопасный способ проверки — это проверка номера карты по алгоритму Луна. Этот алгоритм проверяет, является ли номер структурно валидным, но не подтверждает, что карта действительно существует и активна.

Как работает:
Алгоритм вычисляет контрольную сумму номера карты. Если сумма не совпадает — номер точно невалидный. Почти все номера кредитных карт генерируются с учётом этой проверки.

Пошаговое руководство:
  1. Возьмите номер карты (от 13 до 19 цифр).
  2. Удалите все пробелы и дефисы.
  3. Начиная справа, удвойте каждую вторую цифру. Если результат удвоения больше 9, вычтите 9 (или сложите цифры результата).
  4. Сложите все полученные цифры.
  5. Если сумма кратна 10 — номер структурно валиден.

Пример (карта 4532 0123 4567 8901):
  • Удваиваем каждую вторую цифру справа: 4, (5×2=10→1), 3, (2×2=4), 0, (1×2=2), 2, (3×2=6), 4, (5×2=10→1), 6, (7×2=14→5), 8, (9×2=18→9), 0, (1×2=2)
  • Сумма: 4+1+3+4+0+2+2+6+4+1+6+5+8+9+0+2 = 57
  • 57 не кратно 10 → номер невалиден.

Инструменты для проверки:
  • Библиотека card-precheck для JavaScript — выполняет проверку локально, без отправки данных на сервер.
  • Пакет checkdigit — валидирует номера с правильными алгоритмами, 100% локально, номер карты никогда не покидает ваш сервер.
  • Пакет luhncheck для Python.
  • Простые скрипты на Go, Python и других языках.

Преимущества:
  • Абсолютно безопасно — не оставляет следов
  • Мгновенная проверка
  • Не требует подключения к интернету

Ограничения:
  • Не даёт информации о балансе, статусе карты или её действительности в реальном времени
  • Проверяет только структуру, а не существование карты

Ошибки и их исправление:
ОшибкаКак проявляетсяИсправление
Учёт пробелов и дефисовАлгоритм выдаёт ошибкуВсегда удаляйте все нецифровые символы перед проверкой
Неправильный подсчёт с концаСумма не кратна 10, хотя карта валиднаВсегда начинайте удвоение с предпоследней цифры (справа налево)
Игнорирование длины номераНомер из 12 цифр считается валиднымПроверяйте длину: Visa/Mastercard — 16 цифр, Amex — 15, Discover — 16

Глава 1.2. Проверка BIN (Bank Identification Number)​

Что это: Первые 6–8 цифр карты содержат информацию о банке-эмитенте, типе карты (Visa, Mastercard и т.д.), уровне (Classic, Gold, Platinum) и стране выпуска. Эта проверка не «убивает» карту, так как не требует авторизации.

Что можно узнать:
  • Банк-эмитент
  • Платёжную систему (Visa, Mastercard, Amex, Discover, Diners Club)
  • Страну выпуска
  • Тип карты (Credit/Debit)
  • Уровень карты (Classic, Gold, Platinum, etc.)

Пошаговое руководство:
  1. Возьмите первые 6 цифр номера карты.
  2. Введите их в BIN-чекер (онлайн-сервис или API).
  3. Получите информацию:
    • Название банка
    • Страна
    • Тип карты
    • Платёжная система

Инструменты для проверки BIN:
ИнструментТипОсобенности
BIN Checker: Card Validator AppМобильное приложениеБесплатно, определяет банк, страну, тип карты и уровень риска
Credit Card BIN CheckerМобильное приложениеБыстрая идентификация карты по BIN
VCCGeneratorChrome-расширениеLuhn-проверка, BIN-детали, поддержка нескольких платёжных систем
Apify BIN LookupAPIВсесторонняя валидация BIN/IIN
BIN Checker: Card Validator App (iOS)Мобильное приложениеОпределение банка, страны и уровня риска по первым 6 цифрам

Преимущества:
  • Не оставляет следов
  • Позволяет оценить «качество» карты до любых операций
  • Помогает определить, подходит ли карта для конкретных магазинов

Ограничения:
  • Не даёт информации о балансе
  • Не проверяет, активна ли карта
  • Базы BIN могут устаревать

Ошибки и их исправление:
ОшибкаКак проявляетсяИсправление
Использование устаревшей базы BINНеверное определение банкаИспользуйте актуальные BIN-чекеры с регулярными обновлениями
Ввод неполного BINНеверный результатВсегда вводите минимум 6 цифр
Игнорирование дополнительных цифрПропуск важной информацииНекоторые сервисы используют 8 цифр для более точного определения

Глава 1.3. Проверка формата и контрольных сумм​

Что это: Проверка структуры карточных данных без отправки запроса в платёжную систему. Включает проверку длины номера, соответствие маске платёжной системы, валидность CVV и срока действия.

Пошаговое руководство:
  1. Проверьте длину номера:
    • Visa: 16 цифр (начинается с 4)
    • Mastercard: 16 цифр (начинается с 51-55, 2221-2720)
    • American Express: 15 цифр (начинается с 34 или 37)
    • Discover: 16 цифр (начинается с 6011, 622126-622925, 644-649, 65)
  2. Проверьте CVV:
    • Visa/Mastercard/Discover: 3 цифры
    • American Express: 4 цифры
  3. Проверьте срок действия:
    • Не должен быть в прошлом
    • Не должен быть слишком далёким в будущем (обычно не более 5 лет)
  4. Используйте библиотеки валидации:
    • card-precheck — проверяет формат и контрольную сумму без отправки данных
    • veridigit — проверяет структуру идентификатора (формат и контрольную сумму)
    • Flutter Cardidy — валидация номеров карт и CVV без использования регулярных выражений

Преимущества:
  • Абсолютно безопасно
  • Мгновенная проверка
  • Не требует подключения к интернету

Ограничения:
  • Проверяет только формат, а не реальное существование карты

ЧАСТЬ 2. МЕТОДЫ ПРОВЕРКИ С ОБРАЩЕНИЕМ К ПЛАТЁЖНОЙ СИСТЕМЕ (АВТОРИЗАЦИЯ)​

Эти методы уже предполагают взаимодействие с банком-эмитентом и могут оставить след в истории карты. Однако при правильной настройке они не списывают деньги.

Глава 2.1. Нулевая авторизация (Zero-Authorization / $0 Auth)​

Что это: Некоторые платёжные шлюзы поддерживают запрос на валидацию карты с суммой 0 или с флагом, указывающим, что это проверка, а не платёж.

Как работает: Отправляется авторизационный запрос на сумму $0. Банк проверяет карту и возвращает статус (валидна/невалидна), но деньги не блокируются. Это стандартная практика, которую Visa называет «Card Account Validation».

Где поддерживается:
ПлатформаПоддержкаПримечание
Basis TheoryДаТакже известна как карточная аутентификация или пре-авторизация
Juspay HyperswitchДаПозволяет валидировать платёжные данные и зарядить позже
PayPalДа«Authorizations without purchase»
Mercado PagoДа«Zero Dollar Auth» — улучшенная валидация без списания
BNP Paribas AxeptaДа0-евро авторизация для проверки карты
JudopayДа«Check Card» — нулевая пре-авторизация
CoinflowДа$0 авторизация для валидации и токенизации
UnzerДаZero-auth для проверки карты при регистрации
AdyenДаАвторизационный запрос с валютой 0
StripeДаСохранение карты через Setup Intents API

Пошаговое руководство:
  1. Выберите платёжный шлюз, поддерживающий нулевую авторизацию.
  2. Создайте запрос на авторизацию с суммой 0.
  3. Отправьте запрос в платёжную систему.
  4. Проанализируйте ответ:
    • Успешный ответ → карта валидна
    • Отказ → карта невалидна или заблокирована
  5. Не захватывайте средства — нулевая авторизация не может быть захвачена.

Преимущества:
  • Не списывает деньги
  • Проверяет реальную валидность карты
  • Может использоваться для токенизации карты

Ограничения:
  • Поддерживается не всеми эквайерами
  • Некоторые банки не поддерживают нулевые авторизации
  • Не проверяет баланс и кредитные лимиты

Ошибки и их исправление:
ОшибкаКак проявляетсяИсправление
Эквайер не поддерживает $0 авторизациюЗапрос отклоняетсяИспользуйте $1 авторизацию с отменой
Банк не поддерживает нулевую авторизациюОтказИспользуйте $1 авторизацию с отменой
Неверный формат запросаОшибка APIПроверьте документацию конкретного шлюза
Игнорирование 3DSЗапрос требует аутентификацииВнедрите редирект на 3DS, если требуется

Глава 2.2. Авторизация на $1 с отменой ($1 Auth + Void)​

Что это: Более надёжный, но чуть более «заметный» способ. Вы отправляете запрос на авторизацию суммы в $1, а затем сразу же отменяете её (Void).

Как работает: В большинстве случаев средства не списываются, а просто блокируются на короткое время. Braintree, например, сначала пытается использовать $0 авторизацию, а если она недоступна — использует $1 авторизацию и автоматически отменяет её.

Пошаговое руководство:
  1. Создайте авторизационный запрос на сумму $1 (или 1 EUR, 1 GBP и т.д.).
  2. Дождитесь ответа от платёжного шлюза.
  3. Немедленно отправьте запрос на отмену (Void).
  4. Подтвердите, что отмена прошла успешно.

Когда используется:
  • Если эквайер не поддерживает $0 авторизацию
  • Для валидации карт American Express и Discover, которые требуют реальной транзакции

Преимущества:
  • Работает с большинством эквайеров
  • Надёжно проверяет карту
  • Не списывает деньги (при правильной отмене)

Ограничения:
  • Может оставить след в истории карты
  • В редких случаях банк может не отменить авторизацию
  • Временная блокировка $1 может отображаться в выписке

Ошибки и их исправление:
ОшибкаКак проявляетсяИсправление
Отмена не выполнена$1 списанВсегда отправляйте Void сразу после успешной авторизации
Задержка отмены$1 висит в ожиданииНастройте автоматическую отмену в коде
Неправильная суммаАвторизация отклоненаИспользуйте 1 в валюте, соответствующей карте
Платёжный шлюз не поддерживает VoidНевозможно отменитьИспользуйте другой шлюз или метод

Глава 2.3. Информационный запрос (Information Request)​

Что это: Некоторые платёжные системы предлагают специальный тип запроса, который проверяет валидность карты без её дебетования.

Особенность: Сумма запроса равна 0. Если эквайер не поддерживает такие запросы, используется авторизация на €1 без захвата средств.

Пошаговое руководство:
  1. Проверьте документацию вашего платёжного шлюза на наличие «information request» или «card verification» endpoint.
  2. Создайте запрос с типом «verification» или «information».
  3. Отправьте запрос в платёжную систему.
  4. Проанализируйте ответ.

Преимущества:
  • Не оставляет следов
  • Не требует отмены

Ограничения:
  • Поддерживается не всеми шлюзами

ЧАСТЬ 3. КОСВЕННЫЕ МЕТОДЫ ПРОВЕРКИ​

Эти методы не являются прямой проверкой карты, но позволяют косвенно убедиться в её валидности.

Глава 3.1. Проверка через подписки с бесплатным пробным периодом​

Что это: Некоторые онлайн-сервисы при привязке карты для оформления бесплатного пробного периода выполняют проверку карты, но не списывают средства.

Как работает: Сервис отправляет авторизационный запрос на небольшую сумму (часто $0–$1) для проверки карты, но не захватывает средства.

Примеры сервисов:
  • Google Play
  • Hulu
  • Netflix
  • Amazon Prime (пробный период)
  • Spotify Premium (пробный период)

Пошаговое руководство:
  1. Выберите сервис с бесплатным пробным периодом.
  2. Зарегистрируйтесь и привяжите карту.
  3. Дождитесь проверки карты (обычно мгновенно).
  4. Если карта принята — она валидна.
  5. Отмените подписку до окончания пробного периода, чтобы избежать списания.

Преимущества:
  • Не требует специальных знаний
  • Не списывает деньги

Ограничения:
  • Требует регистрации
  • Может привести к списанию, если не отменить подписку вовремя
  • Не все сервисы доступны во всех странах

Ошибки и их исправление:
ОшибкаКак проявляетсяИсправление
Забыли отменить подпискуСписание средствУстановите напоминание или используйте временные карты
Сервис требует 3DSПроверка не проходитИспользуйте другой сервис без 3DS
Сервис блокирует картуПодозрительная активностьИспользуйте разные сервисы для разных карт

Глава 3.2. Проверка через платёжные шлюзы с режимом валидации​

Что это: Некоторые платёжные шлюзы предоставляют отдельные эндпоинты для валидации карт, которые не создают транзакцию.

Примеры:
  • Mangopay: «Create a Card Validation» — валидация без платежа
  • Moneris: «Card Verification» — проверка карты без выставления счёта клиенту
  • Basis Theory: «Verify a Card» — проверка карты через сети и эмитентов

Пошаговое руководство:
  1. Зарегистрируйтесь в платёжном шлюзе, поддерживающем валидацию.
  2. Получите API-ключи.
  3. Создайте запрос на валидацию карты.
  4. Проанализируйте ответ.

Преимущества:
  • Профессиональный подход
  • Не оставляет следов
  • Можно использовать для токенизации

Ограничения:
  • Требует регистрации в платёжном шлюзе
  • Может быть платным

ЧАСТЬ 4. СРАВНИТЕЛЬНАЯ ТАБЛИЦА МЕТОДОВ​

МетодСложностьРиск для картыСтоимостьИнформативностьСледы
Алгоритм ЛунаНизкаяНетБесплатноНизкая (только структура)Нет
Проверка BINНизкаяНетБесплатноСредняя (банк, страна, тип)Нет
Проверка форматаНизкаяНетБесплатноНизкая (только формат)Нет
$0 авторизацияСредняяНизкийМожет быть платнойВысокая (реальная валидность)Минимальные
$1 auth + voidСредняяНизкийМожет быть платнойВысокая (реальная валидность)Минимальные
Информационный запросСредняяНетМожет быть платнойВысокая (реальная валидность)Нет
Бесплатный пробный периодНизкаяНизкийБесплатноСредняяМинимальные
Платёжный шлюз с валидациейСредняяНетМожет быть платнойВысокаяНет

ЧАСТЬ 5. ОБЩИЕ РЕКОМЕНДАЦИИ​

5.1. Как выбрать метод проверки​

СитуацияРекомендуемый метод
Быстрая проверка структуры номераАлгоритм Луна
Оценка «качества» карты (банк, страна)Проверка BIN
Проверка реальной валидности без риска$0 авторизация
Если $0 авторизация не поддерживается$1 auth + void
Проверка карты для будущих платежейИнформационный запрос или валидация через шлюз
Бесплатная проверка без APIБесплатный пробный период

5.2. Ошибки, которые убивают карты​

ОшибкаПочему убивает картуКак избежать
Слишком частые проверкиБанк видит аномальную активность и блокирует картуНе проверяйте одну карту чаще 1–2 раз в день
Проверка на крупную суммуБанк воспринимает как реальную транзакцию и может заблокироватьИспользуйте минимальные суммы ($0–$1)
Использование одного шлюза для всех проверокШлюз может заподозрить мошенничество и заблокироватьРотируйте шлюзы и методы проверки
Игнорирование 3DSЗапрос требует аутентификации, карта может быть заблокированаВнедрите поддержку 3DS или используйте методы, его не требующие
Неправильный формат запросаОтказ может быть воспринят как подозрительная активностьТщательно проверяйте формат запроса перед отправкой
Проверка без легендыБанк видит необычную активность без объясненияВсегда имейте легенду для проверки (тестирование, валидация клиента)

5.3. Лучшие практики​

  1. Начинайте с безопасных методов. Сначала проверьте структуру (алгоритм Луна) и BIN, затем переходите к авторизационным методам.
  2. Минимизируйте количество проверок. Одна проверка на карту — оптимально. Две — уже риск.
  3. Используйте разные методы для разных карт. Это снижает вероятность обнаружения паттерна.
  4. Ведите журнал проверок. Записывайте дату, метод, результат и любые аномалии. Это поможет анализировать ошибки.
  5. Учитывайте часовой пояс. Проверяйте карты в рабочее время банка-эмитента.
  6. Используйте тестовые карты для отладки. Перед проверкой реальных карт протестируйте метод на тестовых картах, предоставляемых платёжными шлюзами.

ЧАСТЬ 6. ЮРИДИЧЕСКИЕ И ЭТИЧЕСКИЕ АСПЕКТЫ​

6.1. Важные предостережения​

  1. Любая проверка карты оставляет след. Даже если деньги не списаны, банк-эмитент может зафиксировать запрос на авторизацию. Владелец карты может увидеть это в выписке как «pending» или «hold».
  2. Частые проверки могут привести к блокировке. Если вы отправляете множество запросов на валидацию одной карты, банк может расценить это как подозрительную активность и заблокировать карту.
  3. CVV и AVS не всегда проверяются. Некоторые эквайеры могут игнорировать CVV или AVS при определённых настройках. Не стоит полагаться на них как на единственный метод верификации.
  4. Безопасность данных. При работе с карточными данными необходимо соблюдать стандарты PCI DSS. Любая утечка данных может привести к серьёзным юридическим последствиям.

ЗАКЛЮЧЕНИЕ: Искусство проверки без следа​

Проверка карты на валидность без её «убивания» — это балансирование между получением информации и сохранением карты в рабочем состоянии. Каждый метод имеет свои преимущества и ограничения. Начинайте с безопасных методов (алгоритм Луна, BIN), переходите к более информативным (нулевая авторизация) и всегда учитывайте риски.

Главные правила:
  1. Минимизируйте количество проверок на одну карту
  2. Используйте разные методы для разных карт
  3. Всегда учитывайте часовой пояс банка-эмитента
  4. Не проверяйте карты слишком часто
  5. Ведите журнал всех проверок

Помните: лучший способ проверить карту — это тот, который оставляет меньше всего следов.
 
Top