Что такое тестовый номер карты?
Тестовый номер карты выглядит как настоящий во всём, что сайт может проверить самостоятельно: он начинается с правильного префикса платёжной системы, имеет нужную длину и верную контрольную цифру в конце. Разница в том, что ни один банк его не выпускал, поэтому номер не связан ни со счётом, ни с человеком, ни с деньгами. Разработчики и тестировщики используют такие номера, чтобы проверять платёжные формы, сценарии оформления заказа и базы данных, не рискуя данными реальных клиентов.
Наш генератор карт строит каждый номер так же, как это делают платёжные системы: берёт настоящий префикс эмитента (IIN, или BIN), заполняет цифры счёта случайным образом с помощью криптографического генератора вашего браузера и вычисляет последнюю цифру по алгоритму Луна. Затем добавляет срок действия в будущем и код безопасности нужной для этой системы длины. Всё происходит на вашем устройстве — на наш сервер ничего не отправляется.
Формат номера по платёжным системам
Первые цифры номера указывают на платёжную систему и банк-эмитент. В таблице собраны диапазоны, которые использует генератор, — по ней удобно сверить, что должен принимать ваш код валидации. Карты «Мир» (префиксы 2200–2204) в генератор пока не входят.
| Система | Начинается с (IIN) | Цифр в номере | Цифр в CVV |
|---|---|---|---|
| Visa | 4 | 13, 16, 19 | 3 |
| Mastercard | 51–55, 2221–2720 | 16 | 3 |
| American Express | 34, 37 | 15 | 4 |
| Discover | 6011, 644–649, 65 | 16–19 | 3 |
| JCB | 3528–3589 | 16–19 | 3 |
| Diners Club | 300–305, 36, 38–39 | 14–19 | 3 |
| UnionPay | 62 | 16–19 | 3 |
| Maestro | 5018, 5020, 5038, 5893, 6304, 6759, 6761–6763 | 12–19 | 3 |
Как работает контрольная цифра (алгоритм Луна)
Алгоритм Луна (его ещё называют «модуль 10») опубликовал инженер IBM Ханс Петер Лун в 1950-х годах. Сегодня им пользуются все крупные платёжные системы, чтобы отлавливать опечатки. Разберём его на самом известном тестовом номере 4111 1111 1111 1111:
- Начиная с крайней правой цифры, удвойте каждую вторую (в таблице они выделены).
- Если после удвоения получилось больше 9, вычтите 9 (8 остаётся восьмёркой, а 7 × 2 = 14 превращается в 5).
- Сложите все значения. В нашем примере сумма равна 30.
- Если сумма оканчивается на 0, номер корректен. 30 делится на 10, значит, этот номер проверку проходит.
| Цифра | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Удваивается? | 8 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – |
| Прибавляем | 8 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
Чтобы сгенерировать номер, мы делаем то же самое в обратном порядке: заполняем все цифры, кроме последней, считаем сумму и подбираем финальную цифру так, чтобы итог стал кратен 10. Любой номер можно разобрать по шагам в нашем сервисе проверки номера карты.
Как пользоваться генератором
- Выберите платёжную систему: Visa, Mastercard, American Express, Discover, JCB, Diners Club, UnionPay или Maestro.
- При желании укажите BIN или шаблон. BIN из 6–8 цифр даёт номера из диапазона конкретного эмитента. Символ
xработает как подстановочный знак (например,5425xxxxxxxx1234): генератор сохраняет все введённые вами цифры и подбирает одну из подстановок так, чтобы номер по-прежнему проходил проверку Луна. - Задайте количество и детали: до 1000 карт за раз, случайный или фиксированный месяц и год окончания срока действия, случайный или заданный CVV.
- Экспортируйте результат: скопируйте список или скачайте его в формате CSV, JSON, XML или в виде текста через черту (
номер|мм|гггг|cvv).
Зачем разработчикам тестовые номера карт
- Валидация форм: убедитесь, что форма оплаты принимает все системы и длины (15-значные Amex, Mastercard из серии 2, 19-значные карты) и отклоняет номера с неверной контрольной цифрой.
- Определение системы и маски ввода: проверьте, что показывается правильный логотип, а цифры группируются верно (4-4-4-4 или 4-6-5 у Amex).
- Тестовые данные и фикстуры: заполняйте staging-базы, демо и скриншоты правдоподобными номерами вместо карт клиентов — так вы не попадаете под требования PCI DSS.
- Нагрузочное и UI-тестирование: генерируйте сотни разных записей, чтобы проверить производительность, пагинацию и поиск.
- Обучение: наглядно показывайте, как устроены IIN, контрольные цифры и формула Луна.
Тестирование с платёжным шлюзом
Когда вы проверяете реальную интеграцию в тестовом режиме (sandbox), используйте тестовые карты из документации самого шлюза: они настроены возвращать конкретный результат — одобрение, отказ или запрос 3-D Secure, — чего случайный номер сделать не может. Сгенерированные номера идеально подходят для всего, что происходит до того, как запрос попадёт в шлюз. Официальные списки тестовых карт:
- Тестовые карты Stripe
- Тестирование карт в песочнице PayPal
- Тестовые значения Braintree
- Тестовые номера карт Adyen
Частые вопросы
Это настоящие номера кредитных карт?
Нет. Номера соответствуют открытым правилам формата каждой платёжной системы (префикс, длина и контрольная цифра Луна), но не привязаны ни к банковскому счёту, ни к держателю, ни к кредитному лимиту. Они нужны только для тестирования программ.
Можно ли что-то купить или оформить подписку со сгенерированной картой?
Нет. Настоящий платёж должен одобрить банк-эмитент, а эти номера не выпускал ни один банк, поэтому любое списание будет отклонено. Попытка расплатиться чужой или несуществующей картой — это мошенничество. Используйте номера только в песочницах, формах и тестовых данных.
Почему номера проходят проверку?
Большинство платёжных форм проверяют только формат: префикс платёжной системы, длину и контрольную сумму Луна. Наши номера удовлетворяют этим трём правилам — именно это и нужно, чтобы протестировать код валидации. Платёжный шлюз в боевом режиме их всё равно отклонит.
Можно ли сгенерировать карты по конкретному BIN?
Да. Введите BIN (первые 6–8 цифр) в поле BIN / шаблон. Можно также использовать x как подстановочный знак, например 453201xxxxxxxxxx: каждый x заполняется случайной цифрой, а контрольная цифра рассчитывается так, чтобы номер прошёл проверку Луна.
Какой формат экспорта выбрать?
Формат через черту (номер|мм|гггг|cvv) удобен для быстрого копирования, CSV — для таблиц и фикстур, JSON — для моков API и юнит-тестов, XML — для старых интеграций. За один раз можно сгенерировать до 1000 карт.
Законно ли генерировать тестовые номера карт?
Да. Генерация номеров по опубликованному формату законна — так ежедневно тестируют платёжное ПО. Незаконно использовать карту, которой вы не владеете или на которую у вас нет разрешения. Сайт не хранит, не продаёт и не обрабатывает данные настоящих карт.