Un formulario de pago que avisa al instante cuando alguien se equivocó al escribir el número de tarjeta evita pagos fallidos y consultas a soporte. La validación en el cliente es sencilla de construir, siempre que recuerdes qué puede y qué no puede demostrar.
Capas de validación
- Formato: solo dígitos, espacios o guiones, y luego quita los separadores antes de comprobar.
- Longitud: la mayoría de las tarjetas tienen 16 dígitos, American Express tiene 15 y algunas redes admiten hasta 19.
- Comprobación de Luhn: rechaza la mayoría de los errores de tecleo accidentales.
- Detección de marca: los primeros dígitos indican la red, lo que permite mostrar el logo correcto y la longitud esperada.
La autorización real siempre ocurre en los servidores del procesador de pagos. Las comprobaciones del cliente solo mejoran la experiencia.
Detectar la marca
Las redes publican los rangos de cada marca. Como regla general, Visa empieza por 4, Mastercard por 51 a 55 o 2221 a 2720, y American Express por 34 o 37. Los rangos cambian con el tiempo, así que en producción confía en una biblioteca mantenida y considera la tabla incluida como una comodidad.
Usar números de prueba
Durante el desarrollo nunca debes usar una tarjeta real. Los procesadores de pago publican números de prueba que pasan Luhn pero no están asociados a ninguna cuenta, y cada proveedor documenta qué números provocan aprobaciones, rechazos o errores. Usa los de la documentación del propio proveedor.
Buenas prácticas en formularios
- Acepta espacios y guiones mientras el usuario escribe y da formato al número en grupos para facilitar la lectura.
- No registres ni guardes números de tarjeta completos en tus sistemas. Usa los campos alojados del procesador o tokens para que los datos de la tarjeta nunca toquen tu servidor.
- Muestra mensajes de error claros, como "revisa el número", en lugar de bloquear en silencio.
- No confíes en Luhn para la seguridad. Solo detecta errores de tecleo.
Preguntas frecuentes
¿Se aplica Luhn al CVV o a la fecha de caducidad? No. Se validan con otras reglas, y la caducidad simplemente debe estar en el futuro.
¿Puedo generar números con aspecto válido para pruebas? Sí, el validador puede calcular el dígito de control de un número parcial, lo que es útil para datos de prueba. No son cuentas reales.

