Qué comprueba el validador
Hay tres cosas que se pueden verificar en un número de tarjeta sin consultar a ningún banco. El validador las revisa todas y muestra el resultado de cada una:
- Rango del emisor (IIN). Los primeros dígitos identifican la red: 4 para Visa, 51–55 o 2221–2720 para Mastercard, 34 o 37 para American Express, 6011/644–649/65 para Discover, 3528–3589 para JCB, etcétera.
- Longitud. Cada marca admite longitudes concretas: 15 dígitos en Amex, 14 en la mayoría de las Diners Club, 16 en casi todas las demás y hasta 19 en algunas Visa, Discover, JCB, UnionPay y Maestro.
- Suma de control de Luhn. El último dígito es un dígito de control. La fórmula de Luhn detecta cualquier error en un solo dígito y la mayoría de las inversiones de dos dígitos contiguos.
Si las tres pruebas salen bien, el número está bien formado. Es todo lo que una web puede saber por sí sola: si la cuenta existe, sigue abierta o tiene saldo solo lo sabe el banco emisor, y lo comprueba cuando se autoriza un pago.
El algoritmo de Luhn, paso a paso
Este es el cálculo para el número de prueba 4111 1111 1111 1111. Se duplica uno de cada dos dígitos empezando por la derecha; si el doble es mayor que 9, se le resta 9. Después se suman todos los valores:
| Dígito | 4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ¿Se duplica? | 8 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – | 2 | – |
| Valor sumado | 8 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 | 2 | 1 |
El total es 30. Como 30 es divisible entre 10, el número es válido. Si cambias un solo dígito, la suma cambia y deja de ser múltiplo de 10: pruébalo en el validador de arriba y verás qué dígito de control necesitaría el número modificado.
Estructura de un número de tarjeta
| Parte | Dígitos | Significado |
|---|---|---|
| Identificador de industria (MII) | El 1.º | Sector: 3 viajes y ocio, 4–5 banca y finanzas, 6 comercio y banca |
| Número de identificación del emisor (IIN / BIN) | Los 6–8 primeros | Red y banco emisor, tipo de tarjeta (crédito, débito, prepago) y país |
| Identificador de la cuenta | Los centrales | Lo asigna el emisor a cada tarjeta |
| Dígito de control | El último | Se calcula con el algoritmo de Luhn a partir de todos los demás |
Consejos para validar tarjetas en tu propio formulario
Si estás programando un checkout, estas reglas evitan la mayoría de los rechazos injustos y de los errores difíciles de rastrear:
- Limpia la entrada primero: elimina espacios y guiones antes de comprobar nada; muchos usuarios copian el número tal como aparece en la tarjeta.
- Comprueba en orden: longitud e IIN antes que Luhn, y muestra un mensaje concreto para cada fallo («el número está incompleto» ayuda más que «tarjeta no válida»).
- No bloquees BIN desconocidos: las redes abren rangos nuevos (como la serie 2 de Mastercard), así que valida el formato mientras se escribe, pero deja que la pasarela tenga la última palabra.
- Recuerda que Luhn solo es un filtro de formato: la aprobación real depende siempre del banco emisor.
- No registres ni guardes números completos en desarrollo o staging: además de arriesgado, te mete en el alcance de PCI DSS. Usa números de prueba.
Cuándo usar un validador de tarjetas
- Para averiguar por qué un formulario de pago rechaza el número que ha escrito un cliente.
- Para revisar fixtures y datos de prueba antes de importarlos.
- Para comparar tu propio código de validación con una implementación de referencia.
- Para entender cómo se construyen los números de tarjeta y enseñarlo en clase.
Si lo que necesitas son números para tus pruebas, el generador de tarjetas de crédito crea lotes de hasta 1.000 tarjetas de prueba con vencimiento y CVV, listas para exportar en CSV, JSON o XML. Recuerda que, aunque superen esta validación, siguen siendo datos ficticios: ninguna pasarela en modo real los aceptará como pago.
Preguntas frecuentes
Si el resultado es válido, ¿la tarjeta existe?
No. El validador solo revisa el formato. Si la cuenta existe, está activa o tiene fondos solo lo puede confirmar el banco emisor al autorizar un pago.
¿Es seguro pegar aquí un número real?
La comprobación se hace con JavaScript en tu dispositivo y el número nunca llega a nuestro servidor. Aun así, como buena práctica, no pegues números de tarjetas reales en ninguna web si no es necesario.
¿Qué errores detecta el algoritmo de Luhn?
Detecta cualquier error en un solo dígito y la mayoría de las inversiones de dos dígitos contiguos. Por eso los formularios lo usan para avisar al instante, antes de enviar el pago.
¿Por qué mi número aparece como no válido?
Casi siempre es una errata: basta un dígito equivocado para que la suma de Luhn falle. El validador muestra qué dígito de control necesitaría el número, así ves enseguida dónde está la diferencia.