Skip to Content

French Region and Department Codes: Complete ISO 3166-2 Guide

France has one of the most detailed subdivision structures in ISO 3166-2, with over 120 entries covering metropolitan regions, departments, overseas departments, and overseas collectivities. These codes are used in address forms, shipping, tax calculations, and EU compliance.

This page covers the key subdivision levels and shows how to work with them using @koshmoney/countries.

Metropolitan Regions (13)

France’s 13 metropolitan regions are the primary administrative divisions since the 2016 territorial reform:

CodeNameAdministrative Center
FR-ARAAuvergne-Rhone-AlpesLyon
FR-BFCBourgogne-Franche-ComteDijon
FR-BREBretagneRennes
FR-CVLCentre-Val de LoireOrleans
FR-GESGrand EstStrasbourg
FR-HDFHauts-de-FranceLille
FR-IDFIle-de-FranceParis
FR-NAQNouvelle-AquitaineBordeaux
FR-NORNormandieRouen
FR-OCCOccitanieToulouse
FR-PACProvence-Alpes-Cote d’AzurMarseille
FR-PDLPays de la LoireNantes

Plus Corsica with a special status:

CodeNameType
FR-CORCorseMetropolitan collectivity

Overseas Departments (5)

These have the same status as metropolitan departments and are part of the EU:

CodeNameType
FR-GFGuyane (French Guiana)Overseas department
FR-GPGuadeloupeOverseas department
FR-MQMartiniqueOverseas department
FR-RELa ReunionOverseas department
FR-YTMayotteOverseas department

Overseas Collectivities

These have varying degrees of autonomy and are generally NOT part of the EU:

CodeNameType
FR-BLSaint-BarthelemyOverseas territorial collectivity
FR-MFSaint-MartinOverseas territorial collectivity
FR-NCNouvelle-CaledonieOverseas territorial collectivity
FR-PFPolynesie francaiseOverseas territorial collectivity
FR-PMSaint-Pierre-et-MiquelonOverseas territorial collectivity
FR-TFTerres australes francaisesOverseas territorial collectivity
FR-WFWallis-et-FutunaOverseas territorial collectivity

Plus the dependency:

CodeNameType
FR-CPClippertonDependency

Metropolitan Departments (Selected)

France has 96 metropolitan departments numbered 01 through 95 (plus 2A and 2B for Corsica). Here are the most commonly referenced:

CodeNameRegion
FR-75ParisIle-de-France
FR-13Bouches-du-RhoneProvence-Alpes-Cote d’Azur
FR-69RhoneAuvergne-Rhone-Alpes
FR-31Haute-GaronneOccitanie
FR-33GirondeNouvelle-Aquitaine
FR-59NordHauts-de-France
FR-67Bas-RhinGrand Est
FR-06Alpes-MaritimesProvence-Alpes-Cote d’Azur
FR-44Loire-AtlantiquePays de la Loire
FR-34HeraultOccitanie
FR-2ACorse-du-SudCorse
FR-2BHaute-CorseCorse

[!NOTE] Department numbers 20 was split into 2A (Corse-du-Sud) and 2B (Haute-Corse). The numbering skips from 19 to 21 for regular departments.

Understanding French Subdivision Codes

France uses two code patterns in ISO 3166-2:

Departments use numeric codes (matching the historical department number):

ComponentExampleMeaning
Country prefixFRFrance
Separator-Standard delimiter
Department number75Paris
Full codeFR-75Paris, France

Regions use 3-letter alphabetic codes:

ComponentExampleMeaning
Country prefixFRFrance
Separator-Standard delimiter
Region codeIDFIle-de-France
Full codeFR-IDFIle-de-France, France

Using French Codes in Code

Look Up a Subdivision

import { subdivision } from '@koshmoney/countries'; // Region subdivision.whereCode('FR-IDF'); // { code: 'FR-IDF', name: 'Ile-de-France', type: 'Metropolitan region', countryCode: 'FR' } // Department subdivision.whereCode('FR-75'); // { code: 'FR-75', name: 'Paris', type: 'Metropolitan department', countryCode: 'FR' } // Overseas subdivision.whereCode('FR-GP'); // { code: 'FR-GP', name: 'Guadeloupe', type: 'Overseas department', countryCode: 'FR' }

Get All French Subdivisions

import { subdivision } from '@koshmoney/countries'; const allFR = subdivision.forCountry('FR'); // Filter by type const regions = allFR.filter(s => s.type === 'Metropolitan region'); console.log(regions.length); // 12 const departments = allFR.filter(s => s.type === 'Metropolitan department'); console.log(departments.length); // 96 const overseas = allFR.filter(s => s.type === 'Overseas department' || s.type === 'Overseas territorial collectivity' );

Validate a Code

import { subdivision } from '@koshmoney/countries'; subdivision.isValidCode('FR-IDF'); // true (Ile-de-France) subdivision.isValidCode('FR-75'); // true (Paris) subdivision.isValidCode('FR-XX'); // false subdivision.isValidRegion('FR', 'PAC'); // true (Provence-Alpes-Cote d'Azur)

Tree-Shaking for French Data Only

import '@koshmoney/countries/subdivision/FR'; import { whereCode, forCountry } from '@koshmoney/countries/subdivision'; const paris = whereCode('FR-75'); const allFR = forCountry('FR');

Postal Code System

France uses a 5-digit postal code system. The first two digits correspond to the department number:

First DigitsDepartment / Area
75Paris
13Bouches-du-Rhone (Marseille)
69Rhone (Lyon)
31Haute-Garonne (Toulouse)
33Gironde (Bordeaux)
59Nord (Lille)
67Bas-Rhin (Strasbourg)
97Overseas departments
20Corsica (20000-20999)
import { postalCode } from '@koshmoney/countries'; postalCode.isValid('FR', '75001'); // true (Paris 1er) postalCode.isValid('FR', '13001'); // true (Marseille) postalCode.isValid('FR', '97100'); // true (Guadeloupe) postalCode.isValid('FR', '1234'); // false (only 4 digits)

France is a founding EU member and belongs to all major European groupings:

import { membership } from '@koshmoney/countries/membership'; membership.getMemberships('FR'); // { EU: true, SEPA: true, EEA: true, Eurozone: true, Schengen: true }
import { country } from '@koshmoney/countries'; import { currency } from '@koshmoney/countries/currency'; country.whereAlpha2('FR'); // { name: 'France', alpha2: 'FR', alpha3: 'FRA', numeric: '250' } currency.getCurrency('FR'); // { code: 'EUR', symbol: '\u20ac', name: 'Euro' }

[!TIP] While metropolitan France and overseas departments use the Euro and are in the EU, some overseas collectivities use the CFP franc (XPF) and are not part of the EU. Always check the specific territory.

Common Use Cases

Address Forms

French address forms typically require the department (via postal code) but not the region. For e-commerce targeting metropolitan France:

import { subdivision } from '@koshmoney/countries'; const allFR = subdivision.forCountry('FR'); // For a region dropdown (13 metropolitan regions + Corsica) const regions = allFR.filter(s => s.type === 'Metropolitan region' || s.type === 'Metropolitan collectivity' ); const dropdown = regions.map(r => ({ label: r.name, value: r.code, }));

Metropolitan vs Overseas Shipping

Shipping to overseas departments (DOM) and collectivities (COM/TOM) has different rates and customs requirements:

const overseasDepartments = new Set(['FR-GF', 'FR-GP', 'FR-MQ', 'FR-RE', 'FR-YT']); const overseasCollectivities = new Set(['FR-BL', 'FR-MF', 'FR-NC', 'FR-PF', 'FR-PM', 'FR-WF']); function getShippingZone(code: string): 'metro' | 'dom' | 'com' { if (overseasDepartments.has(code)) return 'dom'; if (overseasCollectivities.has(code)) return 'com'; return 'metro'; }

VAT Handling

Standard French VAT (TVA) is 20%, but overseas departments have different rates. Corsica also has reduced rates on certain products:

function getVATRate(subdivisionCode: string): number { if (subdivisionCode === 'FR-COR') return 13; // Corsica reduced rate (varies by product) if (['FR-GP', 'FR-MQ', 'FR-RE'].includes(subdivisionCode)) return 8.5; // DOM rate if (subdivisionCode === 'FR-GF') return 0; // French Guiana exempt return 20; // Standard metropolitan rate }