Todo código que acepta, guarda o envía IBAN necesita datos de prueba: validación de formularios, procesos de alta, fixtures de base de datos, integraciones de pago, pruebas de carga. Los IBAN reales de clientes no pintan nada en un entorno de pruebas, y los que se teclean a mano rara vez tienen dígitos de control correctos. Un IBAN de prueba, a veces llamado IBAN falso o ficticio, resuelve los dos problemas: supera la validación estructural y ningún banco lo ha emitido nunca.
Qué comprueba un validador
La validación de un IBAN se hace por capas. Cada capa detecta problemas distintos, y un IBAN de prueba solo supera algunas.
| Comprobación | Qué verifica | Un IBAN de prueba generado |
|---|---|---|
| Caracteres | Solo letras y dígitos, una vez quitados los espacios | Pasa |
| País | Las dos primeras letras corresponden a un país que usa IBAN | Pasa |
| Longitud | La longitud es la de ese país, por ejemplo 22 en Alemania | Pasa |
| Patrón | Cada posición del BBAN tiene el tipo de carácter correcto (dígito o letra) | Pasa |
| Dígitos de control | El resto MOD-97 es 1 | Pasa |
| Dígitos de control nacionales | Reglas del país dentro del BBAN, como el CIN italiano o la clé RIB francesa | Pasa en los 27 países cuyo algoritmo oficial calculamos; en los demás son aleatorios y pueden fallar |
| Directorio de bancos | El código de banco existe | Pasa en los 84 países con códigos de banco reales en el modo realista, activado por defecto; en los demás casos normalmente falla |
| Consulta de la cuenta | La cuenta existe y el nombre coincide | Falla |
Las dos últimas comprobaciones necesitan datos de los bancos. En el Reino Unido, Confirmation of Payee compara el nombre del titular de la cuenta con el que ha introducido quien paga; en la zona del euro, la verificación del beneficiario hace lo mismo antes de una transferencia. Un IBAN aleatorio no puede superar esas comprobaciones, y así debe ser. En Dígitos de control nacionales en el IBAN se explica la capa nacional, país por país.
Las cinco primeras comprobaciones, y la de los dígitos de control nacionales cuando se conoce la regla, no necesitan datos externos. Nuestro validador de IBAN las hace en tu navegador y te muestra cuál falla. Nuestra biblioteca JavaScript de código abierto iban-check hace las cinco según el registro IBAN de SWIFT y devuelve un código de error que indica cuál ha fallado. Argelia y Marruecos no están en el registro, así que rechaza sus IBAN. Está en npm como iban-check.
Errores que rompen el manejo de IBAN
Estos son los fallos que aparecen una y otra vez en el código que trabaja con IBAN:
- Una sola longitud para todos los países. Los IBAN alemanes tienen 22 caracteres, pero los noruegos tienen 15 y los malteses, 31. Valida la longitud por país, no con un único número fijo.
- Solo dígitos después del código de país. Los IBAN neerlandeses, británicos y muchos otros llevan letras en el BBAN (
NL91ABNA0417164300). Una expresión regular que solo admita dígitos los rechaza. - Guardar el formato impreso. Guarda los IBAN en formato electrónico, sin espacios y en mayúsculas, y añade los espacios solo al mostrarlos.
- Tratar el IBAN como un número. Lleva letras y el BBAN puede empezar por ceros. Guárdalo como cadena de texto.
- Desbordamiento de enteros en el MOD-97. Salvo en Noruega y Bélgica, el número convertido no cabe en un entero de 64 bits (unos 19 dígitos); el de un IBAN alemán tiene 24. Usa precisión arbitraria o el cálculo del resto por pasos que se explica en Cómo funcionan los dígitos de control del IBAN.
- Caracteres invisibles al copiar y pegar. Los usuarios pegan IBAN con espacios de no separación, tabulaciones o saltos de línea. Elimina todos los espacios en blanco, no solo el espacio normal.
- Entrada en minúsculas. La gente escribe
de89.... Pasa el texto a mayúsculas antes de validarlo.
Qué IBAN de prueba usar
Los IBAN de prueba aleatorios sirven para la mayoría de las pruebas: validación de formularios, fixtures, datos semilla, pruebas de carga y capturas de pantalla. Usa varios países, no solo el tuyo, para que el manejo de longitudes y patrones se ponga a prueba; los formatos largos como el de Malta (31) y los cortos como el de Noruega (15) son buenos casos límite. Por defecto, el generador está en modo realista: solo dígitos y, cuando está disponible, el código de un banco real, con un número de cuenta aleatorio, así que el código que consulta el banco lo encuentra. Ningún banco ha emitido tampoco ese IBAN, pero podría coincidir por casualidad con una cuenta real. Desactiva Realista para obtener IBAN totalmente aleatorios: el código de banco también es aleatorio, lo que sirve para probar un banco desconocido, y pueden aparecer letras donde el formato las admite.
Los proveedores de pagos suelen publicar sus propios IBAN de prueba, que provocan resultados concretos en su sandbox, como un adeudo que sale bien o uno que falla. Cuando pruebes de principio a fin el flujo de un proveedor, usa los IBAN de la documentación de ese proveedor.
No uses nunca el IBAN de una persona real en pruebas, demos o documentación, y no envíes nunca dinero a un IBAN generado. La probabilidad de que un IBAN aleatorio coincida con una cuenta real es muy pequeña, pero no es cero.
Cómo llevar IBAN de prueba a tu pipeline
El generador te muestra un IBAN con sus segmentos explicados. Su opción "Generar una lista" crea de una vez de 5 a 100 IBAN de un país, para copiarlos o descargarlos en CSV, JSON, SQL o texto plano, con una columna por segmento. Para las pruebas automatizadas:
- La API REST devuelve hasta 100 IBAN válidos por petición para cualquiera de los países disponibles, y también valida IBAN. Necesita una clave de API; consulta la documentación de la API.
- El servidor MCP público permite a los agentes de IA y a los asistentes de programación generar y validar IBAN de prueba sin clave.
- La descarga de "Generar una lista" es una URL normal que no necesita clave, así que un script puede bajar directamente un archivo de fixtures (30 descargas por minuto).
- Para las pruebas que tengan que funcionar sin conexión, genera una vez un conjunto de IBAN y guárdalos en el repositorio como fixtures.
# 50 IBAN neerlandeses en CSV, sin clave
curl -o fixtures.csv "https://generaterandomiban.com/export/nl?format=csv&count=50"
# 5 IBAN de la API, con clave
curl -H "X-API-Key: YOUR_KEY" \
"https://generaterandomiban.com/api/v1/generate/NL?count=5"
Fuentes
- IBAN Registry de SWIFT: la longitud y la estructura del BBAN de cada país.
- ISO 13616-1:2020: la estructura del IBAN.
- ISO/IEC 7064: el método de los dígitos de control MOD 97-10.
- Reglamento (UE) 2024/886: la verificación del beneficiario en las transferencias en euros.