On this page
German numbers use the country code +49. A mobile number has 10 or 11 digits after the code and starts with 15, 16 or 17 (015x, 016x or 017x when dialled at home), so in E.164 it looks like +49 15XX XXXXXXX or +49 171 XXXXXXX. Germany has no single number length: mobile lengths depend on the block, and landline area codes have two to five digits. The prefix names the company that holds the range, but numbers have been portable since 2002, so it doesn't prove the current network.
This guide is part of our phone numbers by country series. The tables are generated from libphonenumber's metadata, our MNP atlas and our public catalog. Example numbers are masked with X or taken from the Federal Network Agency's fictional "drama numbers", which are never given to anyone. We read the Federal Network Agency's numbering plans, its list of allocated mobile blocks and the laws on gesetze-im-internet.de on 2026-11-02; most are in German only. This is a summary, not legal advice.
What does a German phone number look like?
A mobile number is 015X XXXXXXXX, 016X XXXXXXX or 017X XXXXXXX at home: the trunk prefix 0, a two-digit service code (15, 16 or 17), then a block code and the subscriber digits. From abroad you drop the 0 and write +49 15X XXXXXXXX. Germans often write +49 (0)171 XXXXXXX, with the trunk prefix in brackets, as a reminder to dial it at home. Don't store that form.
The length is the tricky part. The Federal Network Agency's mobile numbering plan sets it per range (Nummernplan Mobile Dienste, sections 2.3, 2.4 and 4.3.1):
015numbers always have 11 digits after the0(after+49):15, a block code and the subscriber number.0160,0162,0163and017numbers have 10 or 11 digits. The operator holding the block decides which length it gives out, so0171 XXXXXXX(10 digits) and0171 XXXXXXXX(11 digits) can both be real.
Landlines vary even more. Germany has about 5,200 local network areas, each with an area code (Ortsnetzkennzahl, or Vorwahl) of two to five digits without the leading 0 (Federal Network Agency, Ortsnetzrufnummern). Since 1 July 2011, new local numbers are in principle 11 digits long including the area code. The exception is single lines in the four areas with two-digit codes, Berlin (030), Hamburg (040), Frankfurt (069) and Munich (089), which get 10 digits. Older numbers can be shorter, and subscribers may add digits for extensions; numbers of up to 13 digits are generally reachable (Federal Network Agency, length of local numbers).
| Item | Value |
|---|---|
| Country calling code | +49 |
| International call prefix (dialling out) | 00 |
| Trunk prefix (dialling at home) | 0 |
| Mobile: digits after +49 | 10, 11 |
| Fixed line: digits after +49 | 5–15 |
| Toll-free: digits after +49 | 10–15 |
| Premium rate: digits after +49 | 10, 11 |
| Shared cost: digits after +49 | 7–14 |
| Personal number: digits after +49 | 11 |
| Pager: digits after +49 | 4–14 |
| Universal access (UAN): digits after +49 | 8–14 |
| Voicemail access: digits after +49 | 12, 13 |
| Mobile, national format (masked) | 015XX XXXXXXX |
| Mobile, international (masked) | +49 15XX XXXXXXX |
| Mobile, E.164 (masked) | +4915XXXXXXXXX |
| Fixed line, national format (masked) | 030 XXXXXXXX |
| Fixed line, international (masked) | +49 30 XXXXXXXX |
| Fixed line, E.164 (masked) | +4930XXXXXXXX |
The voicemail row is a German detail. Each mobile number has a mailbox number formed by inserting a two-digit infix, such as 13, 50, 55, 99 or 33 depending on the block, which is why those numbers are one or two digits longer (plan, section 2.5). They are valid numbers but not a person's mobile, so don't accept them as a sign-up number.
Store only the E.164 form: +49, then the national number without its 0, with no spaces or brackets.
Which prefixes are mobile numbers, and which operator holds each?
All mobile numbers start 015, 016 or 017. For each two-digit block, the generator counted every 10- and 11-digit number that libphonenumber's mobile pattern for DE accepts:
| National prefix | International | Share of the block that is mobile (10, 11-digit numbers) | 3-digit sub-blocks that aren't fully mobile |
|---|---|---|---|
015 | +49 15 | 80.2% | not mobile: 0154; partly mobile: 0153 (2.0%) |
016 | +49 16 | 30.0% | not mobile: 0161, 0164–0169 |
017 | +49 17 | 100% | — |
The 016 row is only 30% mobile because the plan's mobile range covers 0160, 0162 and 0163 only; 0164, 0168 and 0169 are reserved for paging (Funkruf) (Federal Network Agency, Mobile Dienste). In 015, the blocks are smaller and newer. Until 19 September 2013 the Federal Network Agency gave out 015 numbers in blocks of 10 million (two-digit block code, such as 0151X); since 20 September 2013 it allocates blocks of one million with a three-digit code, such as 01556X. No new original allocations are made from 0160, 0162, 0163 or 017 (plan, sections 2.3 and 2.4).
Block holders in the Federal Network Agency's list
The Federal Network Agency publishes the holder of every mobile block. The table below summarises the list as we downloaded it on 2026-11-02 (allocated blocks). The "network brand" column comes from libphonenumber's carrier data, which still names the networks the blocks were first used for (libphonenumber 49.txt):
| National prefix | International | Holder in the Federal Network Agency list | Network brand at allocation |
|---|---|---|---|
0151, 0160, 0170, 0171, 0175 | +49 151, +49 160, +49 170, +49 171, +49 175 | Telekom Deutschland | T-Mobile (D1) |
0152, 0162, 0172, 0173, 0174 | +49 152, +49 162, +49 172 to +49 174 | Vodafone (01521 is held by Lycamobile) | Vodafone (D2) |
0157, 0163, 0177, 0178 | +49 157, +49 163, +49 177, +49 178 | Telefónica Germany | E-Plus |
0159, 0176, 0179 | +49 159, +49 176, +49 179 | Telefónica Germany | O2 |
01555X, 01556X | +49 1555, +49 1556 | 1&1 Mobilfunk | 1&1 |
01551, 01563, 01567, 015310, 015333, 015888 and others | — | Smaller providers, such as Lebara, spusu, Argon Networks, MTEL, Simsalasim and TelcoVillage | — |
E-Plus became part of Telefónica Deutschland after the European Commission cleared the takeover in 2014 (Telefónica Deutschland, 2014), which is why the E-Plus and O2 blocks now have one holder. 1&1 started mobile services on its own network on 8 December 2023, and on 11 November 2025 it finished moving all customers that had been served on other networks under earlier wholesale contracts (1&1, 2025). Many of those customers kept numbers from Telekom, Vodafone or Telefónica blocks, so a 0176 or 0152 number can be on the 1&1 network today.
Two details matter for validation. First, libphonenumber accepts a few 015 blocks that aren't in the Federal Network Agency list, such as 0150X, so "valid" means "possible under the plan", not "allocated". Second, the list shows block 015410 held by Telekom, but libphonenumber's metadata 9.0.39 doesn't accept 0154 as mobile (see the prefix table). If your users send 0154 numbers that libphonenumber rejects, report it upstream rather than loosening your own check.
Why does a fixed-length regex fail for German numbers?
Most tutorials give a pattern like ^\+49\d{10,11}$ or ^\+491\d{10}$. The first accepts numbers that are too short for their block; the second rejects valid 10-digit 0171 numbers. We tested ^\+491\d{10}$ on two drama numbers on 2026-11-02: +4915228817386 passes, +491713920012 fails, although both are correct mobile numbers.
Area codes cause the same trouble for landlines. A two-digit code (030) leaves more room for the subscriber number than a five-digit code (03XXXX), and the same total length can be valid in one area and not in another. Only a library that carries the numbering plan can tell. Our post on why an E.164 regex is not enough shows the problem in other countries.
How do I validate a German number in code?
Use a libphonenumber port with full metadata and the default region DE, and keep only numbers typed as mobile.
Python (pip install phonenumbers):
import phonenumbers
from phonenumbers import PhoneNumberType
def normalize_de(raw: str) -> str | None:
"""E.164 for a German mobile number (015x, 016x, 017x), or None."""
try:
n = phonenumbers.parse(raw, "DE")
except phonenumbers.NumberParseException:
return None
if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "DE"
or phonenumbers.number_type(n) != PhoneNumberType.MOBILE):
return None
return phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)
for raw in ["0152 28817386", "+49 (0)171 3920012", "0049 176 04069012", "+49 30 23125012",
"0152 2881738", "0153 12345678"]:
print(f"{raw!r:24} -> {normalize_de(raw)}")JavaScript (npm install libphonenumber-js):
import { parsePhoneNumberFromString } from "libphonenumber-js/max";
/** "0152 …", "+49 (0)171 …", "0049 …" → E.164 for a German mobile number, or null. */
export function normalizeDe(raw) {
const phone = parsePhoneNumberFromString(String(raw), "DE");
return phone?.isValid() && phone.country === "DE" && phone.getType() === "MOBILE" ? phone.number : null;
}
for (const raw of ["0152 28817386", "+49 (0)171 3920012", "0049 176 04069012", "+49 30 23125012",
"0152 2881738", "0153 12345678"]) {
console.log(JSON.stringify(raw).padEnd(24), "->", normalizeDe(raw));
}We ran both on 2026-11-02 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). The inputs are Federal Network Agency drama numbers, so they reach nobody. Both printed the same results (Python prints None, JavaScript null):
'0152 28817386' -> +4915228817386
'+49 (0)171 3920012' -> +491713920012
'0049 176 04069012' -> +4917604069012
'+49 30 23125012' -> None
'0152 2881738' -> None
'0153 12345678' -> NoneThe +49 (0) form parses correctly in both libraries. The Berlin landline is valid but not mobile, so it's dropped. 0152 2881738 has the same 10-digit length as the valid 0171 number above, yet it's rejected, because 015 numbers need 11 digits. 0153 12345678 falls in a block that isn't open for mobiles.
The generated test table runs the same idea over masked inputs. The shape regex column tests the pattern most tutorials give, after spaces, dashes and brackets are removed:
| # | Case | Input (masked) | Shape regex ^(?:\+49|0049|0)?1\d{9,10}$ | libphonenumber (DE) |
|---|---|---|---|---|
| 1 | National, with trunk prefix | 015XX XXXXXXX | passes | valid, MOBILE |
| 2 | International, with spaces | +49 15XX XXXXXXX | passes | valid, MOBILE |
| 3 | International dialling prefix 00 | 0049 15XX XXXXXXX | passes | valid, MOBILE |
| 4 | E.164 | +4915XXXXXXXXX | passes | valid, MOBILE |
| 5 | Dashes and brackets | (015XX) XXXXXXX | passes | valid, MOBILE |
| 6 | One digit short | 015XXXXXXXX | passes | invalid |
| 7 | One digit too many | 015XXXXXXXXXX | fails | invalid |
| 8 | Mobile shape, unused block 010 | 010XXXXXXXXX | passes | invalid |
| 9 | Fixed line | 030 XXXXXXXX | fails | valid, FIXED_LINE |
| 10 | Toll-free range | 0800 XXXXXXXXXXXX | fails | valid, TOLL_FREE |
Row 6 is the German trap: a 015 number one digit short still has a valid length for 017, so the regex passes it, while libphonenumber knows the block needs 11 digits. Our Python and JavaScript guides cover more languages.
Which numbers can I use in tests and examples?
Use the Federal Network Agency's drama numbers. They can be shown, printed and spoken in films, books, brochures and teaching material without approval, and they are permanently unassigned (Federal Network Agency, drama numbers):
| Type | Range |
|---|---|
| Berlin landline | 030 23125 000 to 999 |
| Frankfurt am Main landline | 069 90009 000 to 999 |
| Hamburg landline | 040 66969 000 to 999 |
| Cologne landline | 0221 4710 000 to 999 |
| Munich landline | 089 99998 000 to 999 |
| Mobile, 100 numbers | 0171 39200 00 to 99, 0176 040690 00 to 99 |
| Mobile, single numbers | 0152 28817386, 0152 28895456, 0152 54599371, 0172 9925904, 0172 9968532, 0172 9973185, 0172 9973186, 0172 9980752, 0174 9091317, 0174 9464308 |
The Federal Network Agency says it doesn't plan to add more. For other area codes it suggests putting a 0 straight after the area code, because no subscriber number starts with 0. In a unit test these numbers check your parser; they don't prove that a live lookup works, because nothing answers on them.
Does number portability change the carrier?
Yes. Mobile number portability (MNP) has been available in Germany since 1 November 2002, and since May 2012 customers can port at any time, not only at the end of a contract (teltarif.de, 2012). Today the rules are in § 59 of the Telecommunications Act (TKG) of 2021 (§ 59 TKG):
- Any time for mobiles. A mobile customer can ask to port the number at any time; the old contract is not affected. After ending a contract, a customer can still ask for porting for up to one month.
- One working day. The number must be ported and switched on the agreed day, or at the latest on the next working day, and the service may not be interrupted for more than one working day.
- Mobile stays mobile. Porting between fixed-location and mobile voice services is not allowed in either direction.
- No direct charge. End users may not be charged directly for porting.
The Germany row of our MNP atlas:
| Item | Value |
|---|---|
| Mobile number portability | Yes |
| Mobile porting since | 2002-11-01 |
| Maximum porting time | 1 working day (max service interruption) |
| Governing rule | § 59 TKG (2021); EECC Art. 106 |
| Published porting volume | none published |
| Source | gesetze-im-internet.de, eur-lex.europa.eu |
| Checked | 2026-11-02 |
Mobile porting started on 1 November 2002 (teltarif.de press release cited above). Our MNP atlas compares Germany with other countries. With four network operators and many providers on their networks, the block holder is a weak guess. For routing, pricing or fraud rules, look up the current network per number; our SMS routing with MNP and HLR use case shows where that pays off.
What are the rules for SMS, sender IDs and calls?
These summarise the laws and Federal Network Agency pages as we read them on 2026-11-02. Not legal advice; ask counsel how they apply to you.
Marketing SMS and calls need consent (UWG § 7)
The Act against Unfair Competition (UWG) treats some advertising as an unacceptable nuisance in every case (§ 7 UWG):
- Calls to consumers need their prior express consent. For calls to businesses, at least presumed consent is enough.
- Automated calls, fax and electronic mail need the recipient's prior express consent. The ePrivacy Directive defines electronic mail as any text, voice, sound or image message that can be stored in the network or on the recipient's device until it is collected, which covers SMS (Directive 2002/58/EC, Art. 2(h)).
- Every advertising message must not hide the sender's identity and must give a valid address where the recipient can ask to stop, at no cost beyond basic transmission rates.
There is one exception, in § 7(3): a business that got a customer's electronic address in connection with a sale may advertise its own similar goods or services, if the customer hasn't objected and is told clearly, when the address is collected and in every message, that they can object at any time.
Document consent to calls (UWG § 7a)
Since October 2021, a business that advertises to consumers by phone must document their prior express consent when it is given and keep the record for five years, counted again after each use. It must show the record to the Federal Network Agency on request (§ 7a UWG). The Federal Network Agency published guidance on that documentation in a press release of 7 July 2022. Its list of fines shows steady enforcement: from February 2025 to July 2026 it lists fines against call centres, energy, insurance and solar companies, for calls without consent, incomplete consent records, ignored objections and hidden caller identities (Federal Network Agency fines).
Double opt-in in practice
German businesses usually collect marketing consent with a double opt-in: the person signs up, then confirms through a message sent to the address or number they gave. The Federal Court of Justice (BGH) set its limits in 2011 (BGH, I ZR 164/09):
- A confirmation email in a double opt-in process does not prove that the person agreed to advertising calls, because it doesn't show who owns the phone number entered.
- For email advertising to an address confirmed by double opt-in, the burden shifts: a consumer who says they never consented must show it, for example that the confirmation didn't come from them.
For SMS marketing, the practical lesson is to confirm on the channel itself: send a confirmation SMS to the number and store when and how the person replied. Keep the record per number, as for calls.
Caller ID and alphanumeric senders (TKG § 120)
Calls must carry a German number that is assigned to the caller, and special numbers such as 110 and 112 may not be sent as caller ID. A call that arrives from a foreign network showing a German number must have the number suppressed; mobile numbers in international roaming are the exception (§ 120 TKG). The Federal Network Agency warned that calls without a displayed number would rise from 1 December 2022 at the latest, when this took effect (Federal Network Agency, 2022). For a voice OTP sent from abroad, expect the number to show as withheld.
For text messages the same rule applies, with an exception: short codes and alphanumeric sender IDs are allowed if the recipient can clearly identify the sender from them and they don't allow two-way communication (§ 120(5)). In practice, use a sender ID that names your brand, and don't ask people to reply to it.
Prepaid SIMs are identity-checked
Before a prepaid mobile service is switched on, the provider must check the customer's name and date of birth against an ID card, passport or another listed document or register (§ 172 TKG). That makes a German mobile number harder to get anonymously than in some countries, but it says nothing about who is using the number today.
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 example 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 German mobile. We didn't find a published source that measures messaging-app use in Germany 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. Our channel-by-country guide shows the method.
How do I check WhatsApp registration for a German 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:
| Answer | What it means | What to do |
|---|---|---|
registered: true | The number has a WhatsApp account at checked_at | Offer WhatsApp to customers who opted in to it |
registered: false | No account at checked_at | Use SMS or another channel |
unknown | No conclusive answer (not billed) | Keep the current channel; retry later |
invalid_number | Failed format validation (not billed) | Fix the data at the source |
For lists, use a bulk job. Upload a CSV whose numbers are written nationally (0171 XXXXXXX, +49 (0)152 … also works) with default_country=DE:
curl https://api.mobilevalidate.com/v1/jobs \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-F file=@customers.csv -F checks=whatsapp,carrier -F default_country=DESend the same body to POST /v1/jobs/estimate first: it is free and shows the maximum cost before anything runs. Unknown or inconclusive results are never charged; see current prices.
What changed recently?
The rows for DE and +49 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 |
|---|---|
| Numbering-plan metadata (validation, lengths, types) | 19 |
| Short numbers | 7 |
| Original-carrier prefix data | 5 |
| Alternate formatting | 4 |
| Geocoding (area names) | 3 |
| All | 38 |
Latest numbering-plan updates for DE: 2026-05-06 (v9.0.30), 2025-09-11 (v9.0.14), 2025-08-28 (v9.0.13), 2025-06-19 (v9.0.8), 2025-06-04 (v9.0.7).
Germany's numbering-plan metadata changed in 19 libphonenumber releases over the period, most recently in May 2026. The Federal Network Agency still allocates new 015 blocks of one million numbers, so keep your library current, at least monthly, or numbers from a new block may fail validation. Beyond numbering, the changes that matter are the 1&1 network (mobile services since December 2023, all customers moved by November 2025), the caller-ID rule for calls from abroad (December 2022) and the documentation duty for call consent (October 2021).
What can MobileValidate check for German numbers?
Generated from our public catalog:
| Check | Accepts Germany numbers | Notes |
|---|---|---|
| Format and country (every lookup) | Yes | Each number is parsed first; an invalid number returns invalid_number and is never billed. |
| Carrier lookup (beta) | Yes | Line 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) | Yes | Live reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk. |
| Number portability (MNP) | Yes | Ported or not ported, and the current network code; unknown is free. Real time and bulk. |
| Spam reputation | Limited access | All countries except sanctioned ones; report coverage is strongest in North America and Europe. |
| Messaging apps | Yes: WhatsApp, Telegram, Viber, Signal*, iMessage*, RCS*, LINE*, Zalo, Botim*, Facebook Messenger* | Registered, not registered or unknown; unknown is free. |
| Social networks | Yes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat* | Not for Germany numbers: LinkedIn (US, IN only). |
| Online accounts (Apple, Amazon, Microsoft, Netflix) | Yes: Apple, Amazon, Microsoft, Netflix | Registered, not registered or unknown; unknown is free. |
* bulk jobs only. Catalog as fetched on 2026-11-02; 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.
For German numbers, the useful pair is an MNP lookup, which tells you whether a number has been ported and which network holds it now, and a live network status (HLR) check, which adds whether the number is currently reachable. Both answer unknown when there is no conclusive result, and unknown is free. Try them with the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values. The sandbox accepts only the UK drama numbers listed there, not German ones; with a live key, pass the output of normalize_de().
curl https://api.mobilevalidate.com/v1/lookup \
-H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+447700900001"], "checks": ["carrier", "whatsapp"], "wait": 5}'For +447700900001 the sandbox answered on 2026-11-02 with carrier Test Carrier, line type mobile and registered: true for WhatsApp, with billed: false because it's a test value.
Keep unknown apart from false: unknown 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?
- German mobiles are
+49plus 10 or 11 digits, starting15,16or17;015numbers always have 11. Store the E.164 form, without the(0). - Don't validate with a fixed-length regex: mobile lengths depend on the block, and landline area codes have two to five digits.
- Mobile ranges are
015,0160,0162,0163and017;0164,0168and0169are paging. The block names the holder in the Federal Network Agency list, not the current network: porting has run since 1 November 2002 and is possible at any time. - Use the Federal Network Agency's drama numbers in examples and tests, never real numbers.
- Marketing SMS and calls to consumers need prior express consent under § 7 UWG; document call consent for five years (§ 7a), and confirm SMS consent on the number itself.
Network, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.
Sources
- Nummernplan Rufnummern für Mobile Dienste (consolidated version in force from 21 May 2020; Verfügung 11/2011 as amended) — Federal Network Agency (Germany), 2020
- Mobile Dienste (0)15, (0)16, (0)17: allocated number blocks (list and CSV download) — Federal Network Agency (Germany), 2026
- Ortsnetzrufnummern (local network numbers) — Federal Network Agency (Germany), 2026
- Länge von Ortsnetzrufnummern (Stelligkeit) — Federal Network Agency (Germany), 2026
- Rufnummern für Medienproduktionen ("Drama Numbers") — Federal Network Agency (Germany), 2026
- Telekommunikationsgesetz (TKG 2021), § 59 Anbieterwechsel und Rufnummernmitnahme — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
- Telekommunikationsgesetz (TKG 2021), § 120 Rufnummernübermittlung — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
- Telekommunikationsgesetz (TKG 2021), § 172 Daten für Auskunftsersuchen der Sicherheitsbehörden — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
- Aktueller Hinweis: Anstieg von Anrufen ohne angezeigte Rufnummer (2022) — Federal Network Agency (Germany), 2022
- Gesetz gegen den unlauteren Wettbewerb (UWG), § 7 Unzumutbare Belästigungen — Bundesministerium der Justiz / gesetze-im-internet.de, 2024
- Gesetz gegen den unlauteren Wettbewerb (UWG), § 7a Einwilligung in Telefonwerbung — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
- Auslegungshinweise zur Dokumentation von Einwilligungen in Telefonwerbung (press release, 7 July 2022) — Federal Network Agency (Germany), 2022
- Bußgelder: unerlaubte Telefonwerbung (list of fines) — Federal Network Agency (Germany), 2026
- Bundesgerichtshof, judgment of 10 February 2011, I ZR 164/09 "Double-opt-in-Verfahren" — WIPO Lex (World Intellectual Property Organization), 2011
- Directive 2002/58/EC on privacy and electronic communications (ePrivacy Directive) — EUR-Lex, Publications Office of the European Union, 2002
- Regulation (EU) 2016/679 (General Data Protection Regulation) — EUR-Lex, Publications Office of the European Union, 2016
- 10 Jahre Rufnummern-Mitnahme (press release, 1 November 2012) — teltarif.de Onlineverlag, 2012
- 1&1 Mobilfunknetz erreicht 25 Prozent der deutschen Haushalte (press release, 17 December 2025) — 1&1 AG, 2025
- Green light: Telefónica Deutschland receives final clearance for E-Plus acquisition (29 August 2014) — Telefónica Deutschland, 2014
- libphonenumber PhoneNumberMetadata.xml (region DE) and carrier prefix data (49.txt) — libphonenumber project (Apache License 2.0), 2026
Frequently asked questions
How many digits is a German mobile number?
Ten or eleven digits after the country code +49, so eleven or twelve when written nationally with the leading 0. Numbers starting 015 always have eleven digits after +49, for example +49 15XX XXXXXXX. Numbers starting 0160, 0162, 0163 and 017 can have ten or eleven; the operator that holds the block decides.
What is the Germany country code for WhatsApp and international calls?
+49. Drop the leading 0 of the national number: 0171 XXXXXXX becomes +49 171 XXXXXXX. Don't keep the 0 in brackets when you store it. Germans often write +49 (0)171 …, which is fine for reading, but the E.164 form +49171XXXXXXX is the one to save and send to any platform or API.
Which network does 015, 016 or 017 belong to?
The block shows the range holder in the Federal Network Agency's list, not the current network. Blocks such as 0151, 0160, 0170, 0171 and 0175 are held by Telekom; 0152, 0162 and 0172 to 0174 by Vodafone; 0157, 0159, 0163 and 0176 to 0179 by Telefónica (O2, including the former E-Plus blocks); and 01555x and 01556x by 1&1. Numbers have been portable since 1 November 2002, so look up the current network per number.
Why does a regex fail on German phone numbers?
Because German numbers don't have one fixed length. Mobile numbers have ten or eleven digits after +49 depending on the block, area codes have two to five digits, and landline numbers vary because older numbers are shorter and extensions can be added. A pattern such as ^+491\d{10}$ rejects valid ten-digit 0171 numbers. Use a numbering-plan library such as libphonenumber instead.
Can a German mobile number keep its digits after changing operator?
Yes. Mobile number portability started on 1 November 2002. Under § 59 of the Telecommunications Act (TKG), a mobile customer can ask to port at any time, without ending the old contract early, and the switch may interrupt service for at most one working day. The end user may not be charged directly for porting.
Are there fictional German phone numbers for films, tests and examples?
Yes. The Federal Network Agency keeps 'drama numbers' that will never be assigned: 1,000 numbers each in Berlin (030 23125 000–999), Frankfurt (069 90009 000–999), Hamburg (040 66969 000–999), Cologne (0221 4710 000–999) and Munich (089 99998 000–999), plus mobile numbers such as 0171 39200 00–99 and 0176 040690 00–99.
Do I need consent to send marketing SMS or make sales calls in Germany?
Yes. Under § 7 UWG, advertising by SMS, email or automated call needs the recipient's prior express consent, with a narrow exception for existing customers and similar products. Marketing calls to consumers also need prior express consent, and § 7a UWG requires the caller to document that consent and keep the record for five years.
Can I check whether German customers are on WhatsApp?
Yes, for numbers you hold with a lawful basis under the GDPR, such as your own customers or sign-ups. A MobileValidate check answers registered, not registered or unknown with a checked_at date; unknown answers are not billed. It never returns a name or profile, and requests that look like scans of number ranges are refused.
Related services and guides
More from the blog
All articlesGuides
Phone numbers by country: formats, portability, channels and rules
How phone numbers differ by country: formats and E.164, numbering changes, portability, line types, messaging channels, and a dated tracker of calling and texting rules.
11 min read
Developers
E.164 phone number format: a practical guide for developers
How to normalize phone numbers to E.164 in JavaScript and Python, the pitfalls that break deduplication, and how the MobileValidate API normalizes input.
8 min read
Developers
E.164 regex: why a pattern is not enough to validate phone numbers
The common E.164 regex accepts impossible numbers. Real counterexamples, the shortest valid international numbers, and what to use a regex for instead.
7 min read

