Skip to Content

Italian Region Codes: Complete ISO 3166-2 Guide

Italy is divided into 20 regions and over 100 provinces, all with standardized ISO 3166-2 codes. These codes are used in address forms, shipping, tax calculations, and e-commerce applications serving the Italian market.

This page lists every Italian region, highlights key provinces, and shows how to work with them using @koshmoney/countries.

All 20 Italian Regions

Italy’s 20 regions are the primary administrative divisions. Five of them have special autonomous status (marked below).

Northern Regions

CodeNameCapitalAutonomous
IT-21PiemonteTurinNo
IT-23Val d’AosteAostaYes
IT-25LombardiaMilanNo
IT-32Trentino-Alto AdigeTrentoYes
IT-34VenetoVeniceNo
IT-36Friuli-Venezia GiuliaTriesteYes
IT-42LiguriaGenoaNo
IT-45Emilia-RomagnaBolognaNo

Central Regions

CodeNameCapitalAutonomous
IT-52ToscanaFlorenceNo
IT-55UmbriaPerugiaNo
IT-57MarcheAnconaNo
IT-62LazioRomeNo

Southern Regions

CodeNameCapitalAutonomous
IT-65AbruzzoL’AquilaNo
IT-67MoliseCampobassoNo
IT-72CampaniaNaplesNo
IT-75PugliaBariNo
IT-77BasilicataPotenzaNo
IT-78CalabriaCatanzaroNo

Islands

CodeNameCapitalAutonomous
IT-82SiciliaPalermoYes
IT-88SardegnaCagliariYes

Key Provinces

Italy has over 100 provinces (type “Province” in ISO 3166-2). Here are the most commonly referenced:

CodeProvinceRegion
IT-RMRomaLazio
IT-MIMilanoLombardia
IT-NANapoliCampania
IT-TOTorinoPiemonte
IT-FIFirenzeToscana
IT-BOBolognaEmilia-Romagna
IT-GEGenovaLiguria
IT-VEVeneziaVeneto
IT-PAPalermoSicilia
IT-BABariPuglia
IT-CACagliariSardegna
IT-BZBolzanoTrentino-Alto Adige
IT-TNTrentoTrentino-Alto Adige
IT-TSTriesteFriuli-Venezia Giulia

Understanding Italian Subdivision Codes

Italy uses two different code patterns:

Regions use 2-digit numeric codes:

ComponentExampleMeaning
Country prefixITItaly
Separator-Standard delimiter
Region number62Lazio
Full codeIT-62Lazio, Italy

Provinces use 2-letter alphabetic codes:

ComponentExampleMeaning
Country prefixITItaly
Separator-Standard delimiter
Province codeRMRoma
Full codeIT-RMRoma (Province), Italy

[!NOTE] Region codes use non-contiguous numbers (21, 23, 25, 32, 34…) that reflect historical administrative numbering, not a sequential count.

Using Italian Codes in Code

Look Up a Subdivision

import { subdivision } from '@koshmoney/countries'; // Region subdivision.whereCode('IT-25'); // { code: 'IT-25', name: 'Lombardia', type: 'Region', countryCode: 'IT' } // Province subdivision.whereCode('IT-MI'); // { code: 'IT-MI', name: 'Milano', type: 'Province', countryCode: 'IT' }

Get All Italian Subdivisions

import { subdivision } from '@koshmoney/countries'; const allIT = subdivision.forCountry('IT'); // Filter by type const regions = allIT.filter(s => s.type === 'Region'); console.log(regions.length); // 20 const provinces = allIT.filter(s => s.type === 'Province'); console.log(provinces.length); // 100+

Validate a Code

import { subdivision } from '@koshmoney/countries'; subdivision.isValidCode('IT-25'); // true (Lombardia) subdivision.isValidCode('IT-RM'); // true (Roma) subdivision.isValidCode('IT-XX'); // false subdivision.isValidRegion('IT', 'MI'); // true (Milano)

Tree-Shaking for Italian Data Only

import '@koshmoney/countries/subdivision/IT'; import { whereCode, forCountry } from '@koshmoney/countries/subdivision'; const lombardia = whereCode('IT-25'); const allIT = forCountry('IT');

Postal Code System

Italy uses a 5-digit postal code (CAP — Codice di Avviamento Postale). The first two digits indicate the province:

First DigitsProvince / Area
00Roma
10Torino
20Milano
30Venezia, Padova
40Bologna
50Firenze
60Ancona
70Bari
80Napoli
90Palermo
import { postalCode } from '@koshmoney/countries'; postalCode.isValid('IT', '00100'); // true (Roma) postalCode.isValid('IT', '20121'); // true (Milano) postalCode.isValid('IT', '1234'); // false (only 4 digits)

EU Membership and Currency

Italy is a founding EU member and uses the Euro:

import { membership } from '@koshmoney/countries/membership'; import { currency } from '@koshmoney/countries/currency'; membership.getMemberships('IT'); // { EU: true, SEPA: true, EEA: true, Eurozone: true, Schengen: true } currency.getCurrency('IT'); // { code: 'EUR', symbol: '\u20ac', name: 'Euro' }

Common Use Cases

Address Forms

Italian address forms require the province code (sigla provincia). This is the 2-letter ISO code:

import { subdivision } from '@koshmoney/countries'; const provinces = subdivision.forCountry('IT') .filter(s => s.type === 'Province'); const dropdown = provinces.map(p => ({ label: `${p.name} (${p.code.split('-')[1]})`, value: p.code, })); // [{ label: 'Agrigento (AG)', value: 'IT-AG' }, ...]

E-Commerce and Codice Fiscale

The Italian tax code (Codice Fiscale) encodes the province of birth. Province codes from ISO 3166-2 align with the codes used in official documents:

import { subdivision } from '@koshmoney/countries'; function validateProvince(provinceCode: string): boolean { return subdivision.isValidCode(`IT-${provinceCode}`); } validateProvince('RM'); // true validateProvince('XX'); // false

North/South Regional Analysis

Italian economic data is often analyzed by macro-region. Region codes help classify:

const northRegions = new Set(['IT-21', 'IT-23', 'IT-25', 'IT-32', 'IT-34', 'IT-36', 'IT-42', 'IT-45']); const centralRegions = new Set(['IT-52', 'IT-55', 'IT-57', 'IT-62']); const southRegions = new Set(['IT-65', 'IT-67', 'IT-72', 'IT-75', 'IT-77', 'IT-78', 'IT-82', 'IT-88']); function getMacroRegion(regionCode: string): string { if (northRegions.has(regionCode)) return 'north'; if (centralRegions.has(regionCode)) return 'central'; if (southRegions.has(regionCode)) return 'south'; return 'unknown'; }