phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / Article

France Phone Numbers: Format, Area Code & Validation Guide

Learn how French phone numbers work: 10-digit format structure, country code +33, area codes (01-05), mobile prefixes (06-07), and international dialing. This guide covers validation, number portability, ARCEP regulations, and technical implementation for developers.

France Phone Numbers: Format, Area Code & Validation Guide

Learn how French phone numbers work: 10-digit format structure, country code +33, area codes (01-05), mobile prefixes (06-07), and international dialing. This guide covers validation, number portability, ARCEP regulations, and technical implementation for developers.

Quick Navigation:

Quick Reference

Country: France Country Code: +33 International Prefix: 00 (or +) National Prefix: 0 Emergency: 112

Overview

France uses a 10-digit closed numbering plan regulated by ARCEP. All calls within France, even local ones, require dialing all ten digits – no abbreviated dialing exists. Since 1996, this system structures numbers to identify geographic areas, mobile services, and special numbers. Understand this structure to work effectively with French phone numbers.

Key Regulatory Updates (2025)

  • Geographic Number Restrictions Lifted (January 2023): Per ARCEP Decision 2022-1427, operators can now assign numbers from any approved range, regardless of geographic location. This change promotes competition and simplifies number allocation.
  • Enhanced Anti-fraud Measures (July 2025): Law No.2025-594 of 30 June 2025 requires stricter caller ID authentication. International calls displaying French mobile numbers that cannot be authenticated now display "99 99 99 99 99" to prevent number spoofing.
  • Number Authentication Mechanism (MAN): Since October 2024, all French operators must authenticate call origins to combat fraudulent calls. ARCEP received over 10,000 spoofing reports in early 2025.
  • Expanded SMS Emergency Services: The emergency number 114, designed for the deaf and hard-of-hearing, now supports SMS and video calls, broadening accessibility.

Number Formats

All French phone numbers contain 10 digits starting with '0'. The subsequent digits categorize the number type.

Format: 0X XX XX XX XX Where: 0 = National Prefix X = Service/Region Identifier (see below)

Number Types

Until 2023, geographic numbers tied to specific regions: 01 (Île-de-France/Paris), 02 (Northwest), 03 (Northeast), 04 (Southeast), and 05 (Southwest). ARCEP lifted geographic restrictions in January 2023, though these historical associations persist.

Prefix RangeTypeDescriptionExample
01-05GeographicHistorically regional landlines, now assignable nationwide01 42 86 82 00
06-07MobileMobile phone subscriptions06 12 34 56 78
08Special ServicesToll-free, shared-cost, and premium-rate numbers0800 12 34 56
09Non-GeographicVoIP and non-location-based services09 75 12 34 56

Emergency Services

112 works on all GSM phones even without a SIM card or when the phone is locked, per GSM standards. When roaming in France, 112 connects to French emergency services automatically. VoIP service reliability varies – verify functionality with your provider.

ServiceNumberAvailabilityLanguages
All Emergencies11224/7Multi-lingual
Medical (SAMU)1524/7French, English
Police1724/7French, English
Fire & Rescue1824/7French
Deaf/Hard-of-Hearing11424/7SMS, Video Call

International Calling

How to Call France from Abroad

Format: +33 X XX XX XX XX (Recommended) Alternative: 0033 X XX XX XX XX Example: French number 01 42 86 82 00 From abroad: +33 1 42 86 82 00
  • Remove Leading Zero: Omit the leading '0' from the French number when dialing from abroad.
  • Plus (+) Prefix: Using the '+' prefix is preferred over '00' as it automatically adapts to the local international dialing prefix.

Calling Abroad from France

Format: 00 [Country Code] [Number] Alternative: + [Country Code] [Number] (Recommended)

Consult specific country dialing instructions for variations.

Number Portability

Number portability lets you retain your phone number when switching operators. ARCEP regulations ensure a smooth and secure process.

RIO Code (Relevé d'Identité Opérateur)

The RIO is a unique portability code required to transfer your number between operators. It serves as proof of ownership and identity.

  • How to Obtain: Call 3179 from the number you wish to port (free call). For mobile numbers, international long-form numbers are available for roaming users.
  • Validity: The RIO code is valid for 40 days.
  • What It Contains: The RIO includes your phone number, operator identity, and contract status.
  • Usage: Provide the RIO to your new operator, who handles the entire porting process on your behalf.

Portability Process

  • Processing Time: Complete within 3 business days.
  • Service Continuity: Regulation prohibits service interruption during the transfer.
  • Cost-Free: Operators cannot charge fees for the porting process.
  • Consumer Protection: A 14-day cooling-off period and strict data privacy regulations are in place.
  • Recovery Period: Users may recover and port their old number within 40 days of contract cancellation.

Telecom Operators & Market Landscape

The French telecom market is competitive, with several major players and numerous MVNOs (Mobile Virtual Network Operators) like Lycamobile, NRJ Mobile, and Syma Mobile:

OperatorMarket Position (2025)Network Coverage (Approx.)
OrangeLeader (40%)99% 4G/5G
SFRMajor Operator (25%)98% 4G
Bouygues TelecomEstablished (20%)97% 4G
Free MobileInnovator (15%)95% 4G

ARCEP promotes competition through infrastructure sharing requirements, transparent pricing mandates, and support for virtual operators (MVNOs).

Special Cases & Service Numbers

08 Service Numbers (Numéros Spéciaux)

French 08 numbers serve various purposes with different pricing structures regulated by ARCEP:

RangeTypePricingDescription
0800-0805Toll-Free (Numéro Vert)Free from landlines and mobilesCustomer service, public information
0806-0809Free/Local RateMay incur local rate charges from mobilesVaries by operator
0810-0819Shared-CostLocal call rate + possible surchargeBusiness services
0820-0829Shared-CostHigher rate, typically €0.06-0.15/minInformation services
0836-0899Premium-Rate (Audiotel)€0.15-3.00/min + connection feeEntertainment, adult services (089x)

Important: Most 08 numbers are not reachable from outside France. French law requires pricing transparency – callers hear tariff information before charges begin.

Golden Numbers (Numéros Dorés)

Golden numbers are premium numbers with easily memorable patterns (e.g., 06 88 88 88 88). ARCEP auctions or operator assignments allocate these numbers. Pricing varies significantly based on memorability; contact operators directly for acquisition procedures.

Short Codes and Special Services

France uses several short code ranges for special services:

  • 3XXX (4-digit): Value-added services with varied pricing (can be free or premium-rate). Examples: 3179 (RIO code), 31XX (often free services).
  • 118XXX (6-digit): Directory enquiry services. Costs approximately €3 per call plus €3 per minute. Replaced the old "12" information service in 2005.
  • 10XX: Operator services for carrier selection and customer service.
  • Emergency Numbers: 15, 17, 18, 112, 114, 115, 116XXX, 119, 191, 196, 197 (see Emergency Services section).

Source: ITU France Case Study

Technical Implementation

Validation

javascript
const validateFrenchNumber = (number) => {
  const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');

  const patterns = {
    geographic: /^0[1-5]\d{8}$/,
    mobile: /^0[67]\d{8}$/,
    tollFree: /^080[0-5]\d{6}$/,
    specialService08: /^08\d{8}$/, // All 08 numbers (includes toll-free, shared-cost, premium)
    voip: /^09\d{8}$/
  };

  return Object.entries(patterns).find(([type, pattern]) => pattern.test(cleanedNumber));
};


// Example usage:
console.log(validateFrenchNumber("06 12 34 56 78")); // Returns matching pattern (mobile)
console.log(validateFrenchNumber("+33612345678")); // Returns undefined (needs cleaning first)

// Clean and validate international number
const internationalNumber = "+33612345678";
const cleanedInternational = internationalNumber.replace(/\s/g, '').replace(/\D/g, '').replace(/^330/, '0');
console.log(validateFrenchNumber(cleanedInternational)); // Returns matching pattern (mobile)

Formatting

javascript
const formatFrenchNumber = (number) => {
  const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');
  return cleanedNumber.replace(/(\d{2})(?=\d)/g, '$1 ');
};

Internationalization

javascript
const toInternational = (number) => {
  const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');
  return `+33 ${cleanedNumber.substring(1)}`; // Remove leading 0, add +33 and space
};

Best Practices

  • Use libphonenumber: Use Google's libphonenumber library for robust international number handling. It handles French number validation, formatting, and international conversions with regular updates for regulatory changes.
  • Regular Expression Maintenance: ARCEP numbering regulations change periodically. Subscribe to ARCEP announcements and update validation patterns accordingly.
  • Input Sanitization: Always sanitize user input to prevent injection attacks and unexpected behavior.
  • Rate Limiting: Implement rate limiting for number verification APIs to prevent abuse.
  • Security: Never trust client-side validation alone. Always validate phone numbers server-side before sending SMS or making calls.
  • Testing: Test with various valid and invalid formats, including international formats, leading zeros, and edge cases.

libphonenumber Example:

javascript
const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
const PNF = require('google-libphonenumber').PhoneNumberFormat;

const number = phoneUtil.parseAndKeepRawInput('0612345678', 'FR');
console.log(phoneUtil.isValidNumber(number)); // true
console.log(phoneUtil.format(number, PNF.INTERNATIONAL)); // +33 6 12 34 56 78