Número de identificación fiscalEl Número de Identificación Fiscal (NIF)[nota 1] es la manera de identificación tributaria utilizada en España para las personas físicas (con documento nacional de identidad (DNI) o número de identificación de extranjero (NIE) asignados por el Ministerio del Interior) y las personas jurídicas.[2][cita requerida] El antecedente del NIF es el CIF, utilizado en personas jurídicas. El Real Decreto 338/1990, de 9 de marzo, regula la composición y la forma de uso del NIF, hasta la entrada en vigor en enero de 2008 del Real Decreto 1065/2007, de 27 de julio. Formato del NIFDependiendo de si se trata de una persona física o jurídica se tiene:[3] NIF de personas físicasEl formato del NIF consiste básicamente en ocho números más un código de control (letra) para españoles con DNI, o bien en una letra, siete números y un código de control (letra) para el resto de personas físicas:[4][5]
NIF de Personas jurídicas y entidades en generalVéase también: Código de identificación fiscal
El formato consiste en una letra según la naturaleza jurídica de la entidad, 7 números y un código de control, que según la naturaleza jurídica de la entidad es un número o una letra. La letra inicial según la naturaleza jurídica es:[6]
Desde la Orden EHA/451/2008, los NIF de las personas jurídicas y entidades extranjeras (claves N y W) tienen claves separadas de las españolas, anteriormente había claves compartidas y las entidades extranjeras se distinguían por tener el código de control con letra mientras que las entidades españolas lo tenían con número. Solo las claves P, Q, R y S han mantenido desde que se crearon el código de control con letra, a pesar de corresponder a organismos públicos españoles. CaracterísticasEl código de control del NIF, sirve como código de garantía de seguridad. Su fundamento es el siguiente: de acuerdo al número de identificación, puede establecerse un modo por el cual saber si este número es correcto, o se trata de una falsificación. Para saber si el número es correcto, el último carácter del NIF es un código de control que se obtiene a partir de los caracteres anteriores. En caso de que el código de control especificado no coincida con el que se obtiene de los caracteres anteriores, se trataría de un número no válido. Si por error se introduce mal uno de los caracteres del NIF, el resultado del código de control será distinto y no coincidirá. Esto sirve para verificar que el número introducido es correcto. Código de control para números de DNI o NIEEl código de control se obtiene a partir del número completo del DNI (8 cifras) o el NIE (letra X, Y o Z seguido de 7 cifras) y dividiéndolo entre 23. En el caso del NIE se sustituye la primera letra por un 0, un 1 o un 2, según sea X, Y o Z respectivamente. Al resto resultante de dicha división, que deberá estar comprendido entre 0 y 22, se le asigna la letra de control según la equivalencia siguiente:
No se utilizan las letras: I, Ñ, O, U. La I y la O se descartan para evitar confusiones con otros caracteres, como 1, l o 0. La Ñ se descarta para evitar confusiones con la N. Algoritmo de ejemplo (Java): public static boolean isNifNumValid(String nif){
//Si el largo del NIF es diferente a 9, acaba el método.
if (nif.length()!=9){
return false;
}
String secuenciaLetrasNIF = "TRWAGMYFPDXBNJZSQVHLCKE";
nif = nif.toUpperCase();
//Posición inicial: 0 (primero en la cadena de texto).
//Longitud: cadena de texto menos última posición. Así obtenemos solo el número.
String numeroNIF = nif.substring(0, nif.length()-1);
//Si es un NIE reemplazamos letra inicial por su valor numérico.
numeroNIF = numeroNIF.replace("X", "0").replace("Y", "1").replace("Z", "2");
//Obtenemos la letra con un char que nos servirá también para el índice de las secuenciaLetrasNIF
char letraNIF = nif.charAt(8);
int i = Integer.parseInt(numeroNIF) % 23;
return letraNIF == secuenciaLetrasNIF.charAt(i);
}
Algoritmo PHP: function nif_valido($nif) {
$nif = strtoupper($nif);
$nifRegEx = '/^[0-9]{8}[A-Z]$/';
$letras = "TRWAGMYFPDXBNJZSQVHLCKE";
if (preg_match($nifRegEx, $nif)) return ($letras[(substr($nif, 0, 8) % 23)] == $nif[8]);
else return false;
}
Algoritmo javaScript // método para la clase String que indica si la cadena se corresponde con un nif para españoles válido o no. 8 cifras y letra mayúscula
String.prototype.isNif=function()
{
return /^(\d{8})([A-HJ-NP-TV-Z])$/.test(this) && ("TRWAGMYFPDXBNJZSQVHLCKE"[(RegExp.$1%23)]==RegExp.$2);
};
// ejemplo de uso
alert("12341234H".isNif()); // devolverá false
alert("00000000T".isNif()); // devolverá true
Algoritmo Python3 import sys
num = int(input("Introduzca su DNI: "))
secuenciaLetrasNIF = "TRWAGMYFPDXBNJZSQVHLCKE"
letra = num % 23
num_letra = secuenciaLetrasNIF[letra]
print(f"Su NIF es: {num}{num_letra}")
Algoritmo C #include <stdio.h>
#include <string.h>
#include <conio.h>
int main() {
int num, letra;
char num_letra;
char secuenciaLetrasNIF[30];
printf("Introduzca su DNI: ");
scanf("%d",&num);
strcpy(secuenciaLetrasNIF,"TRWAGMYFPDXBNJZSQVHLCKE");
letra = num % 23;
num_letra = secuenciaLetrasNIF[letra];
printf("Su NIF es: %d%c", num,num_letra);
getch();
return 0;
}
Código de control para otros NIFEn el caso de NIF que no son obtenidos a partir del DNI o NIE, el código de control se obtiene utilizando el número de 7 cifras, excluyendo la letra inicial y la letra o cifra final, puesto que es la que vamos a validar. Procedimiento:
Si el código de control es un número, este sería el resultado de la última operación. Si se trata de una letra, se utilizaría la siguiente relación:
Véase también
Notas
Referencias
Enlaces externos
|
Portal di Ensiklopedia Dunia