Validar IBAN - International Bank Account Number





El International Bank Account Number (IBAN) Código Internacional de Cuenta Bancaria, en español es un código alfanumérico que identifica una cuenta bancaria determinada en una entidad financiera en cualquier lugar del mundo (si el país está adherido al sistema IBAN). Es decir, a cada cuenta le corresponde un único IBAN mediante el cual se identifica el país, la entidad, la oficina y la cuenta. Se trata de un estándar (EBS204) del Comité Europeo de Estándares Bancarios, que a su vez cumple con el estándar ISO 13616. En España, el código IBAN sustituyó de manera definitiva al Código Cuenta Cliente (CCC) el 1 de febrero de 2014.

El objetivo del IBAN es facilitar el tratamiento automático de pagos y cobros transfronterizos. El estándar asegura la transmisión correcta de los datos y reduce las posibilidades de intervención manual. Por tanto contribuye a evitar los costes y las demoras asociadas a la transmisión incorrecta o insuficiente de los datos relativos a las cuentas bancarias.




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace IBAN_V
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string iban;
        
         
private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
       
          
        private void button1_Click(object sender, EventArgs e)
        {

            if (validarIBAN(iban) == true)
            {
                MessageBox.Show("IBAN Correcto");
            }
            else
            {
                MessageBox.Show("Algo funciona mal");
            }
        }

            bool validarIBAN(string iban)
            {
                iban = textBox1.Text;
                if (iban.Length < 4 || iban[0] == ' ' || iban[1] == ' ' || iban[2] == ' ' || iban[3] == ' ') throw new InvalidOperationException();

                var checksum = 0;
                var ibanLength = iban.Length;
                for (int charIndex = 0; charIndex < ibanLength; charIndex++)
                {
                    if (iban[charIndex] == ' ') continue;



                    int value;
                    var c = iban[(charIndex + 4) % ibanLength];
                    if ((c >= '0') && (c <= '9'))
                    {
                        value = c - '0';
                    }
                    else if ((c >= 'A') && (c <= 'Z'))
                    {
                        value = c - 'A';
                        checksum = (checksum * 10 + (value / 10 + 1)) % 97;
                        value %= 10;
                    }
                    else if ((c >= 'a') && (c <= 'z'))
                    {
                        value = c - 'a';
                        checksum = (checksum * 10 + (value / 10 + 1)) % 97;
                        value %= 10;
                    }
                    else throw new InvalidOperationException();

                    checksum = (checksum * 10 + value) % 97;
                   
                }
                return checksum == 1;

            }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
        }
    }
       
 }

























No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.