National numbering rules vary by country. Carrier data quality varies by country. Compliance rules vary by country. A single-vendor global coverage claim is technically true for format and frequently wrong for the other two layers.
Digits only, 15 maximum, made up of a 1 to 3 digit country code plus a subscriber number of up to 12. Standardizing on E.164 inside your CRM is non-negotiable for international workflows.
Most markets drop the leading 0 in E.164. Spain, Poland, Denmark and Singapore never had one. Italian landlines keep theirs, so a global strip-the-zero rule invalidates every Italian landline in the list.
Syntactic validation via libphonenumber costs nothing and removes 8 to 15 percent of an aged list. Paid carrier lookups run $0.008 to $0.015 per query, so running the free check first is what keeps a 50,000 record pass affordable.
APAC, LATAM, and Africa data is good but variable. Run a per-region accuracy test before committing. Global coverage hides large quality differences between regions.
Most validation APIs return validation only. Experian EDQ and IPQS surface some consent and DNC signals. Most others do not. Budget separately for compliance in regulated markets.
Route by region before validating, then let line type pick the channel. Mobile routes to SMS and call, landline to call-only, unknown or non-compliant numbers drop out before a rep wastes a dial.
Vendors advertise 200+ countries of coverage. Accuracy inside that footprint swings from roughly 99 percent in North America to the low 80s in secondary APAC and African markets, and E.164 allows a maximum of 15 digits with a different trunk prefix rule in almost every market.
International phone number validation is the practice of validating, normalizing, and routing phone numbers across multiple countries inside a single workflow. For B2B sales teams that sell globally, it is the difference between an outbound motion that works in three regions and one that quietly breaks in the fourth because the validation provider has weak data on Indonesian mobile carriers, or because Australian consent rules require something the dialer never enforced.
This guide breaks down what international validation actually means, where the major vendor data is strongest and weakest by region, the consent and DNC rules that turn "technically valid" into "actually contactable," and how to build a stack that handles regional differences without breaking your campaign cadence. If phone is the call step inside a wider motion, this all feeds directly into B2B appointment setting, where a number that does not ring is a meeting that never gets booked. For the parent context, start with the phone number validation guide.
What is international phone number validation?
International phone number validation is the process of checking phone numbers from multiple countries against the numbering rules, carrier data, and (in some markets) consent and do-not-call registries specific to each country. It does the same job as domestic validation. It confirms format, country, carrier, line type, and status. The difference is that it accounts for the fact that those checks behave differently in every market.
A US mobile number and a Vietnamese mobile number are two different problems wearing the same shape. They follow different numbering plans, the carriers are different, the consent expectations are different, and the data sources behind each vendor's validation differ in coverage and freshness from country to country.
The starting point for any international validation pipeline is E.164. The international standard requires a leading plus sign, a country code, and up to 15 total digits, with no spaces or formatting. +14155550123 is E.164. (415) 555-0123 is not. Every modern validation API expects E.164 as input or normalizes inputs internally. Standardizing on E.164 inside your CRM is non-negotiable for international workflows.
Why international phone number validation is harder than domestic
Three things change once your outbound crosses borders.
1. The numbering rules vary by country. A valid mobile number in the UK starts with 07 and has 11 digits domestic, 13 with the country code. In Vietnam, mobile numbers are 9 or 10 digits depending on which prefix renumbering wave they came from. Validation libraries handle this automatically when you provide the country, but inputs without a country hint sometimes parse incorrectly.
2. The carrier data quality varies by country. Vendors source carrier and line type data from telecom industry feeds that update at different cadences in different markets. North America and Western Europe usually have fresh, accurate data. India, China, Brazil, and parts of APAC have data that is good but lags reality by weeks or months. Some smaller markets have data that is frankly bad.
3. Compliance rules vary by country. The US has the National DNC Registry, mostly applicable to B2C. The EU has GDPR plus per-country DNC lists. Canada has the CRTC's DNC. Australia has the Do Not Call Register. India has DLT registration requirements. Brazil has Não Me Perturbe. Each rule stands on its own, so a number that reads as "valid" everywhere can still be legally risky to contact in specific markets.
A vendor claiming worldwide coverage is usually accurate about format validation, roughly accurate about carrier data in its strong markets, and silent about compliance everywhere.
What is the E.164 format, and why store every number in it?
E.164 is the ITU numbering plan that every validation API and every dialer agrees on. It allows digits only, up to a maximum of fifteen, structured as a country code of one to three digits followed by the national subscriber number. The leading plus sign is a presentation convention from the companion E.123 recommendation rather than part of the number itself, which is why some APIs accept +14155550123 and 14155550123 as the same input.
| E.164 rule | Value | What breaks when you ignore it |
|---|---|---|
| Maximum total digits | 15, excluding the plus sign | Longer strings are rejected at the API boundary, often silently as "invalid" |
| Country code length | 1 to 3 digits | Naive substring parsing splits +1 and +971 the same way and mislabels the country |
| Subscriber number | Up to 12 digits | Padding or truncating to a fixed width corrupts variable-length markets like Germany |
| Allowed characters | Digits, plus an optional leading + | Spaces, dashes, parentheses and 00 prefixes cause parse failures, not soft warnings |
| Trunk prefix | Not part of E.164 in most countries | Keeping a leading 0 where it should be dropped produces a number that fails validation |
Storing numbers in E.164 inside the CRM removes an entire class of bug. A number captured as (415) 555-0123 in one form, 0415 555 0123 in another, and +1 415-555-0123 in a third is three records to a deduplication routine and one record to a human. Normalizing on write makes deduplication, validation, dialer handoff, and consent suppression all key off the same string.
International phone number formats by country
The single most common cause of a "valid number" failing validation is the trunk prefix. Most countries expect the leading 0 to be dropped when the number is written in E.164. A handful never had one. Italy is the exception that catches teams out, and it is worth knowing before it corrupts a list.
| Country | Country code | Trunk prefix handling | National digits | E.164 example |
|---|---|---|---|---|
| United States / Canada | +1 | None (domestic 1 is long distance) | 10 |
+14155550123
|
| United Kingdom | +44 | Drop the leading 0 | 10 |
+447912345678
|
| Germany | +49 | Drop the leading 0 | 6 to 11 (variable) |
+4930123456
|
| France | +33 | Drop the leading 0 | 9 |
+33612345678
|
| Italy (landline) | +39 | Keep the leading 0 | 9 to 11 |
+390612345678
|
| Italy (mobile) | +39 | None, mobiles have no leading 0 | 10 |
+393471234567
|
| Spain | +34 | None, no trunk prefix | 9 |
+34612345678
|
| Netherlands | +31 | Drop the leading 0 | 9 |
+31612345678
|
| Belgium | +32 | Drop the leading 0 | 8 to 9 |
+32470123456
|
| Switzerland | +41 | Drop the leading 0 | 9 |
+41791234567
|
| Sweden | +46 | Drop the leading 0 | 7 to 9 (variable) |
+46701234567
|
| Poland | +48 | None, no trunk prefix | 9 |
+48512345678
|
| Denmark | +45 | None, no trunk prefix | 8 |
+4520123456
|
| Ireland | +353 | Drop the leading 0 | 7 to 9 |
+353851234567
|
| India | +91 | Drop the leading 0 | 10 |
+919812345678
|
| Australia | +61 | Drop the leading 0 | 9 |
+61412345678
|
| New Zealand | +64 | Drop the leading 0 | 8 to 9 |
+64211234567
|
| Japan | +81 | Drop the leading 0 | 9 to 10 |
+819012345678
|
| Singapore | +65 | None, no trunk prefix | 8 |
+6591234567
|
| Vietnam | +84 | Drop the leading 0 | 9 |
+84912345678
|
| Indonesia | +62 | Drop the leading 0 | 9 to 11 (variable) |
+62812345678
|
| Philippines | +63 | Drop the leading 0 | 10 |
+639171234567
|
| Brazil | +55 | Drop the carrier selection code | 10 to 11 |
+5511912345678
|
| Mexico | +52 | None since 2019, 01/044/045 abolished | 10 |
+525512345678
|
| United Arab Emirates | +971 | Drop the leading 0 | 9 |
+971501234567
|
| South Africa | +27 | Drop the leading 0 | 9 |
+27821234567
|
The Italian exception. Since a 1998 renumbering, the leading 0 on an Italian landline is part of the number rather than a trunk prefix, so it stays in place when calling from abroad. A Rome landline is +390612345678, not +39612345678. Italian mobiles work the other way and never carry a leading 0, so +393471234567 is correct. Several published format guides state that Italy drops the zero like France and the UK, which is wrong and will invalidate every Italian landline in a list. Treat any hand-rolled "strip the leading zero" rule as a bug waiting for an Italian record.
Use this table to sanity-check a pipeline rather than to build one. The authoritative source is Google's libphonenumber, which encodes the numbering plan for every market and is updated as plans change.
How do you normalize a raw number to E.164?
Four steps, in this order. Skipping step one is what makes the rest unreliable.
-
Attach a country hint. A bare string like
06 1234 5678is a valid Rome landline, a valid Dutch mobile, and a valid Japanese number, depending on the region you parse it against. Carry the country from the form field, the enrichment source, or the account's market tag. Parsing without a hint is where silent corruption starts. - Parse and normalize. Hand the raw string plus the region to libphonenumber. It applies that market's trunk prefix rule, including the Italian exception, so you never write the rule yourself.
-
Validate the syntax.
is_valid_numberchecks digit count against the assigned ranges in that numbering plan. This is free, instant, and catches typos and dead ranges before you spend money on a lookup. - Pay for the carrier lookup only on what survives. Syntactic validity says the number could exist. A carrier lookup says whether it is assigned, which carrier holds it, and what line type it is. Running the paid lookup after the free filter is what keeps the cost sane at volume.
The reference implementation for steps one to three, using the Python port of libphonenumber:
import phonenumbers
from phonenumbers import PhoneNumberFormat, PhoneNumberType
RAW = [
("(415) 555-0123", "US"),
("020 8366 1177", "GB"),
("06 1234 5678", "IT"), # Rome landline, keeps its 0
("0412 345 678", "AU"),
]
TYPES = {
PhoneNumberType.MOBILE: "mobile",
PhoneNumberType.FIXED_LINE: "landline",
PhoneNumberType.FIXED_LINE_OR_MOBILE: "fixed_or_mobile",
PhoneNumberType.VOIP: "voip",
}
for raw, region in RAW:
num = phonenumbers.parse(raw, region)
if not phonenumbers.is_valid_number(num):
print(f"{raw!r:18} -> INVALID for {region}")
continue
e164 = phonenumbers.format_number(num, PhoneNumberFormat.E164)
kind = TYPES.get(phonenumbers.number_type(num), "other")
print(f"{raw!r:18} -> {e164:16} {kind}")
# (415) 555-0123 -> +14155550123 fixed_or_mobile
# 020 8366 1177 -> +442083661177 landline
# 06 1234 5678 -> +390612345678 landline
# 0412 345 678 -> +61412345678 mobile
Once numbers are clean and typed, the next decision is which vendor to trust for the paid layer in each region. If you are cleaning an existing database rather than a live intake, our guide to bulk phone number validation covers the batch pattern.
How vendor accuracy varies by region
The pattern below is based on common industry knowledge and the published documentation of the major validation APIs. Always test on your own markets before committing.
| Region | Vendor data quality | Key compliance rules | Watch-out |
|---|---|---|---|
| North America (US + Canada) | High across all major vendors | US DNC Registry (B2C); CRTC DNC (Canada) | VoIP line type detection is the noisiest layer |
| EU + UK | High in DE, FR, UK, NL; thinner in Baltics and Bulgaria | GDPR, ePrivacy, UK CTPS, Bloctel (FR), UWG (DE) | B2B cold calling without prior consent is restricted in many member states |
| Australia + New Zealand | Good; well-regulated telecom markets | AU Do Not Call Register, NZ Telecommunications (Marketing) Code | B2B is generally exempt but ACMA enforces strictly |
| India | Good carrier data across major vendors | TRAI DLT registration for SMS senders | Compliance is a separate layer most APIs do not cover |
| APAC (Singapore, Indonesia, Vietnam, Philippines, Thailand) | Strong in Singapore; noisier in ID, VN, TH, PH | Singapore PDPA strict; others more permissive | Expect higher unknown bucket on bulk validation |
| Latin America | Good in BR, MX; noisier elsewhere | BR Não Me Perturbe, MX REPEP | PT vs ES localization matters as much as validation |
| Africa + Middle East | Variable; SA strong, others uneven | UAE TDRA, Saudi Arabia CITC | Higher unknown rates on bulk passes |
North America (US and Canada). Highest data quality across vendors. Twilio Lookup, IPQualityScore, Veriphone, Numverify, ClearoutPhone, and Experian EDQ all return reliable carrier and line type data here. The US DNC Registry applies to consumer numbers. B2B is broadly exempt but state-level rules (California, Florida) add nuance. For US phone validation use cases, most vendors hit 97 to 99 percent accuracy on line type. Mobile versus landline detection is reliable. VoIP detection is the noisiest layer because Google Voice, Microsoft Teams, and similar services blur the line.
European Union and UK. Strong vendor coverage. GDPR is the dominant compliance concern, plus per-country DNC. Germany, France, the UK, and the Netherlands have the strongest data. Smaller EU markets (Bulgaria, Romania, the Baltics) have thinner carrier data depending on the vendor. GDPR plus the ePrivacy directive means B2B cold calling without prior consent is restricted in many member states. The UK CTPS (Corporate Telephone Preference Service) covers business numbers and is legally enforceable. France's Bloctel and Germany's UWG add specific obligations.
Australia and New Zealand. Vendor data is good and the DNC Registers are enforced. Australia's Do Not Call Register applies to private numbers but exempts genuine B2B. ACMA enforces this strictly. New Zealand has the Telecommunications (Marketing) Code and the Unsolicited Electronic Messages Act. Both markets show real search demand for region-specific validation, which suggests an underserved content opportunity if you sell there.
India. The largest single market by mobile subscribers, and one of the most complex for compliance. The DLT (Distributed Ledger Technology) registration system, run by TRAI, requires SMS senders to be registered and content templates to be pre-approved. Phone validation in India returns accurate carrier data through most major vendors, but compliance is a separate layer most APIs do not cover.
APAC (Singapore, Indonesia, Vietnam, Philippines, Thailand). Carrier data quality varies widely by country and by vendor. Singapore has the strongest carrier database, a small country with a well-regulated telecom market. Indonesia, Vietnam, and Thailand have noisier data, so expect a higher unknown bucket on bulk validation. The Philippines is improving as the BPO industry pushes for better data. Consent rules vary too. Singapore's PDPA is strict, while some neighbors are more permissive in practice. This is Reachly's home region, and we have run campaigns into APAC markets where less cold email lands in the inbox, which makes a validated phone number worth more, not less.
Latin America (Brazil, Mexico, Argentina, Colombia). Brazil has Não Me Perturbe, the consumer DNC, and Mexico has REPEP. Carrier data for Brazil and Mexico is good across vendors. Smaller markets are noisier. Portuguese versus Spanish localization in your dialer scripts matters as much as validation accuracy for actual outbound performance.
Africa and Middle East. The most variable region for vendor data. South Africa has good coverage. Egypt, Nigeria, Kenya, and the UAE have decent vendor data but expect higher unknown rates on bulk passes. Some markets have specific regulatory environments (UAE's TDRA, Saudi Arabia's CITC) that affect both validation and contactability.
How to choose a vendor for international phone number validation
Every vendor's marketing page claims the best global coverage, so that claim carries no information. The question that decides your stack is narrower: which vendor has the best data in the specific markets you sell into.
Run a per-region accuracy test. For each region you sell into, build a 100 to 200 record test set. Use numbers you know the dial outcomes for. Run them through two vendors. Score format and country detection accuracy, line type accuracy (mobile versus landline versus VoIP), carrier name accuracy, and status detection (active versus disconnected) where measurable. A vendor at 99 percent accuracy in the US and 82 percent in Indonesia is an Indonesian data problem for you if half your pipeline is Indonesian. Make the decision per region. For a detailed look at the major providers, see our phone validation API comparison.
Ask about data freshness, by region. Vendors update carrier and line type data on different cadences. Some refresh weekly, some monthly, some quarterly. Ask specifically. In markets with high carrier porting activity (much of LATAM, parts of APAC), monthly data is significantly fresher than quarterly.
Treat compliance signals as a separate buying criterion. Most validation APIs return validation only. Compliance is a separate product, often from a different vendor. For markets where compliance matters (EU, UK, India, Australia, parts of LATAM), budget separately for a DNC or consent layer. Experian EDQ and a few enterprise specialists handle this. Most validation-first APIs do not.
What does international phone number validation cost?
Per-lookup pricing is the number that decides your architecture, because it is what makes the free syntactic filter in step three worth building. Published list prices, checked August 2026:
| Vendor / layer | Published price | Coverage claim | Notes |
|---|---|---|---|
| libphonenumber (syntactic) | Free, open source | Every numbering plan | Format, region and line-type hint only. No carrier or status data. |
| Twilio Lookup, formatting and validation | Free | Global | Syntactic layer, same job as libphonenumber, as a hosted call. |
| Twilio Lookup, line type intelligence | $0.008 per request | Global | Carrier and line type. The workhorse paid layer for most stacks. |
| Twilio Lookup, line status | $0.007 down to $0.00385 per query | Global | Tiered by volume. Answers whether the line is currently active. |
| Trestle Global Phone Validation | $0.015 per query, pay as you go | 200+ countries, 18,000+ carriers | Self-serve capped at 10 QPS. Returns a 0 to 100 activity score and 7 line types. |
| Trestle enterprise | Custom, from 10K queries a month | Same | Volume discounts and higher QPS. |
| DNC and consent layer | Quote only | Per market | A separate product from a separate vendor in almost every case. |
The arithmetic matters at volume. A 50,000 record international list run straight through a paid carrier lookup at $0.008 costs $400. Filtering syntactically first typically removes 8 to 15 percent of a scraped or aged list before it reaches the paid layer, which is $32 to $60 saved on a single pass, and considerably more on a list refreshed monthly. Several vendors publish no price at all. ZoomInfo-tier and DNC-layer providers are quote only, so budget them separately rather than assuming they fold into the per-lookup cost. For a provider-by-provider breakdown, see our phone validation API comparison.
How to structure an international validation workflow
The pipeline pattern that works in most international B2B stacks:
- Capture the number with a country hint where possible (form field, enrichment source metadata, market segment tag).
-
Normalize to E.164 with
libphonenumber-js, using the country hint to disambiguate. - Route by region before validation. Send EU records to your EU validation pipeline, APAC records to your APAC pipeline, and so on.
- Validate against the region-specific vendor (or vendor configuration) chosen during your accuracy test.
- Apply region-specific compliance filters (DNC suppression, consent checks) where required.
- Bucket and route into the right outbound sequence, and the right rep language or script if you run multilingual outbound.
If you only sell into one or two markets, this is overkill. If you sell into five or more, building the workflow this way avoids the failure mode where a US-trained validation logic quietly breaks when applied to Vietnamese or Italian records. For region-specific bulk cleanups, see our guide to bulk phone number validation.
Six mistakes that break international phone validation
1. Stripping the leading zero everywhere. The rule holds in the UK, France, Germany, Australia and most of APAC, and it destroys Italian landlines. Delegate the rule to libphonenumber rather than writing it once and applying it globally.
2. Using 00 instead of +. The 00 prefix is one country's international access code, not part of the number. It is 011 from North America and 0011 from Australia. E.164 carries neither, and a stored 00 breaks WhatsApp links, dialer handoff and most API calls.
3. Parsing without a country hint. A nine-digit string with no region attached is a guess. Most libraries will make one, and the guess is wrong often enough to matter on a list of any size.
4. Treating VoIP as invalid. Google Voice, Microsoft Teams and Zoom Phone numbers are working business lines for a large share of software buyers. Discarding every VoIP result deletes real prospects. Route them to a different branch of the sequence instead, and expect VoIP detection to be the noisiest field a vendor returns.
5. Validating once and treating it as permanent. Numbers get ported, reassigned and disconnected. Line status decays fastest in markets with heavy carrier porting, which is much of LATAM and parts of APAC. A validation from 18 months ago is an assumption, not a fact.
6. Reading one global accuracy figure as uniform. A vendor quoting 97 percent accuracy is quoting a blended average weighted toward its strong markets. The figure for your fourth-largest market is the one that decides whether the campaign works there, and it is never the number on the marketing page. Test per region, as covered above.
Where a validated international number fits in the sequence
A booked meeting is the goal, and a clean international number only earns its cost if it slots into a sequence that uses the phone at the right moment. In Reachly campaigns the call lands third, after email and LinkedIn have already put the name in front of the prospect, which is the signal-based outbound pattern applied across borders.
| Day | Channel | Action | Why |
|---|---|---|---|
| Day 1 | LinkedIn + Email | Profile visit, empty connection request, Email #1 with a signal opener | Warms recognition before any call. Email validated for deliverability, number queued for later |
| Day 3 | Email #2, new angle, 70 to 80 words | Second touch on a different hook. Still no phone, so no wasted dial on a cold name | |
| Day 5 | Short lowercase question-based message after the connection is accepted | Third recognition touch. Confirms the contact is active before the number is dialed | |
| Day 8 | Phone | Call the validated number. Mobile routes to a direct dial, landline routes to a switchboard script | The number rings because it was validated and routed by line type. The name is already familiar |
| Day 12 | Phone + Email | Final call attempt plus a one-sentence breakup email | Last touch. Region-specific compliance filter has already removed any number that should not be called |
How Reachly coordinates this at the campaign level: one ops lead owns validation and infrastructure, one strategist owns audience and angle per region, and line type decides the branch. Mobile numbers route to SMS-and-call sequences, landlines route to call-only, and unknown or non-compliant numbers drop out before a rep ever wastes a dial.
The validation decision that matters most here is line type. It is what tells the sequence whether a contact can take an SMS, whether the call hits a personal mobile or a front desk, and whether the dial is worth a rep's time at all. The contacts that deserve the deepest validation spend are the ones already worth a real outreach effort, which is the same logic behind how to qualify leads in sales without the BS.
This is also the link between validation and the wider motion. Phone is one channel of three, and it only works when the data feeding it is clean. For the full picture of how the three channels work together, see a modern outbound sales strategy that books meetings.
Outbound that books the meeting in every market. Across 400+ campaigns.
Reachly runs done-for-you cold email, LinkedIn, and cold calling for B2B teams across APAC, USA, Canada, UK, and ANZ. Triple-certified across Clay, Smartlead, and HeyReach. We validate the data, route by region, build the sequence, run the calls, and book the meetings. 2,500+ meetings booked. Primal hit 4.57x ROI in 6 months. The Great Room closed a $250K contract.
See how Reachly works
FAQ
International phone number validation is the process of checking phone numbers from multiple countries against country-specific numbering rules, carrier data, and (in regulated markets) compliance signals. It is the same core job as domestic validation but accounts for the fact that data quality, numbering plans, and contact rules vary by country.
There is no single answer. Twilio Lookup and IPQualityScore have broad global coverage but vary by region. Experian EDQ is strongest in regulated markets with built-in compliance signals. ClearoutPhone is strong in APAC. Veriphone and Numverify cover most markets with thinner data outside North America and Western Europe. Run a per-region accuracy test before committing.
Normalize the number to E.164 format (plus, country code, up to 15 digits) using libphonenumber-js with the country code as a hint. Then call a validation API that supports the country in question. The API returns format status, country, carrier, line type, and (depending on vendor) status and risk signals.
Mostly not. The US National DNC Registry applies to residential numbers and consumer calls. B2B calling is broadly exempt at the federal level, though some state laws (California, Florida) add nuance. International equivalents have different B2B treatment: UK CTPS covers business numbers; Australia's DNC Register exempts genuine B2B; EU member states vary.
Australian mobile numbers start with 04 (domestic) or +614 (international E.164). Landlines have area codes 02 (NSW and ACT), 03 (VIC and TAS), 07 (QLD), 08 (WA, SA, NT). All major validation APIs handle Australian numbers well. Compliance check: confirm the number is not on the Do Not Call Register if it appears to be a personal number. B2B is generally exempt but enforcement is real.
New Zealand uses country code +64. Mobile numbers start with 021, 022, 027, 028, or 029 (domestic). Major validation APIs cover NZ well. Watch the Telecommunications (Marketing) Code and the Unsolicited Electronic Messages Act for compliance on outbound campaigns.
GDPR does not regulate phone number validation itself, but it constrains what you can do with validated numbers in the EU. Cold calling B2B contacts without prior basis can violate GDPR's lawful processing requirements. Most B2B teams operate under "legitimate interest" with documented justification and easy opt-out paths.
In theory, most vendors offer global coverage via a single API. In practice, accuracy varies materially by region. Most international B2B teams either accept that a single vendor will be 95 percent accurate in primary markets and 80 to 85 percent in secondary markets, or run a multi-vendor stack with different providers per region. The right choice depends on volume and how much each missed conversation costs you.
E.164 is the ITU international numbering plan. It permits digits only, to a maximum of fifteen, made up of a country code of one to three digits followed by a subscriber number of up to twelve digits. The leading plus sign comes from the companion E.123 recommendation and is a presentation convention rather than part of the number. +14155550123 is E.164. (415) 555-0123 is not.
No. Dropping the leading zero is correct in the UK, France, Germany, the Netherlands, Ireland, India, Australia, New Zealand, Japan and most of APAC. Several countries never had a trunk prefix at all, including Spain, Poland, Denmark and Singapore, so there is nothing to drop. Italy keeps the zero on landlines. Because the rule is per market, use a library that encodes the numbering plans rather than applying a single global rule.
Almost certainly because the leading zero was stripped. Since the 1998 Italian renumbering, the leading 0 on a landline is part of the subscriber number and has to be included when calling from abroad. A Rome landline is +390612345678. Removing the zero to give +39612345678 produces a number that fails validation. Italian mobiles are the opposite case and never carry a leading zero, so +393471234567 is correct.
Syntactic validation is free, whether through the open-source libphonenumber library or Twilio Lookup's free formatting and validation layer. Paid carrier lookups are the real cost. Twilio Lookup line type intelligence is $0.008 per request and line status is tiered from $0.007 down to $0.00385 per query by volume. Trestle's self-serve Global Phone Validation is $0.015 per query. DNC and consent layers are quote only. Prices checked August 2026.
Syntactic validation checks the number against its country's numbering plan: correct digit count, an assigned prefix range, a valid country code. It is free and instant, and it tells you the number could exist. A carrier lookup queries live telecom data to tell you whether the number is actually assigned, which carrier holds it, and what line type it is. It costs money per query. Run the free check first and pay only for what survives it.
Every 6 to 12 months for stable markets, and more often for markets with heavy carrier porting, which includes much of LATAM and parts of APAC. Numbers get ported, reassigned and disconnected continuously, so line status is the field that decays fastest. Format validity does not expire, which means a re-validation pass only needs to re-buy the carrier and status layer, not the syntactic one.
Recommended service
B2B Appointment Setting Services
Reachly qualifies every reply for fit, authority, and intent, then books the meeting straight onto your calendar.



