sábado, 11 de mayo de 2013

Que lo sepas… validar NIF, NIE y CIF en JAVA gracias a la AEAT

Buenas, a veces a los programadores nos gusta escribir código pensando que la funcionalidad que nosotros queremos para nuestra aplicación no ha sido desarrollada. Pues bien a veces estamos haciendo doblemente el trabajo ya que es posible que lo que nosotros queramos hacer ya exista y se puede reaprovechar. Un ejemplo es como validar un NIF, un NIE y un CIF. Verás un montón de páginas con diversos tipos de algoritmos de validación de un NIF, que puedes también reutilizar en tus aplicaciones. Eso sí nadie te garantiza que sean 100 % correctos, para ello hay que analizarlos línea por línea y testearlos haciendo varias pruebas. Pues bien para las empresas que desarrollan software la AEAT ha proporcionado un archivo .jar con un método que podremos usar para conseguir validar un NIF, un NIE y un CIF. Campo que siempre suele aparecer en casi todo formulario que se precie y cuya validación es un poco farragosa. Pues bien nada más simple: agregas el archivo .jar a la liblioteca del tu proyecto y añades el paquete a tu proyecto mediante un import.

El zip con todo lo proporcionado por la AEAT está disponible en este link.
En el zip hay un archivo con documentación muy útil y hasta con un ejemplo de código, pero el nif pásalo con letras en mayúsculas para que funcione bien.

String cad = “000000000”;
Validador val = new Validador();
int ret = val.checkNif(cad);
if( ret > 0) {
// NIF_OK
}
else {
// NIF_MAL
}
...que por ejemplo en un función quedaría:
  public boolean EsValido(String nif) {

        Validador val = new Validador();

        int ret = val.checkNif(nif);

        if (ret > 0) {
        // NIF_OK
            return true;
        } else {
        // NIF_MAL
            return false;
        }
    }
Si el contenido de la variable nif lo obtienes, por ejemplo, de un control jTextfield con el método getText() ya funcionaría y como el resultado de la validación no seria true si no es correcto, podrías avisar al usuario indicando que lo que ha introducido no es válido.

5 comentarios:

  1. Estupéndo, en mi empresa llevabamos años modificando manualmente una clase que validaba los NIF NIE y CIF de las empresas, y intentabamos que fuera lo más actualizada posible, pero si la propia AEAT tiene su propio fichero me parece estuéndo.

    Gracias por la información.

    ResponderEliminar
  2. Buenas! Alguien tiene ese .jar por ahí? La web de la AEAT da error... demasiadas buenas noticias de golpe :·)

    ResponderEliminar
  3. Hola:

    ¿ Es posible obtener los fuentes de la libreria ?
    No podemos integrar nada que no podamos verificar sus fuentes o el origen sea confiable ( una página persona no es confiable )

    Gracias

    ResponderEliminar
  4. ¿Podrías no hacer pasar tus desarrollos por desarrollos de la AEAT? El enlace lleva a una página privada tuya.

    ResponderEliminar