Warning: mysql_connect(): Can't connect to MySQL server on 'sql.morfoedro.eu' (113) in /home/mhd-01/www.chiappani.it/htdocs/prog/local.inc on line 9

Warning: mysql_select_db(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/mhd-01/www.chiappani.it/htdocs/prog/local.inc on line 10

Warning: mysql_select_db(): A link to the server could not be established in /home/mhd-01/www.chiappani.it/htdocs/prog/local.inc on line 10
Alexandre Rodichevski - Informatica

Informatica

Come è costruito il codice fiscale

Sommario

Introduzione

Il codice fiscale, istituito dal Ministero delle Finanze del Governo italiano con Decreto del 23/12/1976, n. 13813, serve per identificare le persone fisiche e giuridiche a fini fiscali.

In questo articolo vengono presentati la struttura del codice fiscale e l'algoritmo di composizione dai dati anagrafici di una persona, corredati da alcuni esempi. Qui ci limitiamo al solo formato alfanumerico del codice fiscale previsto per identificare le persone fisiche. Rimandiamo all'articolo Come controllare la correttezza della partita IVA dedicato al formato numerico usato per le persone giuridiche.

L'algoritmo può servire anche come metodo di controllo della correttezza di un dato codice fiscale, per evitare gli errori comunemente commessi durante la trascrizione manuale di detto codice. Il controllo diventa particolarmente importante per poter trasmettere all'Anagrafe Tributaria i dati fiscali corretti, secondo quanto previsto dal Decreto Legge del 04/07/2006 n. 223. Inoltre tale algoritmo può facilitare l'inserimento dei dati anagrafici in una maschera estraendo dal codice fiscale il sesso, la data e il luogo di nascita. Non è possibile, putroppo, utilizzare l'algoritmo per generare in proprio un codice fiscale, per le ragioni descritte nella sezione Collisione.

È disponibile un programma di controllo del codice fiscale in PL/SQL di Oracle. Il servizio on line presente nel portale Morfoedro permette di controllare la correttezza del codice fiscale della persona fisica e dà alcune informazioni, ricavabili dal codice, su cognome, nome, sesso, data e luogo di nascita.

Sono graditi commenti e domande che è possibile inviare al seguente indirizzo e-mail: alexandre.rodichevski@morfoedro.it.

In fondo a questa pagina si possono trovare le domande frequenti. Si ringrazia il signor Paolo Romano per la discussione che ha permesso di creare la sezione delle domande.

Struttura del codice fiscale

Il codice fiscale è una stringa composta da 16 tra lettere maiuscole dell'alfabeto inglese e cifre. Ha la struttura presentata nella seguente tabella:

Descrizione Posizione Composizione* Esempio
Cognome da 1 a 3 tre lettere RSS
Nome da 4 a 6 tre lettere GVN
Anno di nascita 7 e 8 due cifre 61
Mese di nascita 9 una lettera A
Giorno di nascita e sesso 10 e 11 due cifre 01
Luogo di nascita da 12 a 15 una lettera seguita da tre cifre F205
Carattere di controllo 16 una lettera N

* Nota. Al posto delle cifre possono comparire le lettere, come è descritto nella sezione Collisione. Le posizioni sono numerate da 1 a 16.

Algoritmo di composizione del codice fiscale

Di seguito è spiegato l'algoritmo di conversione delle generalità di una persona in un codice fiscale.

Cognome e nome

Il cognome e il nome della persona sono convertiti in lettere maiuscole dell'alfabeto inglese (26 caratteri) eliminando gli eventuali spazi, trattini e apostrofi. È conteggiato il numero delle vocali e delle consonanti contenute nel cognome e nel nome. La vocale è una delle cinque lettere A, E, I, O, U, le consonanti sono le rimanenti 21 lettere dell'alfabeto.

Il campo del cognome è formato da tutte le consonanti copiate nello stesso ordine in cui si riscontrano nel cognome, seguite dalle vocali. Se il risultato contiene un numero di lettere inferiore a 3, viene riempito da X a destra. Le prime tre lettere del risultato vengono copiate nel codice fiscale, nelle posizioni da 1 a 3.

La formazione del campo del nome dipende dal numero delle consonanti: se supera 3, si prendono la prima, la terza e la quarta consonante del nome. Altrimenti si procede come nella formazione del cognome. Le prime tre lettere del risultato vengono copiate nel codice fiscale, nelle posizioni da 4 a 6. Questo metodo è stato adottato, si pensa, a causa dei tanti nomi composti in uso in Italia, come ad esempio Maria Teresa.

Data di nascita e sesso

Nelle posizioni 7 e 8 si inseriscono le due ultime cifre dell'anno di nascita.

Il mese di nascita si converte in una lettera, secondo la seguente tabella:

Mese Lettera
gennaio A
febbraio B
marzo C
aprile D
maggio E
giugno H
luglio L
agosto M
settembre P
ottobre R
novembre S
dicembre T

La lettera che rappresenta il mese si inserisce nella posizione 9.

Le posizioni 10 e 11 contengono il giorno di nascita, con gli zeri iniziali. Per il sesso femminile a tale numero si aggiunge 40.

Luogo di nascita

Nelle posizioni da 12 a 15 viene collocato il codice del luogo di nascita composto da una lettera e tre cifre. Il luogo di nascita corrisponde ad uno dei comuni italiani oppure ad uno degli stati esteri. Ad esempio, a Milano corrisponde il codice F205.

La codifica dei luoghi è a cura della Direzione generale del catasto ed è in continuo aggiornamento. È possibile avere l'elenco completo dei luoghi dal sito dell'Agenzia del territorio.

Collisione

Esistono casi in cui i quindici caratteri del codice fiscale calcolati fino a questo punto per la persona in questione, coincidono con quelli di un'altra persona già in possesso di un codice fiscale. Per attribuire un codice univoco ad ogni persona, si provvede a modificare i quindici caratteri del nuovo codice fiscale, in modo seguente. Le cifre nelle posizioni 7, 8, 10, 11, 13, 14 e 15 si convertono nelle lettere secondo la funzione descritta nella seguente tabella:

Cifra Lettera
0 L
1 M
2 N
3 P
4 Q
5 R
6 S
7 T
8 U
9 V

Si converte a partire dall'ultima posizione verso la prima, affinché il nuovo codice fiscale non coincida con quelli già attribuiti precedentemente.

Questa operazione piò essere eseguita solo da un ufficio centralizzato che ha la competenza di attribuire il codice fiscale.

Carattere di controllo

Ogni carattere del codice fiscale è convertito in un codice da 0 a 25 secondo la seguente regola. La cifra è trasformata nel numero corrispondente, ad esempio 7 in 7. La lettera A si converte in 0, B in 1, ecc., Z si converte in 25.

Viene calcolata la somma di controllo per le posizioni da 1 a 15, in modo diverso per i posti pari e quelli dispari. Ogni posizione pari contribuisce alla somma con il proprio codice. Ogni posizione dispari contribuisce con una funzione del proprio codice, descritta nella seguente tabella:

Codice Contributo
0 1
1 0
2 5
3 7
4 9
5 13
6 15
7 17
8 19
9 21
10 2
11 4
12 18
13 20
14 11
15 3
16 6
17 8
18 12
19 14
20 16
21 10
22 22
23 25
24 24
25 23

Dividendo la somma di controllo per 26, si ottiene il resto che, convertito nella lettera, si colloca nella posizione 16.

Esempi

Consideriamo alcuni esempi dell'algoritmo di conversione delle generalità in un codice fiscale.

Esempio 1

Rossi Giovanni nato il 1 gennaio 1961 a Milano.

Il cognome si converte in ROSSI. Le consonanti sono tre: RSS, le vocali sono due: OI. Quindi, nelle posizioni da 1 a 3 vanno le tre consonanti RSS.

Il nome si converte in GIOVANNI. Le consonanti sono quattro: GVNN, le vocali sono quattro: IOAI. Quindi, nelle posizioni da 4 a 6 vanno la prima, la terza e la quarta consonante GNN.

Nelle posizioni 7 e 8 si inseriscono le due ultime cifre dell'anno di nascita: 61.

A gennaio corrisponde la lettera A che va messa nella posizione 9.

Le posizioni 10 e 11 contengono il giorno di nascita: 01.

Il luogo di nascita Milano ha il codice F205 che va messo nelle posizioni da 12 a 15.

Per calcolare il codice di controllo, usiamo la seguente tabella:

Posizione Carattere Codice Contributo
1 R 17 8
2 S 18 18
3 S 18 12
4 G 6 6
5 N 13 20
6 N 13 13
7 6 6 15
8 1 1 1
9 A 0 1
10 0 0 0
11 1 1 0
12 F 5 5
13 2 2 5
14 0 0 0
15 5 5 13

La somma di controllo è 117. Il resto di divisione per 26 è 13. A questo codice corrisponde la lettera N. Quindi, il codice fiscale risulterebbe RSSGNN61A01F205N.

Esempio 2

Lo stesso dell'esempio precedente ed esiste già un codice fiscale RSSGNN61A01F205N assegnato ad altra persona.

Modificheremo la stringa RSSGNN61A01F205 sostituendo i numeri, come descritto nel paragrafo Collisione. Prima sostituiamo la cifra 5 in lettera R nella posizione 15. Ammettiamo che esista già un codice fiscale con i primi 15 caratteri RSSGNN61A01F20R. Allora, sostituiamo la cifra 0 nella posizione 14 in L. Supponiamo che il risultato RSSGNN61A01F2LR non sia stato assegnato a nessuno.

Calcoliamo il carattere di controllo:

Posizione Carattere Codice Contributo
1 R 17 8
2 S 18 18
3 S 18 12
4 G 6 6
5 N 13 20
6 N 13 13
7 6 6 15
8 1 1 1
9 A 0 1
10 0 0 0
11 1 1 0
12 F 5 5
13 2 2 5
14 L 11 11
15 R 17 8

La somma di controllo 123 divisa per 26 dà il resto 19 al quale corrisponde la lettera T. Quindi, il risultato finale è RSSGNN61A01F2LRT.

Esempio 3

Bò Maria Giovanna nata il 7 dicembre 2001 a San Marino.

Il cognome si converte in BO. Contiene l'unica consonante B e l'unica vocale O. Quindi, nelle posizioni da 1 a 3 vanno la consonante, la vocale e il carattere di riempimento: BOX.

Il nome si converte in MARIAGIOVANNA. Le consonanti sono sei: MRGVNN, le vocali sono sette: AIAIOAA. Quindi, nelle posizioni da 4 a 6 vanno la prima, la terza e la quarta consonanti MGV.

Nelle posizioni 7 e 8 si inseriscono le due ultime cifre dell'anno di nascita: 01.

A dicembre corrisponde la lettera T che va messa nella posizione 9.

Le posizioni 10 e 11 contengono il giorno di nascita al quale bisogna aggiungere 40 per indicare il sesso femminile: 47.

Il luogo di nascita San Marino ha il codice Z130 che va messo nelle posizioni da 12 a 15.

Calcoliamo il carattere di controllo:

Posizione Carattere Codice Contributo
1 B 1 0
2 O 14 14
3 X 23 25
4 M 12 12
5 G 6 15
6 V 21 21
7 0 0 1
8 1 1 1
9 T 19 14
10 4 4 4
11 7 7 17
12 Z 25 25
13 1 1 0
14 3 3 3
15 0 0 1

La somma di controllo è 153. Il resto di divisione per 26 è 23. A questo codice corrisponde la lettera X. Quindi, il codice fiscale risulterebbe BOXMGV01T47Z130X.

Domande più frequenti e risposte

  1. Sarebbe possibile avere l'elenco delle corrispondenze tra i Comuni Italiani e le ultime 3-4 cifre del CF?

    L'elenco ufficiale è incorporato nel programma scaricabile dal sito ufficiale dell'Agenzia del territorio.

  2. Esiste un sistema per vedere a quale nome e cognome corrispondono i primi sei caratteri di un codice fiscale?

    Vice versa, dato un cognome e un nome, è possibile verificare se i primi sei caratteri del CF corrispondono a questi. Basta seguire la parte dell'algoritmo dedicata al cognome e nome.

Risorse

  1. Decreto del 23/12/1976, n. 13813 dal Ministero delle Finanze nel Centro Ricerca Documentazione Economica e Finanziaria.
    http://www.cerdef.it/
  2. Elenco dei comuni italiani nel sito dell'Agenzia del territorio.
    http://www.agenziaterritorio.it/
  3. Servizio on line per controllare la correttezza del codice fiscale della persona fisica e per dare alcune informazioni, ricavabili dal codice, su cognome, nome, sesso, data e luogo di nascita.
    http://www.morfoedro.it/cfdescr.php
  4. Sito di Umberto Salsi con programmi di controllo del codice fiscale e della partita IVA in diversi linguaggi e controllo on line di questi codici.
    http://www.icosaedro.it/cf-pi/index.html