Technical
11 min read23 December 2025

Tax Code Structure: The 16 Characters Explained

Detailed analysis of the Italian Tax Code structure. What each of the 16 characters means: surname, name, date, municipality and control character.

Technical aspects of the Tax Code
Technical aspects of the Tax Code

The structure of the tax code at a glance

The structure of the tax code packs a surprising amount of personal data into just 16 alphanumeric characters. Every position in the Italian codice fiscale carries a defined meaning, and the whole sequence is built from rules laid down by Presidential Decree No. 605/1973. Nothing here is random.

Read it the right way and the code almost talks back to you: your surname, your first name, the day you were born, the town you were born in. It looks cryptic. It really isn't, once you know where to look.

Below is the map. Each block that follows breaks down one slice of those 16 characters, with real examples and the edge cases that trip people up. Want the full birds-eye view first?

RSSMRA85C15H501S

1-34-67-8910-1112-1516
PositionCharactersInformation
1-3RSSSurname
4-6MRAFirst name
7-885Birth year
9CBirth month
10-1115Day and gender
12-15H501Municipality of birth
16SControl character

One quick note before we start. These rules are designed for Italian-style names, so foreign names get processed through the same machinery anyway. Smith, Müller, Nowak — they all fit. We'll get to that.

Characters 1-3: the surname

The first three letters come from your surname. The algorithm is picky but consistent, and it always runs in the same order:

  1. Take the consonants of the surname, in the order they appear.
  2. If there are fewer than three consonants, top it up with the vowels, in order.
  3. Surname shorter than three letters total? Pad it with the letter X.

A few worked examples

  • ROSSI → consonants R, S, S → RSS
  • SMITH → consonants S, M, T → SMT
  • AIELLO → consonants L, L, then vowel A → LLA
  • LEE → consonant L, then vowels E, E → LEE

Compound surnames like "De Rossi" or "Lo Presti" are treated as one string — spaces dropped, then the rule runs as usual. And for married women, the maiden name is always the one that counts, never the spouse's. Small detail, big source of confusion at the registry desk.

Characters 4-6: the first name

Positions four to six encode your first name. Same spirit as the surname, with one twist that catches everyone out the first time:

  • Four or more consonants in the name? Take the 1st, 3rd, and 4th — skipping the second.
  • Fewer than four consonants? Fall back to the plain surname rule.

Examples

  • MARIO → consonants M, R (only two) + vowel A → MRA
  • GIUSEPPE → G, S, P, P → 1st, 3rd, 4th → GPP
  • ALEXANDER → L, X, N, D, R → 1st, 3rd, 4th → LND
  • ANNA → consonants N, N + vowel A → NNA

Why skip the second consonant?

That "1st, 3rd, 4th" trick for longer names wasn't an accident. It was designed to spread codes further apart and cut the odds of omocodia — two different people landing on the exact same tax code.

Characters 7-8: the birth year

Characters seven and eight are the last two digits of your birth year. This is the easy part. No algorithm, no lookup table — just copy the digits.

  • Born in 198585
  • Born in 200000
  • Born in 202424

There's a catch, though. Two digits can't tell 1924 apart from 2024. In practice this rarely bites, because the rest of the code — and the official records behind it — supply the missing century.

Character 9: the birth month

The ninth character is a single letter standing in for your birth month. Each month maps to its own letter — and the pairing is anything but alphabetical:

JanFebMarAprMayJunJulAugSepOctNovDec
ABCDEHLMPRST

Notice the gaps. The designers deliberately skipped letters that look like digits (the letter "O" never shows up, since it reads as a zero). It's a tidy bit of defensive design hiding in plain sight.

Characters 10-11: day of birth and gender

Here's where the code gets clever. Characters ten and eleven carry two facts at once: the day you were born and your gender. One field, double duty.

  • Men: the day of birth as it is, from 01 to 31.
  • Women: the day of birth plus 40, landing in the 41 to 71 range.

Examples

  • Born on the 15th, male → 15
  • Born on the 15th, female → 55
  • Born on the 1st, male → 01
  • Born on the 1st, female → 41

A neat consequence: any value above 40 instantly flags a female record, with zero extra digits spent. Frugal, and a little bit elegant.

Characters 12-15: the municipality

Positions twelve to fifteen hold the cadastral code (Belfiore code) of your place of birth. The format splits cleanly in two:

  • One letter followed by three digits for Italian municipalities.
  • Letter Z plus three digits when the birthplace is a foreign country.

Sample cadastral codes

  • Rome → H501
  • Milan → F205
  • Naples → F839
  • France → Z110
  • Germany → Z112
  • United Kingdom → Z114
  • United States → Z404

These codes aren't fixed forever. The Italian Revenue Agency (Agenzia delle Entrate)maintains the register and updates it whenever towns merge, split, or are dissolved. So if you ever see a code that no longer matches a place on the map, that's usually why. If you're not sure which code applies to a given record, our reverse lookup tool can decode an existing code back into its birthplace and date.

Character 16: the control character (CIN)

The final character is the CIN (Control Internal Number) — a single letter the system computes from everything before it. Its only job is to catch mistakes.

The calculation isn't something you'd want to do by hand. Roughly, it works like this:

  1. Assign numeric values to each character, using different tables for odd and even positions.
  2. Add all those values together.
  3. Take the remainder of that sum divided by 26.
  4. Convert the remainder into a letter, where A equals 0 and Z equals 25.

Why bother? Because this last letter is a built-in error detector. It flags the everyday slip-ups:

  • a single mistyped character
  • two adjacent characters accidentally swapped
  • most of the common keyboard fumbles you'd never spot by eye

If even one earlier character is wrong, the CIN won't line up — which is exactly how a validator knows something's off. Rather than recompute it manually, you can paste any code into our tax code checker and let it confirm the control letter in a second. Curious how the whole string gets assembled from scratch? Our guide on how to calculate the tax code walks through it step by step, and there's a dedicated deep-dive on the control character (CIN) too.

A quick honest caveat

The structure tells you how a code should be built — it can't, on its own, prove the code belongs to a real, registered person. Only the Italian Revenue Agency (Agenzia delle Entrate)can confirm that. Structural validity and official validity are two different things.

Frequently asked questions

What does the structure of the tax code actually encode?

Sixteen characters, in a fixed order: three for the surname, three for the first name, two for the birth year, one for the month, two for the day combined with gender, four for the cadastral code of the birthplace, and a final control letter. Each block is derived by a rule, not chosen freely.

Is the codice fiscale the same thing as the Italian tax code?

Yes — they're two names for the same identifier. "Codice fiscale" is the Italian term; "Italian tax code" is the everyday English rendering. Same 16 characters, same rules.

Can two different people get the same tax code?

It can happen, and it has a name: omocodia. When people share enough name letters, birth date, and birthplace, their codes collide. The Revenue Agency resolves it by swapping certain digits for letters to force the codes apart.

How is a foreign country coded in characters 12-15?

Foreign birthplaces use a code starting with the letter Z. For example, France is Z110, Germany is Z112, the United Kingdom is Z114, and the United States is Z404. The same Z-prefix logic covers every country.

Does the control character guarantee the code is real?

No. The control character (CIN) only confirms the 16 characters are internally consistent — that nobody fat-fingered a digit. To confirm a code is genuinely registered to a person, you need the Italian Revenue Agency's records. Structure and registration are separate checks.

How do I check a tax code without doing the math myself?

Use a tool. You can verify an existing code, generate one from personal data, or run a reverse lookup to read the data back out. If you also need the plastic card itself, the health card page covers the tessera sanitaria.

Why doesn't the month use letters in alphabetical order?

To avoid confusion with numbers. Letters that resemble digits (like "O" versus zero) are skipped on purpose, which is why the month codes look scattered rather than sequential.

See the structure of the tax code in action

Now that you can read all 16 characters, put it to work — generate, verify, or decode a codice fiscale in seconds.

Calculate now