6 thoughts on “Clase para calcular el Código Internacional de Cuenta Bancaria (IBAN) en JAVA

  1. Edmundo

    Buenas Fernando,

    Antes de nada agradecerte tu aportación, es de gran ayuda..

    Comentarte que hay que hacer una mínima corrección al método «getIban», ya que no se están mostrando los dígitos de control del IBAN en la cadena resultado:
    – código original: String iban = codigoPais+entidad+oficina+dc+numeroCuenta;
    – código modificado: String iban = codigoPais+dcIban+entidad+oficina+dc+numeroCuenta;

    • Cierto Edmundo, tienes razón. Ya está corregido.

  2. Iago

    Hola Fernando

    He tenido que alterar un poco la clase para adaptarla a nuestras necesidades pero me he encontrado que cuando la cuenta empieza por 0 agrega incorrectamente el ES, según tu código lo añade dos veces y he añadido un pequeño control:

    Cuando devuelve el dcIban compruebo que no lleva un ES y si lo lleva no lo añado:

    if(dcIban.contains(«ES»)){
    iban = dcIban;
    }else{
    iban = «ES»+dcIban;
    }

    Cuenta ejemplo: ES0420387055936000144351

    Si me equivoco perdona mi torpeza.

    Saludos

    • Iago

      He de añadir que para mi caso solo necesito el IBAN «ES04» por lo que no añado el resto del string.

  3. Alvaro

    Hola Fernando y muchas gracias ante todo,

    Comparto el código simplificado que he creado a partir de tu aportacion por si le sirve a alguien:

    //Doy por hecho inicializar las variables, etc.

    //Parto de que pido los 20 numeros de cuenta en un string y lo guardo en aux

    iban=aux+»142800″;
    bnum=new BigInteger(iban);
    bnum=bnum.mod(noventaysiete);
    digcontrol=98-bnum.intValue();
    dc=Integer.toString(digcontrol);
    if(aux.length()<2)
    {
    iban="ES0"+dc+aux;
    }else
    {
    iban="ES"+dc+aux;
    }

    //Aquí se puede devolver el string iban ya formado.

  4. Alfredo

    Muchas gracias Fernando!!! Lo he implementado y me está funcionando correctamente para países como España y Portugal. Sin embargo, para por ejemplo Italia las cuentas tienen un código de verificación por delante de la cuenta, ¿cómo se calcularía éste IBAN? no encuentro información acerca de ello, por ejemplo: la cuenta X0542811101000000123456 el IBAN es IT60X0542811101000000123456. ¿Habrá que sustituir la X por el valor previamente y realizar el algoritmo?
    Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.