Codice fiscale inverso: che cosa si può leggere davvero nei sedici caratteri
Il codice fiscale non è un numero progressivo, è un dato calcolato. Ogni carattere nasce da un'informazione anagrafica precisa, e per tre di quelle informazioni il procedimento si può percorrere all'indietro senza perdere nulla. È questo che si intende con codice fiscale inverso: non una banca dati da interrogare, ma un calcolo da rifare al contrario.
La differenza è sostanziale e vale la pena chiarirla subito, perché è la fonte di quasi tutti i malintesi sull'argomento. Uno strumento di lettura inversa non «cerca» il codice da nessuna parte: lo smonta. Per questo funziona anche su un codice inventato, e per questo non può dirti a chi appartiene un codice vero.
Che cosa si recupera e che cosa è andato perduto
I sedici caratteri si dividono in due metà con destini opposti. La seconda metà (anno, mese, giorno, sesso, luogo) è una codifica: a ogni dato corrisponde un simbolo e a ogni simbolo un dato solo. Si torna indietro senza ambiguità. La prima metà, le sei lettere di cognome e nome, è invece un riassunto, e i riassunti non si srotolano.
La ragione è aritmetica. Il cognome viene ridotto a tre consonanti, le vocali sopravvivono solo se le consonanti non bastano, e l'ordine relativo si perde: RSS è il codice di Rossi, Russo, Rissi, Rasso, Russi e di qualunque altro cognome fatto delle stesse tre consonanti nella stessa sequenza. Tre lettere possono rappresentare al massimo diciassettemila combinazioni; i cognomi italiani sono oltre trecentomila. Ogni codice sta quindi in piedi per decine di cognomi diversi, e nessun calcolo può scegliere quello giusto perché l'informazione che li distingue è stata buttata via nel 1976.
Quello che si può fare, e che ha senso fare, è il controllo di compatibilità: prendere il nome e il cognome che si suppongono, calcolarne il codice e confrontarlo. Se le prime sei lettere coincidono, la persona è compatibile con quel codice; se non coincidono, quel codice non è suo. È esattamente la verifica che fa un ufficio quando riceve un modulo, ed è il motivo per cui su questo sito la lettura inversa e il calcolo diretto convivono.
La data di nascita e il secolo che manca
Le due cifre alle posizioni sette e otto sono le ultime due dell'anno. La nona lettera è il mese, secondo una tabella che salta le lettere facilmente confondibili: A gennaio, B febbraio, C marzo, D aprile, E maggio, H giugno, L luglio, M agosto, P settembre, R ottobre, S novembre, T dicembre. Nessun altro carattere è ammesso in quella posizione. Se ci trovi una F o una G, il codice è sbagliato prima ancora di verificare l'ultima lettera.
Il problema è l'anno. Due cifre distinguono gli anni all'interno di un secolo, non i secoli tra loro: 05 vale sia 1905 sia 2005, e nel codice non c'è un solo bit che dica quale dei due. È lo stesso difetto di progetto che nel 1999 prese il nome di Millennium bug, con l'aggravante che qui non è stato corretto, e non lo sarà, perché correggerlo significherebbe cambiare il codice fiscale di sessanta milioni di persone.
In pratica l'ambiguità riguarda una fascia stretta e si risolve quasi sempre da sé. Se le due cifre superano l'anno corrente, l'ipotesi del Duemila produrrebbe una nascita futura e va scartata: nel 2026 un codice con 80 può essere solo del 1980. Se invece le cifre stanno tra 00 e 26, entrambe le letture sono possibili, ma una descrive una persona giovane e l'altra una persona ultracentenaria. Questo strumento mostra entrambe le date, con la più recente in evidenza. Preferiamo dirti che l'informazione è ambigua piuttosto che scegliere al posto tuo senza avvisarti.
Il giorno che contiene anche il sesso
Le due cifre successive sembrano il giorno del mese e invece contengono due informazioni sovrapposte. Per gli uomini è il giorno, da 01 a 31. Per le donne è il giorno aumentato di quaranta, quindi da 41 a 71. Leggere al contrario è immediato, se il numero supera 40 si tratta di una donna e il giorno vero si ottiene sottraendo quaranta.
La conseguenza pratica è che i valori compresi tra 32 e 40 non significano niente: un codice che ne contenga uno è certamente errato. È uno dei controlli che questo lettore esegue prima ancora di guardare l'ultima lettera, insieme alla verifica che la data esista davvero, perché B30, il 30 febbraio, supera ogni controllo di forma e resta comunque una data che non è mai esistita.
Il luogo di nascita e i suoi quattro caratteri
Gli ultimi cinque caratteri prima della lettera finale sono il codice catastale, detto anche codice Belfiore, una lettera e tre cifre che identificano il comune di nascita. Se la lettera è una Z non si tratta di un comune ma di uno Stato estero, e questo è il primo dato che sorprende chi legge un codice per la prima volta: nel codice fiscale di chi è nato all'estero non c'è la città, c'è solo il Paese. Chi è nato a Berlino, ad Amburgo o a Monaco ha lo stesso codice, Z112, quello della Germania.
La seconda sorpresa riguarda il tempo. I codici catastali non vengono riciclati: quando un comune viene soppresso o accorpato, il suo codice esce dall'elenco dei comuni attivi ma resta perfettamente valido nei codici fiscali già attribuiti. Chi è nato a Mestre nel 1920 ha F159 nel proprio codice, e continuerà ad averlo, anche se Mestre non è più un comune dal 1926. Lo stesso vale per gli Stati. Chi è nato a Kiev nel 1975 ha nel codice l'Unione Sovietica, Z135, uno Stato che non esiste più da oltre trent'anni.
Per questo la lettura inversa ha bisogno di un archivio che comprenda anche ciò che è scomparso. Il nostro elenco contiene 11.056 voci: 7.894 comuni italiani in vigore, 294 Stati esteri compresi quelli storici e 2.868 comuni soppressi. Un lettore che si limitasse ai comuni di oggi restituirebbe «codice sconosciuto» proprio ai codici più vecchi, cioè quelli che più spesso hanno bisogno di essere decifrati.
Il carattere di controllo: la prova che il codice è scritto bene
L'ultima lettera non contiene informazioni anagrafiche, è una cifra di controllo calcolata sui quindici caratteri precedenti. A ogni carattere viene assegnato un valore, ma con due tabelle diverse a seconda che la posizione sia dispari o pari; i valori si sommano, si prende il resto della divisione per 26 e lo si converte in lettera, dove 0 corrisponde ad A e 25 a Z.
Nella lettura inversa questa lettera diventa lo strumento di verifica più utile che esista. Ricalcolandola sui primi quindici caratteri e confrontandola con quella scritta si scopre in un istante se il codice è stato trascritto male. Le due tabelle non sono un capriccio: se il valore dipendesse solo dal carattere e non dalla sua posizione, invertire per sbaglio due lettere vicine , l'errore di digitazione più comune, lascerebbe la somma invariata e l'errore passerebbe inosservato.
Attenzione però a che cosa dimostra e che cosa non dimostra. Un carattere di controllo corretto significa che i sedici caratteri sono coerenti tra loro, non che quel codice sia stato attribuito a qualcuno. Un codice completamente inventato, con una data plausibile e un comune esistente, supera la verifica senza problemi. Correttezza formale ed esistenza reale sono due cose diverse, e l'unica che possa confermare la seconda è l'Agenzia delle Entrate.
Omocodia: quando nel codice compaiono lettere al posto delle cifre
Ogni tanto un codice fiscale ha lettere dove ti aspetteresti dei numeri: RSSMRA80A01H50MM invece di RSSMRA80A01H501U. Non è un errore, è omocodia. Poiché il codice è calcolato e non progressivo, due persone con le stesse iniziali, nate lo stesso giorno nello stesso comune, generano lo stesso codice. In quel caso l'Agenzia delle Entrate ne assegna una variante. Sostituisce le cifre con lettere partendo da destra, secondo la tabella 0=L 1=M 2=N 3=P 4=Q 5=R 6=S 7=T 8=U 9=V, e ricalcola il carattere di controllo a ogni sostituzione.
Per la lettura inversa l'omocodia è una trappola precisa: se non la si riconosce, la data e il luogo risultano illeggibili o sbagliati. Questo lettore la gestisce in due tempi. Prima riporta ogni lettera alla cifra da cui deriva, ricostruendo il codice base e leggendo su quello data, sesso e luogo; poi evidenzia in azzurro, nel codice ristampato, esattamente quali caratteri erano stati sostituiti. Le posizioni interessate sono sempre e solo sette: le due dell'anno, le due del giorno e le tre cifre del codice catastale.
Va notato che il carattere di controllo va verificato sul codice così com'è, non su quello ricostruito. Il codice con omocodia è quello realmente attribuito dall'Agenzia, e la sua ultima lettera è calcolata sulle lettere sostituite. Confonderli è l'errore più comune nelle implementazioni fatte in fretta, e produce un «codice non valido» su codici perfettamente regolari.
A che cosa serve nella pratica
La lettura inversa non è un esercizio di curiosità. Nella maggior parte dei casi risponde a una di queste tre domande.
- «Questo codice è scritto giusto?» È il caso di chi riceve un modulo, una fattura o un contratto e deve verificare un dato prima di registrarlo. Il carattere di controllo risponde in un secondo, e intercetta la stragrande maggioranza degli errori di trascrizione.
- «Questo codice appartiene alla persona che ho davanti?» Confrontando data di nascita, sesso e comune letti dal codice con quelli dichiarati si scopre subito un'incoerenza. È il controllo che si fa in fase di assunzione, di iscrizione o di apertura di una pratica.
- «Che data c'è dentro questo codice?» Capita di avere il codice fiscale e non la data di nascita, per esempio in un archivio incompleto o in un vecchio documento. La data è lì dentro, scritta per intero tranne il secolo.
Che cosa questo strumento non fa
Per correttezza vale la pena elencare anche i limiti, che sono di due tipi diversi. Alcuni sono limiti dell'algoritmo e nessuno strumento può superarli: nome e cognome non sono ricostruibili, il secolo non è scritto, la città di nascita di chi è nato all'estero non compare. Altri sono limiti di natura: non esiste un elenco pubblico dei codici fiscali attribuiti, quindi nessun sito può dirti a chi appartenga un codice. Chi lo promette, o mente, o sta raccogliendo i codici che gli vengono incollati.
Qui non succede né l'una né l'altra cosa: il codice che digiti resta nel tuo browser, non viene inviato ad alcun server e non viene conservato. Puoi verificarlo staccando la connessione dopo aver caricato la pagina: lo strumento continua a funzionare.
Domande frequenti sul codice fiscale inverso
Si può risalire a nome e cognome da un codice fiscale?
No, e non per una limitazione dello strumento, l'informazione non c'è più. Le prime sei lettere sono un riassunto che scarta le vocali e l'ordine originale, quindi RSS corrisponde a Rossi, Russo, Rissi, Rasso e a centinaia di altri cognomi. Dal codice si può verificare se un certo nome e cognome sono compatibili, non ricostruirli.
Il codice fiscale inverso dice l'anno esatto di nascita?
Dice le ultime due cifre dell'anno, non il secolo. Per le coppie da 00 a 26 restano quindi due ipotesi, per esempio 2005 e 1905. Lo strumento mostra entrambe e mette per prima quella più recente, che nella quasi totalità dei casi è quella giusta. Dal 27 in poi il 20xx sarebbe una data futura e resta un anno solo.
Che cosa significa che il carattere di controllo è errato?
Significa che l'ultima lettera non corrisponde alle quindici precedenti: da qualche parte c'è un errore di trascrizione. Non dice quale carattere sia sbagliato, solo che almeno uno lo è. Un codice con il carattere di controllo errato non viene accettato da nessun sistema.
Perché il giorno di nascita di una donna è aumentato di 40?
È il modo con cui il decreto del 1976 codifica il sesso senza aggiungere caratteri. Al giorno di nascita femminile si sommano quaranta. Per questo i valori validi in quella posizione sono 01-31 per gli uomini e 41-71 per le donne, e leggere il codice al contrario significa sottrarre quaranta quando il numero supera il 40.
Che cosa sono le lettere in mezzo alle cifre del codice?
Sono omocodia. Quando due persone generano lo stesso codice fiscale, l'Agenzia delle Entrate sostituisce una o più cifre con lettere, partendo da destra, secondo la tabella 0=L, 1=M, 2=N, 3=P, 4=Q, 5=R, 6=S, 7=T, 8=U, 9=V. Lo strumento riconosce le sostituzioni, le evidenzia e ricostruisce il codice senza omocodia.
Il codice fiscale inverso funziona con i codici delle aziende?
No. Il codice fiscale delle persone giuridiche è composto da undici cifre e coincide con la partita IVA: non contiene data né luogo di nascita, quindi non c'è nulla da leggere. Questo strumento lavora solo sui sedici caratteri delle persone fisiche.
Il comune letto dal codice è quello di residenza?
No, è il comune di nascita, e resta quello per tutta la vita anche dopo un trasferimento. Se la persona è nata all'estero il codice contiene lo Stato, mai la città: chi è nato a Berlino ha Z112, il codice della Germania.
Che cosa succede se il comune di nascita non esiste più?
Il codice catastale resta valido e continua a indicare quel comune. L'elenco comprende 2.868 comuni soppressi o accorpati, quindi un codice del 1950 che contiene un comune cancellato nel 1928 viene comunque letto, con l'indicazione dell'anno di soppressione.
La lettura inversa dimostra che il codice appartiene a una certa persona?
No. Dimostra soltanto che il codice è costruito correttamente e che è compatibile con una certa data, un certo sesso e un certo luogo di nascita. L'attribuzione a una persona la conosce solo l'Agenzia delle Entrate, che gestisce l'anagrafe tributaria.
I dati che inserisco vengono inviati a un server?
No. La lettura avviene interamente nel browser. Il codice digitato non lascia il dispositivo, non viene salvato e non viene trasmesso. Chiudendo la pagina non ne resta traccia.
Perché lo stesso codice può indicare due date diverse?
Perché nel 1976, quando il codice fiscale è stato progettato, per l'anno sono state riservate due cifre soltanto. È lo stesso problema che nel 1999 fu chiamato Millennium bug, due cifre bastano a distinguere gli anni dentro un secolo, non i secoli tra loro.
Un codice letto correttamente è per forza un codice esistente?
No. Un codice può essere formalmente perfetto (data reale, luogo esistente, carattere di controllo giusto) e non essere mai stato attribuito a nessuno. La correttezza formale e l'esistenza nell'anagrafe tributaria sono due cose diverse.