Guides

Germany phone numbers: format, mobile prefixes, validation and messaging rules

German phone number format: +49, variable-length numbers, 015/016/017 mobile prefixes, tested validation code, porting since 2002 and UWG consent rules.

By Published 18 min read

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):

  • 015 numbers always have 11 digits after the 0 (after +49): 15, a block code and the subscriber number.
  • 0160, 0162, 0163 and 017 numbers have 10 or 11 digits. The operator holding the block decides which length it gives out, so 0171 XXXXXXX (10 digits) and 0171 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).

ItemValue
Country calling code+49
International call prefix (dialling out)00
Trunk prefix (dialling at home)0
Mobile: digits after +4910, 11
Fixed line: digits after +495–15
Toll-free: digits after +4910–15
Premium rate: digits after +4910, 11
Shared cost: digits after +497–14
Personal number: digits after +4911
Pager: digits after +494–14
Universal access (UAN): digits after +498–14
Voicemail access: digits after +4912, 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.

A card of four digit rows of different lengths beside a +49 pill, a crossed-out regex pill and a ticked E.164 pill, four network towers linked by porting arrows, and a document with a shield.A card of four digit rows of different lengths beside a +49 pill, a crossed-out regex pill and a ticked E.164 pill, four network towers linked by porting arrows, and a document with a shield.
German numbers have no single length: validate by numbering plan, not regex, and check the network per number.

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 prefixInternationalShare of the block that is mobile (10, 11-digit numbers)3-digit sub-blocks that aren't fully mobile
015+49 1580.2%not mobile: 0154; partly mobile: 0153 (2.0%)
016+49 1630.0%not mobile: 0161, 0164–0169
017+49 17100%—

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 prefixInternationalHolder in the Federal Network Agency listNetwork brand at allocation
0151, 0160, 0170, 0171, 0175+49 151, +49 160, +49 170, +49 171, +49 175Telekom DeutschlandT-Mobile (D1)
0152, 0162, 0172, 0173, 0174+49 152, +49 162, +49 172 to +49 174Vodafone (01521 is held by Lycamobile)Vodafone (D2)
0157, 0163, 0177, 0178+49 157, +49 163, +49 177, +49 178Telefónica GermanyE-Plus
0159, 0176, 0179+49 159, +49 176, +49 179Telefónica GermanyO2
01555X, 01556X+49 1555, +49 15561&1 Mobilfunk1&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):

Python
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):

JavaScript
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):

Text
'0152 28817386'          -> +4915228817386
'+49 (0)171 3920012'     -> +491713920012
'0049 176 04069012'      -> +4917604069012
'+49 30 23125012'        -> None
'0152 2881738'           -> None
'0153 12345678'          -> None

The +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:

#CaseInput (masked)Shape regex ^(?:\+49|0049|0)?1\d{9,10}$libphonenumber (DE)
1National, with trunk prefix015XX XXXXXXXpassesvalid, MOBILE
2International, with spaces+49 15XX XXXXXXXpassesvalid, MOBILE
3International dialling prefix 000049 15XX XXXXXXXpassesvalid, MOBILE
4E.164+4915XXXXXXXXXpassesvalid, MOBILE
5Dashes and brackets(015XX) XXXXXXXpassesvalid, MOBILE
6One digit short015XXXXXXXXpassesinvalid
7One digit too many015XXXXXXXXXXfailsinvalid
8Mobile shape, unused block 010010XXXXXXXXXpassesinvalid
9Fixed line030 XXXXXXXXfailsvalid, FIXED_LINE
10Toll-free range0800 XXXXXXXXXXXXfailsvalid, 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):

TypeRange
Berlin landline030 23125 000 to 999
Frankfurt am Main landline069 90009 000 to 999
Hamburg landline040 66969 000 to 999
Cologne landline0221 4710 000 to 999
Munich landline089 99998 000 to 999
Mobile, 100 numbers0171 39200 00 to 99, 0176 040690 00 to 99
Mobile, single numbers0152 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:

ItemValue
Mobile number portabilityYes
Mobile porting since2002-11-01
Maximum porting time1 working day (max service interruption)
Governing rule§ 59 TKG (2021); EECC Art. 106
Published porting volumenone published
Sourcegesetze-im-internet.de, eur-lex.europa.eu
Checked2026-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.

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.

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:

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 whose numbers are written nationally (0171 XXXXXXX, +49 (0)152 … also works) with default_country=DE:

Bulk WhatsApp and carrier 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,carrier -F default_country=DE

Send 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 numbers7
Original-carrier prefix data5
Alternate formatting4
Geocoding (area names)3
All38

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:

CheckAccepts Germany 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 Germany 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. 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().

Carrier and WhatsApp check in the sandbox
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 +49 plus 10 or 11 digits, starting 15, 16 or 17; 015 numbers 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, 0163 and 017; 0164, 0168 and 0169 are 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

  1. 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
  2. Mobile Dienste (0)15, (0)16, (0)17: allocated number blocks (list and CSV download) — Federal Network Agency (Germany), 2026
  3. Ortsnetzrufnummern (local network numbers) — Federal Network Agency (Germany), 2026
  4. Länge von Ortsnetzrufnummern (Stelligkeit) — Federal Network Agency (Germany), 2026
  5. Rufnummern für Medienproduktionen ("Drama Numbers") — Federal Network Agency (Germany), 2026
  6. Telekommunikationsgesetz (TKG 2021), § 59 Anbieterwechsel und Rufnummernmitnahme — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
  7. Telekommunikationsgesetz (TKG 2021), § 120 Rufnummernübermittlung — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
  8. Telekommunikationsgesetz (TKG 2021), § 172 Daten für Auskunftsersuchen der Sicherheitsbehörden — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
  9. Aktueller Hinweis: Anstieg von Anrufen ohne angezeigte Rufnummer (2022) — Federal Network Agency (Germany), 2022
  10. Gesetz gegen den unlauteren Wettbewerb (UWG), § 7 Unzumutbare Belästigungen — Bundesministerium der Justiz / gesetze-im-internet.de, 2024
  11. Gesetz gegen den unlauteren Wettbewerb (UWG), § 7a Einwilligung in Telefonwerbung — Bundesministerium der Justiz / gesetze-im-internet.de, 2021
  12. Auslegungshinweise zur Dokumentation von Einwilligungen in Telefonwerbung (press release, 7 July 2022) — Federal Network Agency (Germany), 2022
  13. Bußgelder: unerlaubte Telefonwerbung (list of fines) — Federal Network Agency (Germany), 2026
  14. Bundesgerichtshof, judgment of 10 February 2011, I ZR 164/09 "Double-opt-in-Verfahren" — WIPO Lex (World Intellectual Property Organization), 2011
  15. Directive 2002/58/EC on privacy and electronic communications (ePrivacy Directive) — EUR-Lex, Publications Office of the European Union, 2002
  16. Regulation (EU) 2016/679 (General Data Protection Regulation) — EUR-Lex, Publications Office of the European Union, 2016
  17. 10 Jahre Rufnummern-Mitnahme (press release, 1 November 2012) — teltarif.de Onlineverlag, 2012
  18. 1&1 Mobilfunknetz erreicht 25 Prozent der deutschen Haushalte (press release, 17 December 2025) — 1&1 AG, 2025
  19. Green light: Telefónica Deutschland receives final clearance for E-Plus acquisition (29 August 2014) — Telefónica Deutschland, 2014
  20. 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.

All articles

Know before you send.

Get a free test key in a minute. Live access is approved automatically, usually within 10–15 minutes.