Italian Codice Fiscale Validator

This Italian codice fiscale validator checks the 16-character tax code against the official checksum defined by the 1976 Ministry of Finance decree — the same odd/even position lookup-table algorithm used by the Agenzia delle Entrate. Runs entirely in your browser.

How to use it

Paste the 16-character code (case-insensitive) and click "Check codice fiscale". The tool recomputes the expected check letter from the first 15 characters and compares it to the 16th.

How the checksum works

Every character in an odd position (1st, 3rd, 5th, …, 15th) is converted to a number using one table; every character in an even position (2nd, 4th, …, 14th) uses a different table. The 15 resulting values are summed, and the sum modulo 26 gives a number from 0–25, which maps directly to a check letter (0=A, 1=B, … 25=Z).

What the 16 characters encode

Positions 1–3 come from consonants in the surname, 4–6 from the first name, 7–8 the last two digits of the birth year, position 9 a letter for the birth month, 10–11 the birth day (with 40 added for women), 12–15 a code for the town or country of birth, and position 16 the check letter this tool validates.

Italian Codice Fiscale Validator Pro

Pro version coming soon — batch validation via CSV upload, exportable results, API access, and an offline version. The free tool stays free.

Pro version coming soon

Batch validation via CSV upload, exportable results, API access, and an offline version are on the way. The free tool stays free.

Frequently asked questions

What is a codice fiscale?

Italy's 16-character tax code, assigned to every citizen and resident. It encodes a person's surname, first name, birth date, sex, and place of birth, ending with a single check letter.

How is the check letter calculated?

Each of the first 15 characters is converted to a numeric value using one of two lookup tables depending on whether its position is odd or even, all 15 values are summed, and the sum modulo 26 selects the check letter (0=A through 25=Z).

Why does the same letter mean different things in different positions?

The odd-position and even-position tables assign different numeric values to the same character on purpose — it makes the checksum sensitive to transposition errors (swapping two adjacent characters), not just substitution errors, since a swapped character usually moves between an odd and an even position.

Does a valid checksum mean the codice fiscale is real?

No. It confirms the code is internally consistent — the right length, character set, and a matching check letter — not that it was actually issued by the Agenzia delle Entrate to a real person. Some codes are also deliberately altered ("omocodia") when two people would otherwise share an identical code; this tool doesn't attempt to detect that.

Is my codice fiscale sent anywhere when I use this tool?

No. The checksum is computed entirely in your browser via JavaScript. Nothing is transmitted, logged, or stored.