phone number standards
phone number standards
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 Range | Type | Description | Example |
|---|---|---|---|
| 01-05 | Geographic | Historically regional landlines, now assignable nationwide | 01 42 86 82 00 |
| 06-07 | Mobile | Mobile phone subscriptions | 06 12 34 56 78 |
| 08 | Special Services | Toll-free, shared-cost, and premium-rate numbers | 0800 12 34 56 |
| 09 | Non-Geographic | VoIP and non-location-based services | 09 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.
| Service | Number | Availability | Languages |
|---|---|---|---|
| All Emergencies | 112 | 24/7 | Multi-lingual |
| Medical (SAMU) | 15 | 24/7 | French, English |
| Police | 17 | 24/7 | French, English |
| Fire & Rescue | 18 | 24/7 | French |
| Deaf/Hard-of-Hearing | 114 | 24/7 | SMS, 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:
| Operator | Market Position (2025) | Network Coverage (Approx.) |
|---|---|---|
| Orange | Leader (40%) | 99% 4G/5G |
| SFR | Major Operator (25%) | 98% 4G |
| Bouygues Telecom | Established (20%) | 97% 4G |
| Free Mobile | Innovator (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:
| Range | Type | Pricing | Description |
|---|---|---|---|
| 0800-0805 | Toll-Free (Numéro Vert) | Free from landlines and mobiles | Customer service, public information |
| 0806-0809 | Free/Local Rate | May incur local rate charges from mobiles | Varies by operator |
| 0810-0819 | Shared-Cost | Local call rate + possible surcharge | Business services |
| 0820-0829 | Shared-Cost | Higher rate, typically €0.06-0.15/min | Information services |
| 0836-0899 | Premium-Rate (Audiotel) | €0.15-3.00/min + connection fee | Entertainment, 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
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
const formatFrenchNumber = (number) => {
const cleanedNumber = number.replace(/\s/g, '').replace(/\D/g, '');
return cleanedNumber.replace(/(\d{2})(?=\d)/g, '$1 ');
};Internationalization
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:
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