El último dígito de una tarjeta no es aleatorio: es una suma de control diseñada para detectar el tipo de error que comete cualquiera al copiar un número largo a mano, ya sea en un formulario web o al dictarlo por teléfono.
Cómo funciona el algoritmo de Luhn
El algoritmo recorre los dígitos de derecha a izquierda, duplica cada segundo dígito y, si el resultado supera 9, le resta 9. Si el número se introdujo correctamente, la suma de todos los dígitos resultantes es múltiplo de 10.
Un invento de IBM de los años 50, no de Visa ni Mastercard
El algoritmo lleva el nombre de Hans Peter Luhn, científico de IBM que lo patentó en 1954 como un método general para detectar errores de transcripción en cualquier secuencia de dígitos, sin relación directa con tarjetas bancarias. Las redes de pago lo adoptaron después precisamente porque es barato de calcular y detecta los dos errores manuales más comunes: un dígito mal escrito o dos dígitos consecutivos intercambiados.
Por qué pasar la verificación de Luhn no significa que la tarjeta exista
La verificación de Luhn solo confirma la estructura matemática del número, no que haya una cuenta real detrás. Es trivial generar millones de números que superan esta prueba sin que ninguno esté vinculado a una tarjeta real, así que toda operación real todavía necesita pasar por el banco emisor para la comprobación que realmente importa.
Para qué sirve
- Detectar un número de tarjeta mal escrito antes de enviar un formulario.
- Descartar rápidamente una errata al introducir a mano un número largo.
- Entender qué demuestra exactamente la verificación de Luhn y qué no.
Identificar la red de pago a partir del número (BIN)
Los primeros dígitos de una tarjeta forman el BIN (Bank Identification Number), que identifica la red de pago incluso antes de aplicar el algoritmo de Luhn. Los números de Visa empiezan por 4, los de Mastercard por el rango 51–55 o el más reciente 2221–2720, y los de American Express por 34 o 37. Por eso un formulario de pago puede mostrar el icono correcto de la red mientras el usuario todavía está escribiendo el número.