Guides

French phone number format: +33, 06 and 07 mobiles, validation and rules

French phone number format: +33 plus 9 digits, 06/07 mobiles, Arcep prefixes, tested validation code, RIO porting, opt-in sales calls and SMS consent.

By Published 24 min readHow we research and fact-check

On this page

French phone numbers use the country code +33 and have 10 digits when written at home, always starting with 0. A mobile number starts with 06 or 07, so 06 XX XX XX XX in France becomes +33 6 XX XX XX XX from abroad (E.164: +336XXXXXXXX), with nine digits after +33. Landlines start 01 to 05, VoIP and other non-geographic numbers 09, and special-rate numbers 08. The prefix shows which operator received the block, but numbers have been portable since 2003, so it doesn't prove the current network.

This guide is part of our phone numbers by country series. The tables come from libphonenumber's metadata, the numbering plan and number-block list published by Arcep (France's telecoms regulator), our MNP atlas and our public catalog. Example numbers are masked with X, taken from the ranges Arcep reserves for fiction, or are libphonenumber's own example number. We read the Arcep decisions, the laws on Légifrance and the CNIL's guidance on 2026-11-03; most are in French only. This is a summary, not legal advice.

What does a French phone number look like?

A French number is 10 digits written in five pairs: 0Z AB PQ MC DU. The first 0 is the trunk prefix you dial inside France. The next digit, Z, tells you the kind of number:

First digits (national)InternationalType
01, 02, 03, 04, 05+33 1 to +33 5Landline (formerly by region: Paris area, north-west, north-east, south-east, south-west)
06, 07+33 6, +33 7Mobile
08+33 8Special numbers: freephone (0800 to 0805) and shared or premium rates
09+33 9Non-geographic ("polyvalent") numbers, mostly internet-box VoIP lines

From abroad, drop the 0 and add +33. People write +33 (0)6 XX XX XX XX as a reminder to dial the 0 at home; strip the bracket and the 0 before you store it. Dots are a common separator too (06.XX.XX.XX.XX).

ItemValue
Country calling code+33
International call prefix (dialling out)00
Trunk prefix (dialling at home)0
Mobile: digits after +339
Fixed line: digits after +339
Toll-free: digits after +339
Premium rate: digits after +339
Shared cost: digits after +339
VoIP: digits after +339
Universal access (UAN): digits after +339
Mobile, national format (masked)06 1X XX XX XX
Mobile, international (masked)+33 6 1X XX XX XX
Mobile, E.164 (masked)+3361XXXXXXX
Fixed line, national format (masked)01 0X XX XX XX
Fixed line, international (masked)+33 1 0X XX XX XX
Fixed line, E.164 (masked)+3310XXXXXXX

Every type has nine digits after +33, so length alone can't tell a mobile from a landline; the first digit does. The only long numbers are the machine-to-machine (M2M) range 0700, which has 14 digits in mainland France (Arcep numbering plan, section 2.3.5). They are for devices, not people, and libphonenumber doesn't accept them as French mobiles.

Is Guadeloupe or Réunion +33?

No. The overseas departments use the French numbering plan but have their own country codes (Arcep numbering plan, section 2.3.4):

TerritoryCountry codeMobile blocks (national format)
Guadeloupe, Saint-Martin, Saint-Barthélemy+5900690, 0691
French Guiana+5940694
Martinique+5960696, 0697
Réunion+2620692, 0693
Mayotte+26206390 to 06398, 063990 to 063997, 063999
Saint-Pierre-and-Miquelon+508070840 to 070845, 070850 to 070855

A customer in Guadeloupe writes 0690 XX XX XX, which looks French. In E.164 it is +590 690 XX XX XX, not +33 690 …. If you serve overseas customers, ask for the territory, or parse with its region code (GP, GF, MQ, RE, YT, PM).

A wide card shows +33 and a ten-digit number as five pairs led by 06/07 above a dashed fiction row; below, a caller-authentication shield, a donut of mobile blocks by holder with a RIO pill, and a consent calendar.A wide card shows +33 and a ten-digit number as five pairs led by 06/07 above a dashed fiction row; below, a caller-authentication shield, a donut of mobile blocks by holder with a RIO pill, and a consent calendar.
French numbers: five pairs after +33, block holders aren't networks, and sales calls now need consent.

Which prefixes are mobile numbers?

In mainland France, Arcep's plan lists these mobile roots: 061, 062, 064, 066 to 068, 073 to 078, plus 0601 to 0609, 0630 to 0638, 0650 to 0652, 0656 to 0659, 0695, 0698 and 0699. The 079 range is reserved for future overseas needs. For each two-digit block, the generator counted every nine-digit number that libphonenumber's mobile pattern for FR accepts:

National prefixInternationalShare of the block that is mobile (9-digit numbers)3-digit sub-blocks that aren't fully mobile
060+33 60100%—
061+33 61100%—
062+33 62100%—
063+33 6390.0%not mobile: 0639
064+33 64100%—
065+33 65100%—
066+33 66100%—
067+33 67100%—
068+33 68100%—
069+33 6930.0%not mobile: 0690–0694, 0696, 0697
073+33 73100%—
074+33 74100%—
075+33 75100%—
076+33 76100%—
077+33 77100%—
078+33 78100%—
079+33 79100%—

The gaps are the overseas blocks from the table above: 0639 is Mayotte, and 0690 to 0694, 0696 and 0697 belong to the Caribbean departments and French Guiana. 070, 071 and 072 are not mobile at all (0700 is the M2M range). Arcep's plan reserves 06 and 07 for interpersonal services: the number must belong to one person who can make and receive calls and messages (Arcep, 5 September 2022). Machines, alarms and platforms have to use other ranges.

Which operator holds a 06 or 07 block?

Arcep allocates numbers in blocks and publishes every allocation as open data (MAJNUM file, matched to operator names with the operator code list). We summed the ten-digit 06 and 07 blocks allocated in mainland France in the file we downloaded on 2026-11-03 (latest allocation dated 2026-10-16). In total, 135.6 million mobile numbers are allocated:

Holder in Arcep's listShare of allocated 06/07 numbersBlocks it holds most of
Orange31.9%All of 067 and 068; most of 063, 064 and 078
SFR24.7%All of 061; most of 062; the largest share of 060 and 077
Bouygues Telecom18.9%Most of 066, 076 and 0695/0698/0699
Free Mobile9.9%Large shares of 074, 076 and 078
Lycamobile3.0%Part of 075
Lebara2.2%Part of 075
Syma2.0%Part of 077
La Poste Telecom1.9%Parts of 064 and 074
103 other operators5.4%Smaller blocks, mostly in 060, 065, 074 and 075

073 and 079 have no mainland allocations in the file. Two things follow. First, the "valid" mobile pattern in libphonenumber is wider than what is in use, so a valid 073 number is possible under the plan but not yet issued. Second, the block holder is only a starting point: blocks range from 1 million numbers down to 10,000 or even 1,000, so newer ranges are split between many operators, and any number can be ported. Arcep's own lookup tool (identify an operator by its number) answers the same question one number at a time and doesn't follow porting either.

What do 01 to 05, 09 and 08 numbers mean today?

Landline numbers kept their regional first digit: 01 Île-de-France, 02 north-west, 03 north-east, 04 south-east and 05 south-west, plus 0262, 0590, 0594 and 0596 overseas. But since 1 January 2023 the "geographic" category no longer exists in Arcep's plan. Most 01 to 05 numbers became polyvalent numbers that can be given to a subscriber anywhere in mainland France, and a customer who moves can keep the number (Arcep decision 2022-1583, sections 2.3.3 and 2.3.6; Arcep portability page). A 04 number is no longer proof that someone lives in the south-east.

09 numbers are polyvalent too, and libphonenumber types most of them as VOIP: they are the numbers that come with internet boxes and IP phone services. Two sub-ranges are special:

  • 0937 and 0938 are for conversations between a mobile user and a "technical platform", such as a shop chatting with a customer or a delivery driver or ride-hailing app masking both parties' numbers.
  • 0948 and 0949 are verified polyvalent numbers (see below).

08 numbers are special services: freephone numbers start 0800 to 0805, and the rest of 08 carries shared or premium rates. None of these should be accepted as a personal sign-up number.

What are 0162, 0163, 0270 and 0271 numbers?

They are verified polyvalent numbers (numéros polyvalents vérifiés), the ranges that automated calling and messaging systems may show as caller ID. Arcep's plan reserves 12 of them in mainland France: 0162, 0163, 0270, 0271, 0377, 0378, 0424, 0425, 0568, 0569, 0948 and 0949. Overseas, the ranges are 09475 and 05987 (Guadeloupe, Saint-Martin, Saint-Barthélemy), 09476 and 05988 (French Guiana), 09477 and 05989 (Martinique), and 09478 and 09479 (Mayotte and Réunion) (Arcep numbering plan, section 2.3.7).

The rule, in force since 1 January 2023, works in two parts (Arcep decision 2022-1583, sections 2.3.2 f, 2.3.4 f and 2.3.7):

  • Automated systems can't use mobile or most landline numbers as caller ID. Mobile numbers have no exception at all. Other landline-style numbers have narrow exceptions for low-volume systems, such as one that calls five numbers or fewer in 30 days.
  • Verified numbers must be authorised. The operator running a 0162-type number must be able to show that the number's holder explicitly agreed to its use as caller ID in each call or message. If it can't, the call or message is not allowed, even with the caller ID hidden.

In practice, a French call centre's dialler, an automated reminder line or a robocall shows one of these 12 prefixes. People in France have learned to recognise them as sales or automated calls. For you, the useful consequences are: don't send automated SMS or calls from a 06 or 07 number, and don't treat a 0162 number as a customer's personal line.

Since 1 January 2026, the plan also has a category of numbers for automated calls and messages of general interest, such as public alerts. They can only be given to bodies named in a joint ministerial order (Arcep, 2 December 2025).

How do I validate a French number in code?

Use a libphonenumber port with full metadata and the default region FR, and keep only numbers typed as mobile. Pass the region of an overseas department when you expect one.

Python (pip install phonenumbers):

Python
import phonenumbers
from phonenumbers import PhoneNumberType


def normalize_fr(raw: str, region: str = "FR") -> str | None:
    """E.164 for a French mobile number (06, 07), or None.
    For an overseas department pass its own region code, e.g. "GP" or "RE"."""
    try:
        n = phonenumbers.parse(raw, region)
    except phonenumbers.NumberParseException:
        return None
    if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != region
            or phonenumbers.number_type(n) != PhoneNumberType.MOBILE):
        return None
    return phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)


for raw in ["06 12 34 56 78", "+33 (0)6 12 34 56 78", "0033 6 12 34 56 78", "06.12.34.56.78",
            "01 99 00 12 34", "06 39 98 12 34", "0690 12 34 56"]:
    print(f"{raw!r:24} -> {normalize_fr(raw)}")
print(f"{'0690 12 34 56 (GP)':24} -> {normalize_fr('0690 12 34 56', 'GP')}")

JavaScript (npm install libphonenumber-js):

JavaScript
import { parsePhoneNumberFromString } from "libphonenumber-js/max";

/** "06 …", "+33 (0)6 …", "0033 …" → E.164 for a French mobile number, or null.
 *  For an overseas department pass its own region code, e.g. "GP" or "RE". */
export function normalizeFr(raw, region = "FR") {
  const phone = parsePhoneNumberFromString(String(raw), region);
  return phone?.isValid() && phone.country === region && phone.getType() === "MOBILE" ? phone.number : null;
}

for (const raw of ["06 12 34 56 78", "+33 (0)6 12 34 56 78", "0033 6 12 34 56 78", "06.12.34.56.78",
                   "01 99 00 12 34", "06 39 98 12 34", "0690 12 34 56"]) {
  console.log(JSON.stringify(raw).padEnd(24), "->", normalizeFr(raw));
}
console.log("0690 12 34 56 (GP)".padEnd(24), "->", normalizeFr("0690 12 34 56", "GP"));

We ran both on 2026-11-03 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). 06 12 34 56 78 is libphonenumber's own example number; the others come from Arcep's fiction ranges or are overseas test inputs. Both printed the same results; Python prints single quotes and None, JavaScript double quotes and null:

Text
'06 12 34 56 78'         -> +33612345678
'+33 (0)6 12 34 56 78'   -> +33612345678
'0033 6 12 34 56 78'     -> +33612345678
'06.12.34.56.78'         -> +33612345678
'01 99 00 12 34'         -> None
'06 39 98 12 34'         -> None
'0690 12 34 56'          -> None
0690 12 34 56 (GP)       -> +590690123456

The +33 (0) form and the dots parse correctly in both libraries. The Paris fiction number is a valid landline, so it's dropped. The mobile-looking fiction number 06 39 98 … is rejected, because 0639 is Mayotte's block under +262 and the fiction block is never assigned. 0690 … fails as a mainland number and passes as +590 when you parse it for Guadeloupe.

The generated test table runs the same idea over masked inputs. The shape regex column tests the pattern most tutorials give, after spaces, dots, dashes and brackets are removed:

#CaseInput (masked)Shape regex ^(?:\+33|0033|0)?[67]\d{8}$libphonenumber (FR)
1National, with trunk prefix06 1X XX XX XXpassesvalid, MOBILE
2International, with spaces+33 6 1X XX XX XXpassesvalid, MOBILE
3International dialling prefix 000033 6 1X XX XX XXpassesvalid, MOBILE
4E.164+3361XXXXXXXpassesvalid, MOBILE
5Dashes and brackets(06) 1X-XX-XX-XXpassesvalid, MOBILE
6One digit short061XXXXXXfailsinvalid
7One digit too many061XXXXXXXXfailsinvalid
8Mobile shape, unused block 070070XXXXXXXpassesinvalid
9Fixed line01 0X XX XX XXfailsvalid, FIXED_LINE
10Toll-free range0 800 XX XX XXfailsvalid, TOLL_FREE

Row 8 is the French trap: 070 has the shape of a mobile number and passes the regex, but it isn't a mobile range. The regex also passes 0690 and 0639 numbers as mainland mobiles. Our E.164 developer guide and the post on why an E.164 regex is not enough cover the general problem.

Which numbers can I use in tests and examples?

Use the fiction ranges in Arcep's numbering plan ("numbers for audiovisual works"). Each is a block of 10,000 numbers that Arcep never allocates to an operator; the 2022 version of the plan added that they can't be given to a subscriber, called or shown as a caller ID:

ZoneRange
Île-de-France01 99 00 00 00 to 01 99 00 99 99
North-west02 61 91 00 00 to 02 61 91 99 99
North-east03 53 01 00 00 to 03 53 01 99 99
South-east04 65 71 00 00 to 04 65 71 99 99
South-west05 36 49 00 00 to 05 36 49 99 99
Mobile style06 39 98 00 00 to 06 39 98 99 99

The five landline blocks pass libphonenumber as FIXED_LINE, which makes them good parser test data. The mobile-style block fails validation for both FR and Mayotte (YT), so it can't stand in for a valid mobile in a unit test. Use the library's example number for that, and never a real customer's number. None of these numbers answer a live lookup.

Does number portability change the carrier?

Yes. Mobile number portability (MNP) opened in France on 1 July 2003. Porting within 10 days began in mainland France on 21 May 2007, and a simpler, faster procedure followed on 7 November 2011 (Arcep portability page). How it works today:

  • Get the RIO. The relevé d'identité opérateur is a unique 12-character code. Call 3179 from the mobile: the call is free, the number is the same on every network, it works around the clock, and the code arrives by voice and then by SMS (Service-Public.fr). Since 1 December 2023, every end user can get a RIO free of charge, for any type of number.
  • One working day. The porting delay set by law is one working day, subject to the line being available, unless the subscriber asks for a later date (Arcep).
  • The new operator does the work. You give it your number and RIO; it asks the old operator to port. The port ends the old contract at the same time, but early-termination fees in that contract still apply. You can still port up to 40 days after cancelling a line.
  • Compensation. If the port goes wrong or is late, the subscriber can ask the operator for compensation (Service-Public.fr).

The France row of our MNP atlas:

ItemValue
Mobile number portabilityYes
Mobile porting since2003-07-01
Maximum porting time1 working day
Governing ruleCPCE L44 / D406-18; Arcep decisions; EECC Art. 106
Published porting volumenone published
Sourcearcep.fr, eur-lex.europa.eu
Checked2026-11-03

The atlas row gives the launch year only. Arcep's page dates it to 1 July 2003. Our MNP atlas compares France with other countries. With four network operators (Orange, SFR, Bouygues Telecom and Free Mobile) and dozens of virtual operators on their networks, the block holder is a weak guess. For SMS routing, pricing or fraud rules, look up the current network per number.

Arcep also tightened the rules for reused numbers. Since 1 January 2026, a number whose line was cancelled by the operator, for example when a copper line closes, can't be reassigned for at least 45 days, so the former user has time to recover it (Arcep, 2 December 2025). For a business, that is a reminder that a number can change hands: check numbers again before you reuse an old list.

What are the rules for sales calls, SMS and caller ID?

These summarise the laws, decisions and guidance as we read them on 2026-11-03. Not legal advice; ask counsel how they apply to you.

France switched from opt-out to opt-in for telephone prospecting. Article 13 of Law no. 2025-594 of 30 June 2025 rewrote article L223-1 of the Consumer Code, with effect from 11 August 2026 (Law 2025-594, art. 13; L223-1):

  • Prior consent. It is forbidden to canvass by phone a consumer who has not consented beforehand. Consent means a free, specific, informed, unambiguous and revocable expression of will, and the business must prove it.
  • Existing contracts. The ban doesn't apply to calls about a contract in progress and its subject. A call about a different product is not covered by that exception.
  • Banned sectors. Phone canvassing for home renovation for energy savings, renewable energy or adapting homes for older or disabled people is banned outright, except within a contract in progress.
  • Void contracts. A contract concluded after an unlawful call is void, and a business that benefits from unlawful calls is presumed responsible.

Decree no. 2026-662 of 23 July 2026 sets the details, also from 11 August 2026 (Decree 2026-662):

  • Consent needs a clear positive act. A pre-written statement or simply continuing to browse a website doesn't count.
  • The request must name the business, the goods or services, the period of consent and how to withdraw. Consent lasts at most one year and can't renew tacitly.
  • The business keeps a digital record of the consent, with its date and time, for three years, and gives the consumer a free copy on request.
  • Withdrawal must be no harder than giving consent, and can be oral.

The days and hours from the 2022 rules still apply: calls only on weekdays that aren't public holidays, from 10:00 to 13:00 and 14:00 to 20:00 in the consumer's time zone, and no more than four calls to the same consumer in 30 days (article D223-9 of the Consumer Code, in its version in force since 11 August 2026; French Business Law translation).

What happened to Bloctel?

Bloctel was France's opposition list: since 2016, consumers could register their numbers, and businesses had to remove registered numbers from their call lists. Under opt-in, a list of people who refuse calls has no role, and the service stopped applying on 11 August 2026 (Blog du Modérateur, 2026; bloctel.gouv.fr). If your process still "cleans against Bloctel", replace that step with a consent record per number.

SMS follows a different law. Article L34-5 of the Postal and Electronic Communications Code (CPCE) bans direct marketing by automated systems, fax and electronic mail to a natural person who has not consented beforehand (L34-5). The ePrivacy Directive defines electronic mail broadly enough to cover SMS (Directive 2002/58/EC, Art. 2(h)). The CNIL's guidance, dated 10 June 2026, explains how it applies (CNIL):

  • Individuals (B2C): consent before the first message. It must be free, specific, informed and unambiguous, given by a positive action: a pre-ticked box or accepting general terms is not enough.
  • Existing customers: you may market your own similar products or services to a customer who bought from you and was able to refuse when the number was collected. Creating an online account without a purchase doesn't qualify.
  • Professionals (B2B): marketing related to the person's job can rely on legitimate interest, if they are informed and can object.
  • Every message must identify the sender and give a simple, free way to refuse further messages.

The CNIL tells consumers that replying "STOP" works for sender numbers of five digits starting with 3, 4, 5, 6, 7 or 8, and that unwanted SMS can be reported to the 33700 service (CNIL). If you send from a short code, process STOP replies; if you send from an alphanumeric sender ID, put a working opt-out in the text.

One court ruling to note: on 25 June 2026 the Conseil constitutionnel found that L34-5 let three authorities (the CNIL, the consumer authority and Arcep) punish the same breach, which breaches the principle that penalties must be necessary. It struck the three enforcement paragraphs, with effect from 31 October 2027; until then, no authority may pursue facts another one is already handling or has already sanctioned (Decision 2026-1210 QPC). The consent rule itself is unchanged.

Caller authentication (MAN) and masked calls from abroad

France's number authentication mechanism (mécanisme d'authentification des numéros, MAN) is its version of STIR/SHAKEN. The 2020 "Naegelen" law on telephone canvassing added it to article L44 of the CPCE, and the obligations took effect on 25 July 2023. Arcep says the progressive rollout began in October 2024 (Arcep, 29 January 2026). How it works (Arcep operator guide):

  • The originating operator signs each call and message with a French number and vouches for the caller's right to use it. Attestation level A means the number was verified; B and C don't meet the legal requirement.
  • Transit and terminating operators must pass the signature on unchanged and cut off calls whose number can't be authenticated, unless the caller ID is hidden.
  • Since 1 January 2026, a call arriving from abroad with a French mobile number (06 or 07) that can't be authenticated is masked instead of cut off (Saint-Martin: from 1 January 2028). Calls from abroad showing a French landline number (01 to 05, 09) without authentication are still cut off.
  • Also since 1 January 2026, operators must list in each contract the numbers a customer may show as caller ID, and technically limit calls to that list (Arcep decision 2025-2215).

Spoofing hasn't stopped: Arcep counted more than 19,000 identity-spoofing reports on its "J'alerte l'Arcep" platform in 2025, up from 531 in 2023, and opened an investigation into call routes on 29 January 2026. For a voice OTP placed from outside France, expect the French number you show to be masked or the call blocked. Use a number your provider can authenticate in France, or send the code by SMS. Our guide to STIR/SHAKEN attestation levels explains the A, B and C levels.

Personal data (GDPR)

A phone number linked to a person is personal data under the GDPR (Regulation (EU) 2016/679). Checking a customer's number, for reachability or WhatsApp registration, needs a lawful basis under Art. 6, such as a contract or a legitimate interest you have weighed, and people can object to direct marketing at any time under Art. 21. Our posts on whether a phone number is personal data and on consent for WhatsApp checks give the baseline: your own customers, a stated purpose, minimal data and honoured objections.

Which messaging apps and channels reach people?

SMS reaches every active French mobile. We didn't find a primary source that measures messaging-app use in France in a way we can verify for this guide, so we don't quote shares. The practical answer is to measure your own opted-in customers: check which apps they are registered on, route each person to the channel they use, and keep SMS as the fallback.

How do I check WhatsApp registration for a French customer list?

Normalise every row first, then run one check per number. A check tells you whether a number is registered at the time of the check. It can't tell you whether the person wants your messages:

AnswerWhat it meansWhat to do
registered: trueThe number has a WhatsApp account at checked_atOffer WhatsApp to customers who opted in to it
registered: falseNo account at checked_atUse SMS or another channel
unknownNo conclusive answer (not billed)Keep the current channel; retry later
invalid_numberFailed format validation (not billed)Fix the data at the source

For lists, use a bulk job. Upload a CSV with numbers written the French way (06 XX XX XX XX, +33 (0)6 … and dots also work) and default_country=FR:

Bulk WhatsApp and live status check for a customer CSV
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -F file=@customers.csv -F checks=whatsapp,hlr -F default_country=FR

Send the same body to POST /v1/jobs/estimate first: it is free and shows the maximum cost before anything runs. Rows from overseas departments need their own country code in the file, or a separate job with default_country=GP, RE and so on.

What changed recently?

The rows for FR and +33 in our numbering-plan changes dataset, built from libphonenumber's release notes:

Change named in the release notes (2019-01-08 to 2026-09-23)Releases
Original-carrier prefix data18
Numbering-plan metadata (validation, lengths, types)9
Short numbers5
Geocoding (area names)3
All35

Latest numbering-plan updates for FR: 2024-08-07 (v8.13.43), 2024-01-10 (v8.13.28), 2023-07-19 (v8.13.17), 2023-02-23 (v8.13.7), 2022-04-19 (v8.12.47).

France's validation metadata has been stable since August 2024; most library releases touched carrier names, not number rules. The regulatory changes matter more:

DateChange
1 January 2023Geographic numbers abolished as a category; automated systems can't show mobile numbers as caller ID; verified ranges 0162 … 0949 open
1 July 2023Arcep allocates new blocks of 1,000 numbers instead of 10,000
25 July 2023Number authentication (MAN) obligations take effect; rollout from October 2024
1 December 2023Free RIO for every end user and number type
1 January 2026Unauthenticated calls from abroad with French mobile numbers are masked; caller-ID lists in contracts; 45-day hold before reusing cancelled numbers
25 June 2026Conseil constitutionnel strikes the three L34-5 enforcement paragraphs, from 31 October 2027
11 August 2026Opt-in for sales calls to consumers; Bloctel no longer applies

What can MobileValidate check for French numbers?

Generated from our public catalog:

Catalog data as of 2026-11-03.

CheckAccepts France numbersNotes
Format and country (every lookup)YesEach number is parsed first; an invalid number returns invalid_number and is never billed.
Carrier lookup (beta)YesLine type and current network where data exists; no data means unknown, not billed. Real time and bulk.
US/CA carrier lookup (premium)No (US, CA only)Answers unsupported_country for other countries, not billed.
Live network status (HLR)YesLive reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk.
Number portability (MNP)YesPorted or not ported, and the current network code; unknown is free. Real time and bulk.
Spam reputationLimited accessAll countries except sanctioned ones; report coverage is strongest in North America and Europe.
Messaging appsYes: WhatsApp, Telegram, Viber*, Signal*, iMessage*, RCS*, LINE*, Zalo*, Botim*, Facebook Messenger*Registered, not registered or unknown; unknown is free.
Social networksYes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat*Not for France numbers: LinkedIn (US, IN only).
Online accounts (Apple, Amazon, Microsoft, Netflix)Yes: Apple, Amazon, Microsoft, NetflixRegistered, not registered or unknown; unknown is free.

* bulk jobs only. The live list is at GET /v1/services.

A lookup returns network and registration facts. It never returns a subscriber's name or address, and we don't offer "number details" searches.

How to start without paying:

  • Free test key. Get a test key: it never touches a real network and returns fixed answers for reserved test numbers, so you can build every branch first (test mode).
  • Five real checks. Every live account can run 5 phone numbers and 5 e-mail addresses through the real-time checks for free on the dashboard's Try it page.
  • Free estimate. POST /v1/jobs/estimate shows the maximum cost of a bulk file before anything runs.

To get a live account, request access. Viber and Zalo checks are bulk-only for now, as the asterisks in the table show. Prices are on the pricing page, which also lists the bonus on larger top-ups.

Because the 06 or 07 prefix shows only the block holder, the useful French lookup is the current network. An HLR lookup gives live reachability, porting and the current network code in one call; an MNP lookup gives ported or not ported and the current network. Here is a small flow for a customer list that adds WhatsApp registration. It uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values. The sandbox accepts only those UK drama numbers, so the example uses them. With a live key, pass the output of normalize_fr().

fr_reach.py
import os

import requests  # pip install requests

API = "https://api.mobilevalidate.com/v1/lookup"
KEY = os.environ["MOBILEVALIDATE_API_KEY"]


def reach(numbers: list[str]) -> dict[str, dict]:
    """Live status, porting, current network and WhatsApp registration. None means we don't know."""
    r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"}, timeout=15,
                      json={"numbers": numbers, "checks": ["hlr", "whatsapp"], "wait": 5})
    r.raise_for_status()
    out = {}
    for row in r.json()["results"]:
        hlr, wa = row["checks"]["number.hlr"], row["checks"]["whatsapp.registered"]
        attrs = (hlr["attributes"] or {}) if hlr["status"] == "completed" else {}
        out[row["e164"]] = {
            "status": attrs.get("status"),
            "ported": attrs.get("ported"),
            "mcc_mnc": attrs.get("mcc_mnc"),
            "whatsapp": wa["registered"] if wa["status"] == "completed" else None,
        }
    return out


for number, info in reach(["+447700900001", "+447700900002", "+447700900005"]).items():
    print(number, info)

What it printed with the sandbox key on 2026-11-03:

Text
+447700900001 {'status': 'reachable', 'ported': False, 'mcc_mnc': '23415', 'whatsapp': True}
+447700900002 {'status': 'unreachable', 'ported': False, 'mcc_mnc': '23415', 'whatsapp': False}
+447700900005 {'status': None, 'ported': None, 'mcc_mnc': None, 'whatsapp': None}

The last test value answers unsupported_country for both checks, so everything is None. Keep None apart from False: None means we don't know, and it's never billed. Requests with 20 or more consecutive numbers are refused (403 suspected_enumeration), and our acceptable use policy forbids finding recipients for unsolicited messages. People can object through our opt-out form. See WhatsApp number check and carrier lookup for the fields.

What are the key takeaways?

  • French numbers are 10 digits at home and +33 plus 9 digits in E.164; mobiles start 06 or 07. Store +336XXXXXXXX, without the (0), spaces or dots.
  • Overseas departments have their own codes: a 0690 number is +590, a 0692 number +262. Parse them with their own region.
  • 01 to 05 no longer prove a location (since 2023), 09 is mostly VoIP, 08 is special-rate, and 0162, 0163, 0270 … 0949 are verified numbers used by automated callers.
  • The prefix names the block holder in Arcep's list, not the current network: porting has run since 1 July 2003, with a RIO from 3179 and a one-working-day delay.
  • Use Arcep's fiction ranges (01 99 00 XX XX and the others) in examples, never real numbers.
  • Since 11 August 2026, sales calls to consumers need prior, recorded consent and Bloctel no longer applies; marketing SMS have needed prior consent under L34-5 for years.
  • Calls from abroad with unauthenticated French mobile numbers are masked since 1 January 2026, so plan voice OTP accordingly.

Network, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.

Sources

  1. Plan national de numérotation et ses règles de gestion (annex to decision 2018-0881 as amended; version of 1 January 2026), Décision n° 2025-2215 du 27 novembre 2025 — Arcep (Autorité de régulation des communications électroniques, des postes et de la distribution de la presse), 2025
  2. Décision n° 2022-1583 modifiant le plan national de numérotation (version of 1 September 2022) — Arcep, 2022
  3. Numérotation : l'Arcep fait évoluer le plan national de numérotation (press release, 5 September 2022) — Arcep, 2022
  4. Plan de numérotation : l'Arcep adopte sa décision (press release, 2 December 2025) — Arcep, 2025
  5. Authentification des numéros de téléphone fixe ou mobile : que faire en tant qu'opérateur téléphonique ? — Arcep, 2026
  6. Protection des consommateurs : l'Arcep ouvre une enquête administrative sur l'origine et les routes des appels impliqués dans les fraudes (press release, 29 January 2026) — Arcep, 2026
  7. La portabilité des numéros de téléphone fixes et mobiles — Arcep, 2026
  8. Ressources en numérotation téléphonique (MAJNUM, allocated number blocks; downloaded 2026-11-03) — Arcep via data.gouv.fr, 2026
  9. Identifiants de communications électroniques (operator codes) — Arcep via data.gouv.fr, 2026
  10. Identifier un opérateur par un numéro — Arcep, 2026
  11. Changer d'opérateur de téléphonie mobile : conserver son numéro (portabilité) — Service-Public.fr (Direction de l'information légale et administrative), 2026
  12. Loi n° 2025-594 du 30 juin 2025 contre toutes les fraudes aux aides publiques, article 13 — Légifrance, 2025
  13. Code de la consommation, article L223-1 (version in force from 11 August 2026) — Légifrance, 2026
  14. Décret n° 2026-662 du 23 juillet 2026 relatif aux modalités de recueil, de conservation et de retrait du consentement du consommateur à des fins de prospection commerciale par voie téléphonique — Légifrance, 2026
  15. Code des postes et des communications électroniques, article L34-5 — Légifrance, 2020
  16. Décision n° 2026-1210 QPC du 25 juin 2026 (Société Orange SA) — Conseil constitutionnel, 2026
  17. La prospection commerciale par courrier électronique, SMS-MMS et automate d'appel — CNIL, 2026
  18. Ne plus recevoir de SMS publicitaires — CNIL, 2026
  19. Bloctel, liste d'opposition au démarchage téléphonique — Bloctel (French government service), 2026
  20. Démarchage téléphonique, fin de Bloctel : ce qui change le 11 août — Blog du Modérateur, 2026
  21. Article D223-9 of the French Consumer Code (consolidated, in force since 11 August 2026; English translation) — French Business Law, 2026
  22. Directive 2002/58/EC on privacy and electronic communications (ePrivacy Directive) — EUR-Lex, Publications Office of the European Union, 2002
  23. Directive (EU) 2018/1972 establishing the European Electronic Communications Code — EUR-Lex, Publications Office of the European Union, 2018
  24. Regulation (EU) 2016/679 (General Data Protection Regulation) — EUR-Lex, Publications Office of the European Union, 2016
  25. libphonenumber PhoneNumberMetadata.xml (regions FR, GP, GF, MQ, RE, YT, PM) — libphonenumber project (Apache License 2.0), 2026

Frequently asked questions

How many digits is a French phone number?

Ten digits when written in France, starting with 0, for example 06 XX XX XX XX. In international form you drop the 0 and add the country code +33, so nine digits follow +33: +33 6 XX XX XX XX. Mobile, landline, VoIP and special numbers all have this length, except a few long machine-to-machine numbers starting 0700.

What is the France country code for WhatsApp and international calls?

+33. Drop the leading 0 of the French number: 06 XX XX XX XX becomes +33 6 XX XX XX XX. People often write +33 (0)6 …, which is fine for reading, but save the E.164 form +336XXXXXXXX without the 0, spaces or dots. Overseas departments have their own codes, such as +590 for Guadeloupe and +262 for Réunion and Mayotte.

Are 06 and 07 numbers always mobile in France?

Yes. Arcep, the French telecoms regulator, reserves 06 and 07 for mobile numbers used by one person for calls and messages. Machine-to-machine services use long 0700 numbers instead. Some blocks are not mainland mobiles: 0690 to 0694, 0696, 0697 and 0639 belong to overseas departments, and 073 and 079 have no mainland blocks allocated yet.

Can I tell the operator from a 06 or 07 prefix?

No. Arcep allocates mobile numbers to operators in blocks, so a prefix names the operator that received the block, not today's network. Numbers have been portable since 1 July 2003, and a switch takes about a working day. To know the current network, look up each number.

What is the RIO code and how do I keep my number?

The RIO (relevé d'identité opérateur) is a 12-character code that proves you hold the line. Call 3179 from your mobile, which is free and works on every network at any time, and you receive the code by voice and SMS. Give the number and the RIO to the new operator: it requests the port and the old contract ends automatically.

Are there fictional French phone numbers for films and tests?

Yes. Arcep's numbering plan reserves six blocks of 10,000 numbers for fiction: 01 99 00 XX XX, 02 61 91 XX XX, 03 53 01 XX XX, 04 65 71 XX XX, 05 36 49 XX XX and 06 39 98 XX XX. Arcep never allocates them to an operator, so they are never assigned to anyone.

Is cold calling still allowed in France after Bloctel?

No. Since 11 August 2026, article L223-1 of the Consumer Code bans telephone prospecting of consumers who have not given prior consent, and the Bloctel opt-out list no longer applies. Consent must be a clear positive act, lasts at most one year and must be kept as proof for three years. Calls about an existing contract are exempt.

Do I need consent to send marketing SMS in France?

Yes, for SMS to individuals. Article L34-5 of the Postal and Electronic Communications Code requires prior consent, and the CNIL says pre-ticked boxes or accepting terms of use don't count. The exception is an existing customer offered similar products who could refuse at collection. Every message must identify the sender and offer a free way to stop.

All articles

Know before you send.

Create a free account: approved automatically, usually within 10–15 minutes.

Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.