Как устроена проверка номера карты
Валидатор анализирует введённую последовательность цифр в три этапа, чтобы убедиться, что номер не содержит случайных опечаток и соответствует стандартам конкретной платёжной системы.
- Определение платёжной системы (BIN/IIN). Сервис считывает первые 6–8 цифр номера. Этот блок называется идентификационным номером эмитента. По нему валидатор понимает, к какой сети принадлежит карта (Visa, Mastercard, Мир, UnionPay и т.д.) и какой длины должен быть весь номер.
- Проверка длины (PAN). У каждой системы есть строгие правила длины номера (Personal Account Number). Например, классическая Visa или Mastercard всегда состоят из 16 цифр, а American Express — из 15. Если длина не совпадает с шаблоном сети, номер признаётся некорректным.
- Расчёт контрольной суммы (Алгоритм Луна). Последняя цифра номера — это контрольное число. Валидатор применяет формулу Луна (ISO/IEC 7812) ко всем предыдущим цифрам. Если итоговая сумма не кратна 10, значит, в номере допущена ошибка.
Анатомия номера: из чего состоит PAN
Номер на лицевой стороне карты — это не случайный набор цифр. Согласно стандарту ISO/IEC 7812, он делится на несколько смысловых блоков:
- MII (1 цифра). Идентификатор отрасли. Для банковских карт это всегда цифры
4или5. - BIN / IIN (6–8 цифр). Идентификатор эмитента. Указывает на платёжную систему, конкретный банк и тип карты (кредитная, дебетовая, виртуальная). С 2022 года индустрия перешла на 8-значные BIN, чтобы вместить всех новых эмитентов.
- Индивидуальный идентификатор (до 12 цифр). Внутренний номер счёта клиента внутри банка. Именно эта часть делает каждую карту уникальной.
- Контрольная цифра (1 цифра). Рассчитывается по алгоритму Луна на основе всех предыдущих цифр. Служит для мгновенного выявления опечаток при ручном вводе.
Форматы популярных платёжных систем
Валидатор опирается на эти шаблоны, чтобы определить сеть и проверить длину номера.
| Платёжная система | Префикс (первые цифры) | Допустимая длина | Код безопасности |
|---|---|---|---|
| Visa | 4 | 16, 19 | 3 цифры (CVV) |
| Mastercard | 51–55, 2221–2720 | 16 | 3 цифры (CVC) |
| Мир | 2200–2204 | 16 | 3 цифры (CVP2) |
| American Express | 34, 37 | 15 | 4 цифры (CID) |
| UnionPay | 62 | 16–19 | 3 цифры (CVN) |
| JCB | 3528–3589 | 16–19 | 3 цифры (CAV) |
| Discover | 6011, 644–649, 65 | 16, 19 | 3 цифры (CID) |
Границы возможностей: чего не делает валидатор
Важно понимать разницу между структурной валидацией и авторизацией платежа.
Наш инструмент отвечает только на вопрос: «Может ли такой номер теоретически существовать в природе?».
Валидатор не может и не должен:
- Подтверждать, что карта реально выпущена банком.
- Проверять баланс счёта или доступный лимит.
- Узнавать статус карты (активна, заблокирована, украдена).
- Проверять срок действия или код CVV/CVC.
- Списывать или блокировать средства.
Эти данные защищены банковскими шлюзами и передаются только в момент реальной транзакции с согласия владельца карты. Любой сайт, обещающий «пробить» баланс или ФИО владельца по одному номеру, использует эти обещания для сбора данных (фишинга).
Тестовые номера для разработчиков и QA
Если вы разрабатываете платёжную форму, настраиваете checkout или тестируете интеграцию с эквайрингом, используйте официальные тестовые номера. Они проходят проверку Луна, но не привязаны к реальным счетам — списать с них деньги невозможно.
- Visa:
4242 4242 4242 4242 - Mastercard:
5555 5555 5555 4444 - American Express:
3782 822463 10005 - Мир:
2200 0000 0000 0000(условный тестовый префикс) - UnionPay:
6200 0000 0000 0000
Приватность и безопасность данных
Утилки.ру придерживаются строгого принципа конфиденциальности. Код валидатора выполняется исключительно в вашем браузере.
Когда вы вводите или вставляете номер карты в поле, JavaScript мгновенно применяет к нему алгоритм Луна и сравнивает с локальной базой BIN-префиксов. Ни одна цифра не покидает ваше устройство. Серверы утилки.ру не получают этих данных, не хранят их в логах и не передают третьим лицам. Вы можете безопасно использовать инструмент для проверки любых номеров, включая реальные, если вам нужно убедиться в отсутствии опечатки перед вводом на сайте магазина.
Частые вопросы
Безопасно ли вводить номер настоящей карты в этот валидатор?
Абсолютно безопасно. Валидатор работает локально в вашем браузере с помощью JavaScript. Номер карты не отправляется на серверы утилки.ру, не логируется и не сохраняется. Вся математическая проверка происходит на стороне вашего устройства.
Может ли этот инструмент проверить баланс или статус карты?
Нет, инструмент проверяет только математическую корректность номера (контрольную сумму). Узнать баланс, точный срок действия или статус блокировки можно исключительно через официальный интернет-банк или приложение вашего банка-эмитента. Ни один сторонний сервис не имеет доступа к таким данным без прямого запроса от владельца.
Что такое алгоритм Луна и зачем он нужен?
Это стандарт расчёта контрольной суммы (ISO/IEC 7812), который используют все эмитенты. Алгоритм позволяет платёжным формам мгновенно выявлять случайные опечатки или перестановки цифр ещё до отправки запроса в процессинговый центр. Это экономит время пользователей и снижает нагрузку на банковские шлюзы, отсевая заведомо некорректные данные.
Почему моя карта не проходит проверку, хотя она действующая?
Скорее всего, при вводе допущена опечатка, перепутаны цифры местами или выбран неверный формат длины. Если вы уверены в данных, попробуйте ввести номер без пробелов. Также убедитесь, что карта не относится к редким локальным системам, чьи BIN-диапазоны могут отсутствовать в открытой базе.
Какие платёжные системы поддерживает сервис?
Сервис распознаёт префиксы Visa, Mastercard, Мир, American Express, UnionPay, JCB и Discover. Определение происходит по первым цифрам номера (BIN) и допустимой длине PAN согласно актуальным стандартам платёжных сетей. Инструмент регулярно обновляется, чтобы поддерживать новые диапазоны идентификаторов эмитентов.