Herramientas de Desarrollo

Validador de Números de Tarjeta de Crédito | Algoritmo de Luhn

Introduce un número de tarjeta de crédito para verificar su dígito de control con el algoritmo de Luhn y detectar automáticamente la marca (Visa, Mastercard, Amex, etc.). Útil para probar validaciones de formularios.

[[ labels.client_side_note ]]


[[ labels.format_error ]]
[[ labels.sample_label ]]:
[[ labels.no_input ]]

[[ labels.result_label ]]

[[ labels.formatted_label ]] [[ result.formatted ]]
[[ labels.brand_label ]] [[ brandName ]] [[ labels.brand_unknown ]]
[[ labels.checksum_label ]] ✓ [[ labels.checksum_valid ]] ✗ [[ labels.checksum_invalid ]]

Marcas admitidas y reglas de detección (IIN y longitud)

Marca Dígitos iniciales (IIN) Longitud
Visa 4 13, 16, 19
Mastercard 51–55, 2221–2720 16
American Express 34, 37 15
Discover 6011, 65 16
JCB 3528–3589 16
Diners Club 300–305, 36, 38 14
UnionPay 62 16–19

Consejos

  • Prueba los botones de ejemplo con números de prueba conocidos (ej. Visa: 4111 1111 1111 1111) en lugar de un número real.
  • Los espacios y guiones se eliminan automáticamente, así que puedes pegar un número copiado de cualquier sitio.
  • Esta herramienta solo verifica el formato mediante el algoritmo de Luhn. Para una autorización real o consulta de saldo, usa la API de tu procesador de pagos.
  • Al desarrollar la validación de un formulario, usa esta herramienta para generar tanto un caso válido como uno inválido y así probar tu lógica.

Preguntas Frecuentes

No. Esta herramienta solo realiza una verificación de formato con Luhn: no puede decirte si la tarjeta existe realmente, ha sido desactivada o tiene fondos suficientes. La autorización real requiere los sistemas de tu procesador de pagos.

El número nunca se envía a un servidor; todo el cálculo ocurre en el JavaScript de tu navegador. Aun así, si solo quieres probar la herramienta, te recomendamos usar uno de los números de ejemplo en lugar de una tarjeta real.

Es un algoritmo de detección de errores ideado en 1954 por Hans Peter Luhn, de IBM. Empezando por la derecha, se duplica cada segundo dígito, y si la suma total es múltiplo de 10, el formato se considera válido. Detecta la mayoría de los errores de tecleo.

Se basa en los primeros dígitos (el Número de Identificación del Emisor) combinados con la longitud total. Por ejemplo, Visa empieza por "4" y tiene 13, 16 o 19 dígitos, Mastercard empieza por "51-55" y tiene 16 dígitos, y JCB empieza por "3528-3589" y también tiene 16 dígitos, según reglas de dominio público. Puedes consultar la tabla completa en la sección "Marcas admitidas y reglas de detección" más abajo en esta página.

No. Pasar la verificación de Luhn solo confirma que el número es internamente coherente como formato. Incluso un número inventado de 16 dígitos puede ajustarse en el último dígito para pasar la verificación.
ツールくん

A Propósito — Hans Peter Luhn, el Padre del Dígito de Control

El dígito de control al final de un número de tarjeta de crédito se verifica con un algoritmo ideado en 1954 por el ingeniero de IBM Hans Peter Luhn. Obtuvo una patente por ello en 1960, pero esa patente expiró hace tiempo, por lo que el algoritmo es ahora de uso libre para cualquiera.

El mecanismo es sorprendentemente simple. Empezando por el dígito más a la derecha, se duplica cada segundo dígito; si el resultado tiene dos cifras, se suman entre sí (por ejemplo, 8×2=16 → 1+6=7). Si la suma de todos los dígitos es múltiplo de 10, el número se considera formalmente válido.

El algoritmo se usa mucho más allá de las tarjetas de crédito: también detecta errores de tecleo en números IMEI (que identifican teléfonos) y en los números de seguro social canadienses, entre otros. Vale la pena recordar que Luhn solo detecta errores accidentales de escritura; no dice nada sobre si la tarjeta existe realmente o tiene saldo.

Los primeros 6 a 8 dígitos de un número de tarjeta forman el IIN (Número de Identificación del Emisor), que identifica la red de la tarjeta y el banco emisor. La detección de marca de esta herramienta se basa en los rangos de IIN documentados públicamente para cada red.