Vai al contenuto
Anagrafica fiscale

Generatore Codice Fiscale + Inverso + Omocodie

Calcolo del codice fiscale italiano in tre modalità: generazione forward da cognome + nome + sesso + data + comune (algoritmo DM 12/03/1974), decodifica inversa di un CF esistente per estrarre i dati anagrafici, omocodie (le 128 varianti generate dall'Agenzia delle Entrate quando due persone collidono sui primi 15 caratteri). Algoritmo CIN modulo 26 verificato contro Test Vector ufficiali. Niente upload, niente cookie analytics, niente API key.

Come usare il generatore

  1. 1

    Generazione forward

    Compila cognome, nome, sesso, data di nascita, comune. Per i comuni più comuni (capoluoghi di provincia + grandi città) c'e' l'autocomplete. Per gli altri inserisci direttamente il codice catastale (es. F205 = Milano, H501 = Roma, L219 = Torino). Il tool genera il CF di 16 caratteri.

  2. 2

    Decodifica inversa

    Incolla un codice fiscale esistente. Il tool valida il CIN (carattere di controllo) e estrae sesso, data di nascita, codice catastale del comune. La decodifica del comune è limitata ai ~150 comuni più comuni nel dataset embedded; per gli altri vedrai solo il codice catastale.

  3. 3

    Omocodie

    Quando due o più persone collidono sui primi 15 caratteri (cognome+nome+data+sesso+comune coincidenti), l'Agenzia delle Entrate genera varianti modificando le cifre numeriche con lettere predefinite (mapping L=0, M=1, N=2, P=3, Q=4, R=5, S=6, T=7, U=8, V=9). Il tool genera le 128 combinazioni teoriche per un dato CF di base.

  4. 4

    Privacy by design

    Tutto il calcolo avviene in JavaScript nel browser. I dati anagrafici inseriti non lasciano la pagina, non vengono inviati a nessun server, non vengono salvati in cookie ne' in local storage. Per professionisti che gestiscono CF di clienti reali, è la soluzione GDPR-friendly per il calcolo offline.

Algoritmo DM 12 marzo 1974: cosa fa il tool

Struttura del CF a 16 caratteri. Posizioni 1-3: consonanti del cognome (se meno di 3, vocali; se ancora meno, padding X). Posizioni 4-6: consonanti del nome (regola speciale: se 4 o più consonanti, prendi la 1a, 3a, 4a; altrimenti tutte le consonanti + vocali). Posizioni 7-8: ultime due cifre dell'anno di nascita. Posizione 9: lettera del mese (gennaio=A, febbraio=B, marzo=C, aprile=D, maggio=E, giugno=H, luglio=L, agosto=M, settembre=P, ottobre=R, novembre=S, dicembre=T). Posizioni 10-11: giorno di nascita (per le donne +40, quindi una donna nata il 15 ha cifre 55). Posizioni 12-15: codice catastale del comune (consonante + 3 cifre, es. H501 = Roma). Posizione 16: CIN (Carattere di Controllo Internazionale).

CIN: come si calcola. I primi 15 caratteri vengono letti uno alla volta. Le posizioni dispari (1, 3, 5..., 15) usano una tabella di conversione specifica (lettera/cifra -> numero), idem per le pari (2, 4..., 14) con tabella diversa. La somma totale modulo 26 -> lettera A-Z come CIN. Esempio: per RSSMRA80A01H501 il CIN è U. Inserire 16 caratteri sbagliati -> CIN sbagliato. Il tool calcola CIN dei primi 15 e lo confronta con il 16esimo per validazione.

Omocodie: il problema delle collisioni. Quando due persone hanno cognome+nome+data+sesso+comune identici (es. due Mario Rossi nati lo stesso giorno nello stesso comune), il loro CF teorico coincide. Per evitarlo, l'Agenzia delle Entrate genera 128 varianti dello stesso CF sostituendo cifre numeriche con lettere predefinite, in posizioni specifiche: 7, 8 (anno), 10, 11 (giorno), 13, 14, 15 (codice catastale). Mapping: 0->L, 1->M, 2->N, 3->P, 4->Q, 5->R, 6->S, 7->T, 8->U, 9->V. Il primo collidente prende la variante 0 (cifre originali); il secondo riceve una omocoda con il valore numerico più alto trasformato (es. anno 80 -> 8L diventa UL); e così via fino a 128 combinazioni teoriche.

Limiti del tool: non valida l'esistenza reale. Il tool verifica solo la correttezza formale: la data di nascita esiste? Il codice catastale è un codice valido nel formato (lettera + 3 cifre)? Il CIN è corretto? NON verifica se quel CF esiste davvero all'Agenzia delle Entrate (per farlo servirebbe l'integrazione con il servizio Verifica CF/Partita IVA del Fisco italiano, che richiede SPID/CNS o credenziali Entratel). Il caso d'uso è quindi: generare CF teoricamente corretti per testing/anonymizzazione/calcolo manuale, validare CF già esistenti, supportare professionisti che gestiscono anagrafiche.

Comuni nel dataset embedded

Il tool ha un dataset embedded di ~150 comuni italiani per autocomplete forward + decodifica inverse: tutti i 110 capoluoghi di provincia (con codice catastale ufficiale ANSCITEL/ISTAT) + le ~40 città italiane più popolose oltre i capoluoghi. Per i circa 7800 comuni rimanenti (frazioni, comuni minori, comuni soppressi/fusi recenti) inserisci direttamente il codice catastale a 4 caratteri (es. F205 per Milano, H501 per Roma).

Codici catastali utili come riferimento: Roma=H501, Milano=F205, Napoli=F839, Torino=L219, Palermo=G273, Genova=D969, Bologna=A944, Firenze=D612, Bari=A662, Venezia=L736, Verona=L781, Catania=C351, Padova=G224, Trieste=L424, Brescia=B157, Modena=F257, Parma=G337, Reggio Emilia=H223, Perugia=G478, Cagliari=B354.

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

Codice Fiscale #
Identificativo univoco delle persone fisiche italiane (16 caratteri alfanumerici) e delle persone giuridiche (11 cifre, coincide con la P.IVA). Definito dal DM 12 marzo 1974 (Min. Finanze) ed esteso dalla Risoluzione 26/E del 2010 per omocodie.
CIN #
Carattere di Controllo Internazionale (pos 16 del CF). Calcolato dai primi 15 caratteri tramite due tabelle di conversione (dispari/pari) e modulo 26 -> lettera A-Z. Permette di intercettare errori di battitura sui primi 15 caratteri con probabilita' del 96.2%.
Codice catastale #
Identificativo univoco di un comune italiano (4 caratteri: 1 lettera + 3 cifre). Esempi: F205 = Milano, H501 = Roma. Mantenuto dall'Agenzia del Territorio (ex Catasto), aggiornato per fusioni e variazioni amministrative. Il tool ha embedded i ~150 più comuni.
Omocodia #
Quando due o più persone hanno gli stessi 15 caratteri di codice fiscale. Risolta dall'Agenzia delle Entrate generando 128 varianti per ogni CF di base, sostituendo cifre numeriche con lettere predefinite (L=0, M=1..., V=9) in posizioni specifiche.
ANSCITEL / ISTAT #
ANSCITEL è il codice statistico ISTAT del comune (6 cifre, es. 058091 = Roma). Diverso dal codice catastale (4 caratteri alfanumerici). Per il CF si usa il codice catastale. Il tool non gestisce ANSCITEL.
Persona giuridica #
Aziende, associazioni, enti. Il loro CF coincide con la P.IVA (11 cifre). Il tool gestisce solo persone fisiche (16 caratteri); per le persone giuridiche usa il validatore anagrafica con il campo P.IVA.
Agenzia delle Entrate #
Ente che assegna formalmente il CF (su richiesta di anagrafe o stranieri). Non genera il CF al di fuori degli adempimenti, quindi il calcolo del 'CF teorico' è utile a privati e professionisti per pre-compilare moduli, ma il CF assegnato può essere diverso (es. omocoda).

Domande frequenti sul codice fiscale

Il CF generato dal tool è lo stesso che mi assegnera' l'Agenzia delle Entrate?
Nella maggior parte dei casi si'. Il tool calcola il CF teorico applicando l'algoritmo DM 12/03/1974. L'Agenzia delle Entrate assegna lo stesso CF, salvo: (1) caso di omocodia (esiste già un altro CF identico nei primi 15 caratteri), in cui ti viene assegnata una variante omocoda; (2) errori di trascrizione anagrafica (cognome con apostrofi, doppi cognomi, nomi multipli) che gestisce con regole interne non sempre prevedibili. Per CF certo, contatta l'Agenzia delle Entrate o usa il servizio di Verifica CF dell'AdE.
Come gestite i cognomi con caratteri speciali (apostrofi, accenti, particelle nobiliari)?
Apostrofi e particelle (D'AMICO, DELLA ROSA, DI PAOLA): il tool li tratta come parte del cognome rimuovendo il separatore (apostrofo, spazio). DELLA -> consonanti DLL. D'AMICO -> consonanti DMC. Doppi cognomi (Rossi-Bianchi): trattati come unico cognome RSSBNC. Per cognomi stranieri con caratteri non ASCII (es. Müller, Žukov), il tool normalizza con NFD e rimuove i diacritici (Müller -> Muller -> consonanti MLR). Casi limite: Mac/Mc, Van der/Von, McGregor (mantieni intero) -> MCGRGR.
Le donne nate il 15 hanno giorno '55' nel CF, perché?
Convenzione del DM 12/03/1974 per discriminare il sesso senza usare un campo separato: alle donne si aggiunge 40 al giorno di nascita. Quindi 1->41, 2->42..., 31->71. Il tool decodifica correttamente: se il giorno nel CF è >40, sesso=F e giorno reale = giorno_cf - 40. Esempio: RSSMRA80A55H501... -> donna, nata il 15 gennaio 1980 a Roma.
Cosa succede se ho un nome con meno di 3 consonanti (es. AIDA)?
Per i nomi con meno di 3 consonanti, l'algoritmo prende prima le consonanti, poi le vocali, e poi padding X se ancora servono caratteri. AIDA: 1 consonante (D), 3 vocali (AIA). Il pattern è DAA (1 consonante + 2 prime vocali). Se anche le vocali fossero insufficienti (caso teorico: nomi con 1 lettera tipo Y), si aggiungerebbe X. Stessa logica per i cognomi corti.
Perché i mesi non sono 1-12 ma A-T (saltando alcune lettere)?
Convenzione storica del 1974, probabilmente per evitare collisioni di parsing: gennaio=A, febbraio=B, marzo=C, aprile=D, maggio=E, giugno=H, luglio=L, agosto=M, settembre=P, ottobre=R, novembre=S, dicembre=T. Le lettere F, G, I, J, K, N, O, Q, U, V, W, X, Y, Z NON sono usate per i mesi (sono pero' usate per le omocodie e i codici catastali). Il tool maschera questo mapping internamente.
Posso usare il tool per generare CF da provider stranieri?
Si', il tool supporta cittadini stranieri nati in Italia (codice catastale italiano normale) e cittadini stranieri nati all'estero (codice catastale dello Stato estero, es. Z100 per Francia, Z112 per Germania, Z302 per Brasile). Il tool ha embedded i ~30 codici dei principali Stati esteri. Per Stati esteri non nel dataset, inserisci il codice (4 caratteri, prima lettera Z) manualmente.
Le omocodie sono solo teoriche o vengono davvero assegnate?
Vengono assegnate. Quando hai due omonimi nati lo stesso giorno nello stesso comune con stesso sesso, l'Agenzia genera CF distinti tramite omocodie. Il primo (anagraficamente) prende la variante 'pulita' (anno e giorno con cifre normali), il secondo riceve la variante con più alta sostituzione di cifra a lettera. Le omocodie sono frequenti per nomi comuni (Mario Rossi, Giuseppe Bianchi) in città grandi (Roma, Milano).
Il CF di un residente all'estero (AIRE) è diverso?
No. Il CF di un cittadino italiano residente all'estero (AIRE - Anagrafe Italiani Residenti all'Estero) è calcolato con lo stesso algoritmo, usando il comune italiano di iscrizione AIRE come comune di nascita (se nato in Italia) o il codice dello Stato estero (se nato all'estero). Il tool produce lo stesso CF identicamente. Il fatto di essere AIRE è una condizione anagrafica separata, non si riflette nel CF.
Come gestite il sesso non binario (X)?
L'algoritmo del 1974 non lo prevede: il CF italiano riconosce solo M e F. Da maggio 2024 esiste la procedura amministrativa per la rettifica del genere (sentenza Corte Costituzionale 211/2023) ma il CF rimane M o F come da anagrafe. Il tool offre solo le due opzioni storiche. Per casistica X non binaria, l'Agenzia delle Entrate gestisce caso per caso, non tramite algoritmo standardizzato.
Il tool salva i miei dati anagrafici sui server?
No. Tutto il calcolo avviene in JavaScript nel browser. Niente fetch verso server esterni, niente cookie analytics impostati dal tool, niente local storage. Per professionisti che gestiscono CF di clienti reali (commercialisti, consulenti del lavoro, studi notarili), il tool è GDPR-friendly: nessun trasferimento di dati personali a terzi (l'autore del tool incluso). Verifica facilmente con DevTools > Network > attività nulla durante il calcolo.

La tua applicazione valida male i Codici Fiscali?

Se nel tuo gestionale, e-commerce o portale di registrazione utenti la validazione del CF dà falsi positivi, salta omocodie o rompe per stranieri AIRE: posso integrare la libreria di validazione corretta nel tuo backend PHP, Laravel, Symfony o Node.

Parla del tuo gestionale