Carattere di Controllo del Codice Fiscale
Come si calcola l'ultima lettera del codice fiscale: l'algoritmo Luhn spiegato passo per passo, con le tabelle dei valori pari e dispari e un esempio numerico verificato secondo il D.M. 12 maggio 1995.
L'ultima lettera del codice fiscale, quella che chiude la sequenza dei 16 caratteri, è un carattere di controllo: non racchiude alcun dato anagrafico, ma è il risultato di un calcolo matematico applicato ai 15 caratteri precedenti. La sua funzione è permettere a banche, pubblica amministrazione e Agenzia delle Entrate di verificare istantaneamente che un codice fiscale sia formalmente corretto, senza dover consultare alcun database. In questa guida spieghiamo a cosa serve, come si calcola e come usarlo per capire se un codice è valido o contiene un errore.
Vuoi verificare se un codice fiscale è corretto senza fare i calcoli a mano? Usa il nostro calcolatore codice fiscale, che applica l'algoritmo ufficiale e ti restituisce immediatamente il carattere di controllo.
A cosa serve il carattere di controllo
Il carattere di controllo (in inglese check digit) è un meccanismo di sicurezza informatica pensato per intercettare gli errori di battitura. Si basa su un principio semplice ma efficace: se anche un solo carattere tra i primi 15 viene scritto male, la lettera finale non corrisponde più al valore atteso, e il codice viene rifiutato automaticamente dal sistema.
Questo sistema protegge ogni transazione in cui il codice fiscale viene digitato a mano: apertura di un conto bancario, iscrizione al servizio sanitario, invio di una dichiarazione dei redditi, stipula di un contratto. Senza il carattere di controllo, un banale scambio di due cifre (per esempio 73 al posto di 37) passerebbe inosservato e finirebbe per associare l'operazione alla persona sbagliata.
L'algoritmo alla base, definito dal D.M. 12 maggio 1995, è una variante del metodo di Luhn, uno schema di checksum inventato negli anni Sessanta per i numeri delle carte di credito e ancora oggi usato in moltissimi sistemi di identificazione numerica.
Come si calcola: l'algoritmo passo per passo
Il calcolo del carattere di controllo segue quattro passaggi fissi. Vediamoli in ordine, prima della teoria, perché la logica è lineare una volta capita la struttura.
- Si prendono i primi 15 caratteri del codice fiscale.
- A ciascun carattere viene assegnato un valore numerico, usando due tabelle diverse a seconda che occupi una posizione dispari (1ª, 3ª, 5ª...) o pari (2ª, 4ª, 6ª...).
- Si sommano tutti i valori ottenuti.
- Si calcola il resto della divisione della somma per 26. Il resto, un numero da 0 a 25, corrisponde a una lettera dell'alfabeto (0=A, 1=B, ..., 25=Z). Quella lettera è il carattere di controllo.
L'uso di due tabelle separate per pari e dispari non è un vezzo estetico: serve a rendere l'algoritmo sensibile all'ordine dei caratteri. Se due caratteri vengono scambiati di posto, la loro posizione (pari o dispari) cambia, e di conseguenza cambiano i valori assegnati. Questo fa sì che anche una semplice inversione venga intercettata.
Le tabelle dei valori pari e dispari
Queste sono le tabelle di conversione ufficiali previste dal decreto. Le cifre da 0 a 9 e le lettere da A a Z vengono convertite in numeri con criteri diversi a seconda della posizione occupata.
Tabella valori per posizione PARI
In posizione pari la conversione è semplice e sequenziale: ad ogni carattere corrisponde la sua posizione nell'alfabeto (le cifre 0-9 equivalgono alle lettere A-J).
| Carattere | Valore | Carattere | Valore | Carattere | Valore |
|---|---|---|---|---|---|
| 0 / A | 0 | J / 9 | 9 | T | 19 |
| 1 / B | 1 | K | 10 | U | 20 |
| 2 / C | 2 | L | 11 | V | 21 |
| 3 / D | 3 | M | 12 | W | 22 |
| 4 / E | 4 | N | 13 | X | 23 |
| 5 / F | 5 | O | 14 | Y | 24 |
| 6 / G | 6 | P | 15 | Z | 25 |
| 7 / H | 7 | Q | 16 | ||
| 8 / I | 8 | R | 17 | ||
| S | 18 |
Tabella valori per posizione DISPARI
In posizione dispari la conversione segue una sequenza non ordinata, studiata appositamente per massimizzare la capacità dell'algoritmo di rilevare gli errori.
| Carattere | Valore | Carattere | Valore | Carattere | Valore |
|---|---|---|---|---|---|
| 0 / A | 1 | J / 9 | 21 | T | 14 |
| 1 / B | 0 | K | 2 | U | 16 |
| 2 / C | 5 | L | 4 | V | 10 |
| 3 / D | 7 | M | 18 | W | 22 |
| 4 / E | 9 | N | 20 | X | 25 |
| 5 / F | 13 | O | 11 | Y | 24 |
| 6 / G | 15 | P | 3 | Z | 23 |
| 7 / H | 17 | Q | 6 | ||
| 8 / I | 19 | R | 8 | ||
| S | 12 |
Notate un dettaglio importante: le cifre e le lettere condividono lo stesso valore. Per esempio, la lettera B e la cifra 1 valgono entrambe 0 in posizione dispari e 1 in posizione pari. Questo perché nel codice fiscale non c'è ambiguità tra una lettera e un numero nella stessa posizione: il sistema sa sempre quale sta leggendo.
Tabella di conversione del resto in lettera
Una volta sommati tutti i valori e diviso per 26, il resto va convertito nella lettera di controllo finale. La corrispondenza è diretta: si contano le lettere dell'alfabeto partendo da A.
| Resto | Lettera | Resto | Lettera | Resto | Lettera |
|---|---|---|---|---|---|
| 0 | A | 9 | J | 18 | S |
| 1 | B | 10 | K | 19 | T |
| 2 | C | 11 | L | 20 | U |
| 3 | D | 12 | M | 21 | V |
| 4 | E | 13 | N | 22 | W |
| 5 | F | 14 | O | 23 | X |
| 6 | G | 15 | P | 24 | Y |
| 7 | H | 16 | Q | 25 | Z |
| 8 | I | 17 | R |
Esempio numerico verificato: calcoliamo la W
Vediamo l'algoritmo in azione su un codice fiscale reale. Prendiamo i primi 15 caratteri di un codice ipotetico di Marco Rossi, nato a Roma il 15 dicembre 1973:
R S S M R A 7 3 T 1 5 H 5 0 1
Suddividiamo i caratteri in posizione dispari e pari, applichiamo le rispettive tabelle e sommiamo.
Caratteri in posizione DISPARI (1, 3, 5, 7, 9, 11, 13, 15)
| Posizione | 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 |
|---|---|---|---|---|---|---|---|---|
| Carattere | R | S | R | 7 | T | 5 | 5 | 1 |
| Valore | 8 | 12 | 8 | 17 | 14 | 13 | 13 | 0 |
Somma dispari = 8 + 12 + 8 + 17 + 14 + 13 + 13 + 0 = 85
Caratteri in posizione PARI (2, 4, 6, 8, 10, 12, 14)
| Posizione | 2 | 4 | 6 | 8 | 10 | 12 | 14 |
|---|---|---|---|---|---|---|---|
| Carattere | S | M | A | 3 | 1 | H | 0 |
| Valore | 18 | 12 | 0 | 3 | 1 | 7 | 0 |
Somma pari = 18 + 12 + 0 + 3 + 1 + 7 + 0 = 41
Calcolo finale
Somma totale = 85 + 41 = 126
Divisione per 26: 126 ÷ 26 = 4 con resto di 22
Nella tabella di conversione, il resto 22 corrisponde alla lettera W.
Il codice fiscale completo è quindi:
R S S M R A 7 3 T 1 5 H 5 0 1 W
Questa è la lettera che compare come 16° carattere del codice fiscale di Marco Rossi. Cambiate anche un solo carattere dei primi 15, e il calcolo darà una lettera diversa, rendendo il codice immediatamente non valido.
Come verificare se un codice fiscale è corretto
Il calcolo del carattere di controllo è il primo livello di verifica che qualsiasi sistema informatico applica a un codice fiscale. Se l'ultima lettera non coincide con quella che l'algoritmo produce a partire dai primi 15 caratteri, il codice viene scartato senza ulteriori controlli.
Esistono due livelli di verifica:
- Verifica formale: controlla solo la correttezza matematica del carattere di controllo. Un codice formalmente valido può comunque appartenere a una persona inesistente, ma almeno non contiene errori di battitura.
- Verifica di esistenza: confronta il codice con l'anagrafe tributaria dell'Agenzia delle Entrate, per accertare che corrisponda a una persona reale e che i dati anagrafici coincidano. È il servizio usato da banche e pubblica amministrazione.
Vuoi verificare un codice fiscale senza fare i calcoli a mano? Il nostro calcolatore codice fiscale applica l'algoritmo ufficiale in tempo reale: inserisci i dati anagrafici e ottieni il codice completo con il carattere di controllo calcolato.
Limiti del carattere di controllo
È importante capire cosa il carattere di controllo può e non può fare. Può rilevare la stragrande maggioranza degli errori di battitura: cifre sbagliate, lettere invertite, caratteri omessi. Non può invece garantire che il codice appartenga a una persona esistente, né che i dati anagrafici siano veri.
Esiste anche un limite matematico: in casi molto rari, due errori contemporanei possono compensarsi a vicenda e produrre una lettera di controllo formalmente corretta. La probabilità è bassa, ma non nulla. È per questo che la verifica formale è solo il primo filtro, e che per le operazioni sensibili (apertura di un rapporto bancario, stipula di un contratto) è sempre richiesta anche la verifica di esistenza presso l'Agenzia delle Entrate.
Domande frequenti
Posso calcolare l'ultima lettera del codice fiscale a mano?
Sì, ma è un'operazione laboriosa. Servono le tre tabelle di conversione (valori dispari, valori pari, resto-lettera) e un po' di pazienza per applicarle ai 15 caratteri senza sbagliare. Per un controllo rapido è molto più pratico usare un calcolatore basato sull'algoritmo ufficiale.
Il carattere di controllo rende il codice fiscale univoco?
No. L'univocità del codice fiscale dipende dalla combinazione dei dati anagrafici (cognome, nome, data e luogo di nascita), non dal carattere di controllo. Come spiegato nella nostra guida sull'omocodia, due persone con gli stessi dati anagrafici possono ricevere lo stesso codice fiscale: in quel caso l'Agenzia delle Entrate interviene attribuendo un codice diverso.
Se cambio un dato anagrafico cambia anche l'ultima lettera?
Sì, quasi sempre. Modificando anche un solo carattere tra i primi 15 (per esempio correggendo una data di nascita), la somma dei valori cambia e quindi cambia il resto della divisione per 26, producendo un carattere di controllo diverso. È esattamente così che il sistema rileva le discrepanze.
Articolo a cura di Admeto Verde
Fondatore e direttore editoriale di AlgoSintesi. L'algoritmo di calcolo e le tabelle di conversione riportate seguono le regole stabilite dal D.M. 12 maggio 1995 (Gazzetta Ufficiale n. 129).
LinkedIn ↗