Validador y analizador de IBAN

Valida un numero de cuenta bancaria internacional sin conexion: codigo de pais, longitud del registro y digito de control ISO 7064 MOD 97-10, con desglose y formato de impresion.

Es este numero de cuenta estructuralmente valido? Pega un IBAN con o sin espacios. La comprobacion se ejecuta integramente en tu navegador: codigo de pais contra el registro SWIFT, longitud total y despues el digito de control ISO 7064 MOD 97-10.

Pais
Digitos de control
BBAN
Longitud

Como funciona de verdad la validacion de un IBAN

Un numero de cuenta nacional con envoltorio

Un IBAN no es un tipo nuevo de numero de cuenta. Es el numero de cuenta domestico de siempre, llamado BBAN, con cuatro caracteres anadidos delante: un codigo de pais ISO 3166 de dos letras y dos digitos de control. Todo lo que viene despues de esos cuatro caracteres es lo que el sistema bancario nacional ya usaba, y por eso la longitud varia tanto. Un IBAN noruego tiene 15 caracteres y uno maltes 31, y ambos son perfectamente correctos.

Esa variabilidad es el primer paso real de validacion, y el que mas gente se salta. Cada pais registra en SWIFT una longitud total exacta, y esa longitud es fija, no un maximo. Un IBAN aleman siempre tiene 22 caracteres. Si recibes una cadena de 21 que empieza por DE, es incorrecta diga lo que diga el digito de control, porque un error que acorta la cadena no puede detectarse con una suma de verificacion que nunca ve el caracter que falta. Comprobar primero la longitud del pais produce ademas un mensaje de error mucho mas util que un fallo generico de checksum.

El digito de control MOD 97-10

El control procede de ISO 7064 y es de una simplicidad elegante. Mueve los cuatro primeros caracteres al final, sustituye cada letra por un numero donde A es 10 y Z es 35, y lee el conjunto como un unico entero enorme. Si ese entero deja un resto de exactamente 1 al dividirlo entre 97, el IBAN pasa.

El problema es que el numero resultante es mucho mayor que el tipo entero nativo de cualquier lenguaje, a menudo de ochenta digitos o mas. En lugar de recurrir a una libreria de precision arbitraria, las implementaciones lo reducen por partes: recorren la cadena de izquierda a derecha y, tras cada digito, conservan solo el valor acumulado modulo 97. Como la aritmetica modular se distribuye sobre esa construccion digito a digito, el resto final es identico al que daria el numero completo, y cuesta una sola pasada sin reservar memoria. Es exactamente lo que hace esta herramienta.

Se eligio MOD 97-10 porque es inusualmente robusto para un control de solo dos caracteres. Detecta toda sustitucion de un caracter, toda transposicion de dos caracteres adyacentes y la inmensa mayoria de mezclas mas largas. Los modos de error que no ve son tan raros que el riesgo restante lo domina el hecho de que la cuenta simplemente no exista.

Lo que un IBAN valido no te dice

La validez estructural no es existencia. Un IBAN con el control correcto puede apuntar a una cuenta cerrada, a una cuenta que nunca se abrio o a un banco que desaparecio en una fusion. La unica forma de saber que el dinero llegara es intentar la transferencia o usar un servicio de verificacion del banco. Considera la validacion una manera de cazar erratas en el momento de teclear, no una confirmacion de que el beneficiario es real.

El formato tambien merece atencion. El registro define la forma electronica como una cadena continua sin espacios, y eso es lo que debes enviar en un fichero de pago o guardar en una base de datos. La forma agrupada de cuatro en cuatro existe solo para el papel, donde ayuda a copiar cadenas largas sin errores. Normaliza en la entrada, almacena plano y anade los espacios solo al mostrar.

Nota de codigo abierto: implementado en JavaScript puro sin librerias de terceros.

Preguntas frecuentes

Un digito de control valido significa que la cuenta existe?
No. El control solo demuestra que la cadena es coherente internamente, o sea que no hay erratas ni transposiciones. La cuenta puede estar cerrada o no haber existido nunca. Solo el banco receptor puede confirmar que un IBAN esta activo.
Por que los IBAN tienen longitudes distintas?
Porque la parte posterior a los cuatro primeros caracteres es el numero de cuenta domestico del pais, y esos se estandarizaron nacionalmente mucho antes de que existiera el IBAN. Cada pais registro su propia longitud fija, desde 15 caracteres en Noruega hasta 32 en Santa Lucia.
Debo guardar el IBAN con espacios?
No. Guarda la forma electronica, que es una cadena continua sin espacios ni puntuacion, y es tambien lo que esperan los sistemas de pago. La disposicion en grupos de cuatro es una convencion de impresion: anadela al renderizar y quitala al recibir.
Que es la parte BBAN?
El Basic Bank Account Number, es decir todo lo que sigue al codigo de pais y a los digitos de control. Su estructura interna depende del pais y suele codificar un identificador de banco, un codigo de sucursal y el numero de cuenta, a veces con su propio digito de control nacional.
Se envia mi IBAN a algun servidor?
No. Tanto la consulta de longitud como el calculo MOD 97-10 se ejecutan en tu navegador, y la pagina no realiza ninguna peticion de red con lo que escribes. Puedes desconectarte y la herramienta sigue funcionando.
Por que falla mi IBAN si tiene el numero correcto de caracteres?
Casi siempre por un caracter mal tecleado o intercambiado. MOD 97-10 detecta todos los errores de un solo caracter y todas las transposiciones adyacentes, asi que un fallo con la longitud correcta significa que un caracter no encaja. Revisa el original, sobre todo donde se confunden 0 y O o 1 e I.