Validador de tarjetas bancarias
DevValida números de tarjeta con el checksum de Luhn y detecta la marca (Visa, Mastercard, Amex, UnionPay, Discover). Todo en tu navegador.
No se recuperan URLs remotas; pega tu JSON directamente.
- Marca
- Verificación Luhn
- Longitud
En esta página
¿Qué es un validador de número de tarjeta?#
El número de una tarjeta de pago (el PAN, o número de cuenta principal) no es una cadena aleatoria. Sus dígitos iniciales son un prefijo BIN que identifica al emisor (Visa empieza por 4, Mastercard por 51–55 o 2221–2720, y así sucesivamente), su longitud total cae en una franja estrecha según la marca, y su dígito final es un dígito de control calculado para que todo el número satisfaga el algoritmo de Luhn. Un validador separa esas tres señales y te dice, para cualquier cadena de dígitos, si está bien formado, no si es una tarjeta real, emitida y operativa.
Esta página hace exactamente eso, completamente en tu navegador. Escribe o pega un número e identifica la marca por el prefijo BIN, formatea los dígitos en grupos legibles de 4, ejecuta el checksum de Luhn y comprueba la longitud frente a la que esa marca usa realmente. Es la herramienta a la que recurres cuando construyes un formulario de pago (¿mi validación a nivel de campo coincide con las reglas BIN reales?), cuando aprendes cómo funciona Luhn o cuando verificas un fixture de prueba.
Nunca introduzcas un número de tarjeta real. Usa PANs de prueba (los que las pasarelas de pago publican para el sandbox) o números que tú mismo hayas generado para aprender. Aquí todo se ejecuta localmente y nada se transmite, pero tratar cualquier PAN como sensible es el hábito correcto.
Cómo se usa#
- Lee la nota de privacidad sobre la entrada: confirma que el número nunca sale de tu navegador.
- Escribe o pega un número en el campo Número de tarjeta. Los espacios, guiones, puntos y letras se eliminan automáticamente: puedes pegar
4111-1111 1111.1111y se leerá como4111111111111111. - Pulsa Ejemplo para cargar un PAN de prueba de Visa muy conocido, o Limpiar para reiniciar.
- Lee la tarjeta de resultado:
- La línea de veredicto dice si el número está bien formado.
- La insignia de marca muestra el emisor detectado (Visa, Mastercard, American Express, Discover, UnionPay) o «Desconocida» cuando ningún prefijo BIN coincide.
- Agrupado muestra los dígitos formateados en grupos de 4, listos para copiar.
- Las tres filas de comprobación informan por separado de la marca, el Luhn (superada / no superada) y la longitud (en rango / fuera de rango), así puedes ver qué regla falló en vez de un plano «inválido».
Características clave#
- Checksum de Luhn, implementado desde cero. El mismo algoritmo que las tarjetas llevan desde los años 60: recorrer los dígitos de derecha a izquierda, doblar cada segundo dígito, sumar y comprobar la divisibilidad por diez. El dígito de control del final es lo que hace que un error en un solo dígito siempre falle.
- Detección de prefijo BIN para cinco marcas. Visa, Mastercard, American Express, Discover y UnionPay, emparejadas en orden de prioridad para que las marcas con prefijo
6(Discover 6011/65 frente a UnionPay 62) no colisionen. - Comprobación de longitud por marca. Amex son 15 dígitos; Visa, 13 o 16; Discover y UnionPay pueden tener de 16 a 19. La regla de longitud que se aplica es la de la marca detectada, con repliegue al rango general 12–19 cuando el prefijo es desconocido.
- Normalización de dígitos segura por configuración regional. Los glifos de dígitos arábigos índicos (٤١١١), persas, devanágari, bengalíes y de ancho completo (123) se transliteran todos a ASCII 0–9 antes de la validación, así el mismo PAN valida sin importar el método de entrada o la configuración regional del usuario.
- Agrupación en 4 dígitos para visualización. Un PAN de 16 dígitos se convierte en
4111 1111 1111 1111; un Amex de 15 se convierte en el familiar3782 8224 6310 005(4-4-4-3). - Estrictamente local. No hay backend ni petición de red. El PAN se procesa en memoria y se renderiza en la tarjeta de resultado en la misma pulsación de tecla.
Ejemplo práctico#
Pulsa Ejemplo para cargar el PAN de prueba canónico de Visa, o teclea 4111 1111 1111 1111. La tarjeta de resultado reza:
verdict Valid
brand Visa
grouped 4111 1111 1111 1111
Luhn pass
length ok (16 digits)
Ahora prueba un PAN de American Express con un espaciado incómodo: pega 3782 822463 10005. La herramienta elimina los espacios, detecta Amex por el prefijo 37 y lo reformatea en la agrupación propia de Amex:
verdict Valid
brand American Express
grouped 3782 8224 6310 005
Luhn pass
length ok (15 digits)
Por último, cambia un dígito del número Visa a 4111 1111 1111 1112. La marca y la longitud siguen siendo correctas, pero Luhn ahora falla, y la herramienta te lo dice explícitamente, en vez de ocultar qué comprobación rompió:
verdict Invalid
brand Visa
grouped 4111 1111 1111 1112
Luhn fail
length ok (16 digits)
Esa separación importa cuando depuras un formulario: un Luhn que falla apunta a una errata, mientras que una longitud que falla apunta a una marca equivocada o a un pegado truncado.
Preguntas frecuentes#
¿«Válido» significa que la tarjeta funcionará de verdad?#
No. «Válido» solo significa que el número está bien formado: su prefijo se mapea a una marca conocida, su longitud coincide con esa marca y satisface Luhn. No dice nada de si la tarjeta se emitió alguna vez, está activa o tiene fondos. Trata esto como una comprobación de formato, igual que validarías la forma de un correo sin saber si la bandeja existe.
¿Por qué Luhn caza todas las erratas de un solo dígito?#
Por la forma en que el checksum dobla los dígitos alternos: cambiar un dígito desplaza la suma en una cantidad que nunca es múltiplo de diez, e intercambiar dos dígitos adyacentes cambia la suma de una forma que Luhn también detecta (con una excepción muy concreta). Se diseñó precisamente para cazar los errores de tecleo que los humanos cometen en un teclado.
El número que pegué tiene dígitos no latinos. ¿Seguirá funcionando?#
Sí. El validador translitera los glifos de dígitos arábigos índicos, persas, devanágari, bengalíes y de ancho completo a ASCII antes de hacer nada más, así que ٤١١١ se trata como 4111. Esto mantiene la validación consistente entre configuraciones regionales y métodos de entrada, y la forma «agrupada» mostrada usa siempre dígitos ASCII.
¿Qué marcas de tarjeta se reconocen?#
Visa, Mastercard, American Express, Discover y UnionPay, por sus rangos públicos de prefijo BIN. Los números con un prefijo que no coincide con ninguna de estas (por ejemplo, los que empiezan por 1 o 9) reportan marca «Desconocida», pero si la longitud está en el rango general 12–19 y Luhn pasa, el número se reporta aun así como bien formado: simplemente no es una de las cinco marcas modeladas.