Vai al contenuto
Calcolo Codice Fiscale Inverso

L’algoritmo del codice fiscale, regola per regola

A cura della RedazioneAggiornato il 8 minuti di lettura

Il codice fiscale si costruisce in sei passaggi, che traducono in caratteri altrettanti dati anagrafici (cognome, nome, anno, mese, giorno con il sesso e comune di nascita), e si chiude con un settimo carattere calcolato sui quindici già scritti. Questa pagina è la specifica completa dei sette passaggi, in prosa e in tabelle. Il codice per implementarla sta invece nelle pagine per sviluppatori.

I sei passaggi, più il carattere calcolato

L’ordine è rigido e le lunghezze sono fisse: il risultato è sempre lungo sedici caratteri, qualunque sia la lunghezza del cognome o il nome del comune. I primi sei passaggi convertono un dato; il settimo non converte nulla, controlla.

#BloccoCar.Da che cosa si ricava
1Cognome3consonanti in ordine, poi vocali, poi X di riempimento
2Nome3come il cognome, salvo l’eccezione delle quattro consonanti
3Anno2le ultime due cifre dell’anno di nascita
4Mese1una lettera fra dodici, secondo la tabella dei mesi
5Giorno e sesso2il giorno, aumentato di quaranta per il sesso femminile
6Comune4il codice Belfiore del comune o dello Stato di nascita
7Controllo1calcolato sui quindici caratteri già scritti

Prima di iniziare, un passaggio preliminare che l’algoritmo dà per scontato: cognome e nome vanno ridotti alle sole lettere dell’alfabeto latino di base. Gli accenti si eliminano riconducendo la lettera alla forma semplice, gli apostrofi e gli spazi si scartano. D’Angelo si tratta come DANGELO, De Luca come DELUCA.

Passaggio 1: la regola del cognome

Si scorrono le lettere del cognome nell’ordine in cui compaiono e si raccolgono prima tutte le consonanti, poi tutte le vocali. Della sequenza così ottenuta si prendono i primi tre caratteri. Se ne restano meno di tre, si completa con la lettera X.

CognomeConsonantiVocaliBlocco
ROSSIR, S, SO, IRSS
RUSSOR, S, SU, ORSS
ESPOSITOS, P, S, TE, O, I, OSPS
D’ANGELOD, N, G, LA, E, ODNG
REREREX

Le vocali entrano in gioco soltanto quando le consonanti non bastano, e allora si aggiungono in coda nell’ordine originale. Rossi e Russo hanno vocali diverse ma tre consonanti a testa, quindi le vocali non vengono nemmeno consultate e i due cognomi producono lo stesso blocco.

Passaggio 2: la regola del nome e l’eccezione delle quattro consonanti

Il nome segue la stessa regola del cognome, con una sola deviazione, ed è l’unica irregolarità di tutto l’algoritmo: se il nome contiene quattro o più consonanti si prendono la prima, la terza e la quarta, saltando la seconda. Con tre consonanti o meno si torna alla regola ordinaria.

NomeConsonantiRegola applicataBlocco
GIOVANNIG, V, N, N4 consonanti: 1ª, 3ª, 4ªGNN
FRANCESCOF, R, N, C, S, C6 consonanti: 1ª, 3ª, 4ªFNC
ANDREAN, D, R3 consonanti: regola del cognomeNDR
MARIOM, R2 consonanti: si aggiungono le vocaliMRA
LUCAL, C2 consonanti: si aggiungono le vocaliLCU

La soglia è quattro consonanti nette, contate sul nome ripulito da accenti e spazi. Un nome composto va trattato come un’unica parola: le due parti si concatenano prima di contare.

Passaggi 3, 4 e 5: la data di nascita e il sesso

L’anno: due cifre

Si scrivono le ultime due cifre dell’anno di nascita, con lo zero iniziale quando serve: 1985 diventa 85, 2003 diventa 03. Il secolo non viene registrato da nessuna parte, ed è una scelta che l’algoritmo paga in fase di lettura inversa: dal codice l’anno completo non si ricava, si deduce.

Il mese: una lettera fra dodici

Il mese si converte in una lettera secondo una tabella fissa che non segue l’ordine alfabetico.

Agen
Bfeb
Cmar
Dapr
Emag
Hgiu
Llug
Mago
Pset
Rott
Snov
Tdic

Nessuna lettera al di fuori di queste dodici è ammessa in nona posizione. La tabella completa dei mesi riporta anche le lettere escluse.

Il giorno, con il sesso incorporato

Si scrive il giorno su due cifre, con lo zero iniziale quando serve. Se il sesso è femminile, al giorno si sommano quaranta: il 1º gennaio diventa 01 per un uomo e 41 per una donna. L’intervallo maschile va da 01 a 31, quello femminile da 41 a 71, e i due non si sovrappongono mai.

È l’unico punto in cui l’algoritmo comprime due informazioni negli stessi caratteri, e lo fa senza perdite: dal valore si ricavano sia il giorno sia il sesso.

Passaggio 6: il comune di nascita

Quattro caratteri, una lettera seguita da tre cifre: è il codice Belfiore, detto anche codice catastale. Non si calcola, si cerca: la corrispondenza fra comune e codice è stabilita da un registro, ed è uno a uno.

Per chi è nato fuori dall’Italia il blocco riporta il codice dello Stato estero, che inizia sempre per Z. Nessun comune italiano ha un codice che inizia per quella lettera, quindi la distinzione è immediata. L’elenco dei codici Belfiore dei comuni e quello degli Stati esteri sono i due registri da cui pescare.

Passaggio 7: il carattere di controllo

A questo punto i quindici caratteri sono scritti e il sedicesimo si ricava da loro. Il procedimento è in tre mosse:

  1. A ogni carattere si assegna un valore. Il valore dipende dalla posizione: si usa una tabella per le posizioni dispari e un’altra per le pari, contando a partire da uno.
  2. Si sommano i quindici valori.
  3. Si divide la somma per ventisei e si guarda il resto: 0 corrisponde alla A, 1 alla B, e così fino a 25 che corrisponde alla Z.

Le due tabelle sono queste. In alto il valore per le posizioni dispari, in basso quello per le pari.

Cifre

010
101
252
373
494
5135
6156
7177
8198
9219

Lettere

A10
B01
C52
D73
E94
F135
G156
H177
I198
J219
K210
L411
M1812
N2013
O1114
P315
Q616
R817
S1218
T1419
U1620
V1021
W2222
X2523
Y2424
Z2325

La tabella delle posizioni pari è semplice: la cifra vale se stessa e la lettera vale il proprio posto nell’alfabeto, contato da zero. Quella delle posizioni dispari non ha invece alcuna regolarità e va consultata voce per voce. La pagina dedicata al carattere di controllo mostra il calcolo su un codice che scegli tu, riga per riga.

Un calcolo svolto per intero

Mettiamo insieme i sette passaggi su un caso: uomo, nato il 1º agosto 1985 a Roma, di cognome Rossi e di nome Mario. Cognome RSS, nome MRA, anno 85, mese M, giorno 01 senza aggiunta di quaranta, comune H501. Restano da sommare i quindici valori.

Pos.Car.TabellaValore
1Rdispari8
2Spari18
3Sdispari12
4Mpari12
5Rdispari8
6Apari0
78dispari19
85pari5
9Mdispari18
100pari0
111dispari0
12Hpari7
135dispari13
140pari0
151dispari0
Somma120

120 diviso ventisei dà resto 16, e il resto 16 corrisponde alla lettera Q. Il codice completo è RSSMRA85M01H501Q.

0/16

Incolla il codice per rileggerlo a ritroso e confrontare il risultato con i dati di partenza. Per il percorso inverso completo: decodifica del codice fiscale.

Che cosa l’algoritmo non è in grado di prevedere

La specifica è completa e deterministica: dati gli stessi cinque dati anagrafici, il risultato è sempre quello. Proprio per questo non copre il caso in cui due persone arrivino allo stesso codice.

Quando succede, l’Agenzia delle Entrate attribuisce a una delle due una variante in cui alcune cifre sono sostituite da lettere, partendo da destra, e ricalcola il carattere di controllo. L’omocodia dipende dall’ordine di attribuzione, cioè da un’informazione che sta negli archivi e non nei dati anagrafici: nessun calcolo può anticiparla.

La conseguenza pratica va tenuta a mente ogni volta che si usa un calcolatore, incluso quello di questo sito: il codice prodotto è quello che le regole prescrivono, non necessariamente quello attribuito. Per gli ambienti di collaudo, dove serve un codice formalmente corretto e non associato a nessuno, ci sono il generatore e un set di codici di prova già verificati.

Domande frequenti

Fonte: DM 23 dicembre 1976 (Ministero delle Finanze) per le regole di formazione e per le due tabelle di valori · ISTAT, elenco dei comuni italiani, per i codici Belfiore. Le tabelle e il calcolo svolto in questa pagina sono generati dalle stesse strutture usate dal decoder del sito, così che non possano divergere dal codice pubblicato. Fonti e metodo

Approfondisci

Avvertenza

Questo strumento decodifica la struttura formale di un codice fiscale e ne verifica il carattere di controllo. Non conferma che il codice sia stato effettivamente attribuito a una persona: quella verifica è possibile solo attraverso il servizio ufficiale dell’Agenzia delle Entrate. Fonti e metodo