Definición
El IBAN (International Bank Account Number) es el identificador único e internacional de una cuenta bancaria, definido por la norma ISO 13616.
Su longitud varía según el país (de 15 a 34 caracteres), pero su función es la misma en todas partes: permitir que cualquier banco encamine un pago a la cuenta correcta sin ambigüedad.
Anatomía de un IBAN francés
Un IBAN francés tiene 27 caracteres. Ejemplo: FR76 3000 6000 0112 3456 7890 189
FR— código de país (2 letras, ISO 3166).76— dígitos de control internacionales (2 dígitos, algoritmo MOD 97-10).30006— código de banco (5 dígitos).00001— código de oficina (5 dígitos).12345678901— número de cuenta (11 caracteres).89— clave RIB nacional (2 dígitos).
Los 23 últimos caracteres constituyen el antiguo RIB francés: el IBAN es el RIB prefijado con el código de país y los dígitos de control internacionales.
Longitudes de IBAN por país
Algunas referencias:
- Alemania: 22 caracteres (
DE89 3704 0044 0532 0130 00). - Francia, España, Italia: 27 caracteres.
- Bélgica: 16 caracteres.
- Suiza: 21 caracteres.
- Malta: 31 caracteres (el más largo de la zona SEPA).
De ahí el error de integración más frecuente: prever un campo de 27 caracteres creyendo que es universal. Hay que prever 34 caracteres como máximo.
Validación: MOD 97-10
El algoritmo es sencillo:
- Mover los 4 primeros caracteres al final de la cadena.
- Sustituir cada letra por su posición en el alfabeto + 9 (A=10, B=11, … Z=35).
- Calcular el resultado módulo 97.
- Si el resultado es 1, el IBAN es estructuralmente válido.
Atención: estructuralmente válido no significa que la cuenta exista. Es la VoP la que comprueba además que el nombre corresponde al titular y que la cuenta está activa.
IBAN vs BIC
- IBAN — identifica la cuenta (e indirectamente el banco, a través de los códigos de país y de banco).
- BIC — identifica el banco (su código SWIFT).
Desde 2016, el BIC ya no es obligatorio en SEPA: el IBAN por sí solo basta, ya que el banco destinatario puede deducirse de él. El BIC sigue siendo útil para las transferencias fuera de SEPA o como campo de coherencia en algunas API.
Lo que el IBAN no hace
- No revela el nombre del titular: ese es el papel de la VoP.
- No garantiza que la cuenta esté activa: un IBAN válido puede corresponder a una cuenta cerrada.
- No es confidencial en sentido estricto: viaja en cada transferencia, pero sigue siendo sensible (riesgo de adeudos fraudulentos si no se verifica el mandato).
- No es un RIB: el RIB es el formato nacional francés que reúne IBAN, BIC, titular y dirección en forma imprimible.
En el ecosistema PSD2
El IBAN es el identificador clave de todas las API de la PSD2: el debtorAccount de la autorización de pago, el creditorAccount de la petición de pago en STET y el Berlin Group, obligatorio en cualquier petición de transferencia.
Ejemplos concretos
- Campo de formulario:
maxlength=34, eliminación de los espacios y paso a mayúsculas en el front, validación MOD 97-10 en el servidor antes de la llamada a la API. El error clásico: validar solo la longitud. - Visualización: agrupar en bloques de 4 caracteres separados por espacios — estándar ISO y mucho más legible.
- Bibliotecas:
iban(npm),python-stdnum,iban4j(Java) gestionan la validación y el formato — nunca reimplementar el MOD 97-10 a mano. - Wise, Revolut, N26: sus IBAN de clientes suelen ser belgas o lituanos (licencia local). Perfectamente válidos en SEPA para un cliente francés, aunque algunos empleadores todavía los rechacen — una práctica ilegal según el reglamento SEPA.
- IBAN virtuales: Treezor, Swan o Stripe Treasury generan IBAN virtuales vinculados a una cuenta matriz, para rastrear por cliente o por uso — muy utilizado en el cobro.
- Seguridad: nunca registrar un IBAN en claro; tratarlo como un dato sensible.