Philippines Phone Number Format: +63 Country Code & Validation Guide
Complete guide to Philippines phone number format with country code +63. Learn mobile and landline validation, area codes, Globe/Smart/DITO prefixes, and Mobile Number Portability (MNP) implementation.
The Philippines phone number format uses country code +63 with distinct structures for mobile (10 digits starting with 09) and landline numbers (7-8 digits with area codes). Understanding the correct Philippines phone number format is essential for developers building SMS services, authentication systems, or contact management platforms.
This guide covers Philippines mobile number format, landline validation, area codes (including Manila's 02), Mobile Number Portability (MNP) under Republic Act 11202, and operator prefixes for Globe, Smart, and DITO. Master the complete Philippines numbering plan to ensure accurate phone number processing for Filipino users.
Philippines Mobile Number Format and Structure
Mobile numbers in the Philippines follow a standardized 10-digit format: 09XX-XXX-XXXX. All mobile prefixes start with 9 (with newer allocations like DITO's 895-898 series starting with 8).
International Format: +63 9XX XXX XXXX (remove the leading "0" when adding country code +63)
Example Philippine mobile numbers:
Domestic: 0917 123 4567 (Globe)
International: +63 917 123 4567
Smart: 0919 123 4567 or +63 919 123 4567
DITO: 0895 123 4567 or +63 895 123 4567
Important: Due to Mobile Number Portability (RA 11202), prefixes no longer reliably indicate the current network operator. Always use real-time carrier lookup for accurate routing.
Understanding Mobile Number Portability (MNP)
The Philippines modernized its telecommunications infrastructure with Mobile Number Portability (MNP) through Republic Act No. 11202, signed February 8, 2019, and effective March 6, 2019. This lets you build more flexible and user-centric applications, but it also introduces complexities you must address. Here's what MNP means for your development workflows.
Core Features and Requirements
MNP empowers subscribers to perform actions that were previously impossible or highly inconvenient. These features directly impact how you design your systems to interact with Philippine phone numbers. Consider these key aspects:
Number Retention: Subscribers retain their mobile numbers when switching networks. Implement robust number validation and carrier lookup mechanisms in your applications.
Subscription Flexibility: Users can transfer between postpaid and prepaid services without changing their number. Accommodate this flexibility and don't assume a fixed subscription type based on the number.
Provider Switching (Free of Charge): Subscribers can change providers while keeping their existing number at no cost – RA 11202 mandates MNP be provided "completely free of charge" to all qualified subscribers. Source: Republic Act No. 11202, Section 3.
Guaranteed Porting Window: The porting process completes within 48 hours maximum. The donor provider has 24 hours to clear/respond, and the recipient provider must activate within 24 hours of clearance. Service interruption (cutover period) cannot exceed 4 hours. Source: RA 11202, Section 4(a).
Porting Frequency Limit: Subscribers can port their number only once every 60 days. Source: RA 11202, Section 4(b).
Implementation Timeline and Process
The MNP process involves several key stages:
MNP Timeline and Developer Actions:
Phase
Timeline
Details
Developer Considerations
Pre-porting Verification
Before request
Subscriber must be active ≥60 days, have no outstanding balances (postpaid), present valid government ID
Guide users through eligibility requirements
Donor Clearance
Hour 0–24
Donor network must respond to porting request
Implement status tracking; handle rejection scenarios
Recipient Activation
Hour 24–48
New network activates the ported number
Update carrier information upon successful activation
Service activation and testing by recipient provider
Verify connectivity and carrier data accuracy
Source: RA 11202, Section 4(a); NTC Implementing Rules and Regulations (June 11, 2019, effective July 9, 2019).
DITO Telecommunity highlights that MNP allows for both external porting (switching networks) and internal porting (switching between prepaid and postpaid within the same network). This distinction is crucial for handling user requests related to subscription changes. Design your systems to differentiate between these two types of porting.
Penalties for Non-Compliance: The NTC imposes significant fines on providers who fail to complete porting within allowed timeframes or unjustly refuse MNP:
First violation where porting is not performed within 48 hours: ₱10,000
Unjust refusal after mediation: ₱40,000
Second to fourth unjust refusal: ₱100,000 to ₱300,000
Fifth and subsequent refusals: ₱400,000 to ₱1,000,000, with potential franchise revocation
Source: RA 11202, Section 7.
Philippines Phone Number Structure and Format
Country Code +63 and Dialing Prefixes
The Philippines uses country code +63. The international access prefix is 00, and the domestic long-distance prefix is 0. Source: ITU-T E.164; Wikipedia Telephone Numbers in the Philippines.
Landline Number Format by Region
Metro Manila Area Code 02 (8-Digit Format):
Format: 02-8XXX-XXXX (8 digits)
Effective Date: October 6, 2019 – All landlines in area code 2 (Metro Manila, Rizal Province, San Pedro Laguna, and Bacoor Cavite) migrated to 8-digit format
Example: Former 7-digit number 123-4567 became 8123-4567 (PLDT) or 7123-4567 (Globe)
Sources: NTC MO 10-10-2017; PNA August 2019; GMA News October 2019.
Provincial Area Codes (7-Digit Format):
Format: 0XX-XXX-XXXX (7 digits)
Area Code Structure: 2-digit area codes grouped into 7 broad geographic areas
Examples:
Cebu: 032
Laguna: 049
Cotabato: 064
Source: Wikipedia Telephone Numbers in the Philippines; NTC Numbering Plan.
Philippines Mobile Operators and Network Prefixes
While MNP complicates relying solely on prefixes for carrier identification, understanding the prefix structure remains important for historical context and initial routing logic.
Globe, Smart, and DITO Prefix Assignments (2024–2025)
Prefix assignments are dynamic and subject to change. Never hardcode these values into your applications. Instead, use a regularly updated database or API to retrieve the latest assignments.
Critical Note: As of 2024–2025, DITO Telecommunity has won 14 of 16 Mobile Network Experience awards, including all five Overall Experience and 5G Experience awards, indicating significant network performance improvements. DITO has 14 million subscribers and over 7,000 towers nationwide (end of 2024). Source: Opensignal Philippines Mobile Network Experience Report, April 2025.
Remember that these prefixes no longer guarantee indicators of the current network due to MNP. Always implement fallback handling for ported numbers and use HLR (Home Location Register) lookups or MNP database queries for accurate carrier identification.
How to Validate Philippines Phone Numbers
This section provides practical guidance on implementing Philippine phone number handling in your applications.
Phone Number Validation Regex Patterns
Build a robust validation framework to handle different number formats.
JavaScript
// Validation patterns for Philippine numbersconst validationPatterns = {
mobile: /^(09|\+639)\d{9}$/,
landlineMetroManila: /^(02|\+632)[78]\d{7}$/, // 8-digit Metro Manila landlines (7 or 8 prefix)landlineProvincial: /^(0[3-9]\d{1}|\+63[3-9]\d{1})\d{7}$/// 7-digit provincial landlines
};
// Implementation examplefunctionvalidatePhilippineNumber(number, type) {
// Check if the given number matches the specified typereturn validationPatterns[type].test(number);
}
// Example usage:console.log(validatePhilippineNumber("09171234567", "mobile")); // trueconsole.log(validatePhilippineNumber("+63281234567", "landlineMetroManila")); // true (PLDT)console.log(validatePhilippineNumber("+63271234567", "landlineMetroManila")); // true (Globe)console.log(validatePhilippineNumber("0321234567", "landlineProvincial")); // true (Cebu)
This code includes validation for 8-digit Metro Manila landlines (effective October 6, 2019), reflecting the current numbering scheme with both "7" (Globe) and "8" (PLDT) prefixes. Always test your validation logic with various valid and invalid inputs to ensure accuracy.
Best Practices for Phone Number Handling
Follow these best practices when working with Philippine phone numbers:
Store Numbers in E.164 Format: Store all numbers in E.164 format (+63XXXXXXXXXX). This international standard ensures consistency and simplifies integration with various telecommunications systems. Also maintain original format metadata for display and user interaction purposes. Include carrier information where available, but update it regularly due to MNP. For area code reference, see our complete area code guides.
Integrate MNP Carrier Lookup: Integrate a carrier lookup mechanism to handle ported numbers.
JavaScript
asyncfunctioncheckNumberPortability(phoneNumber) {
// Remove any formattingconst cleanNumber = phoneNumber.replace(/\D/g, '');
// Implement carrier lookup using a reliable API or databaseconst carrierInfo = awaitlookupCarrier(cleanNumber);
// Handle ported numbers – default to current carrier if original is unknownreturn {
originalCarrier: carrierInfo.original || carrierInfo.current,
currentCarrier: carrierInfo.current,
isPorted: carrierInfo.original !== carrierInfo.current,
portedDate: carrierInfo.portedDate || null// Track porting date if available
};
}
// Example usage:checkNumberPortability("+639171234567").then(info =>console.log(info));
This code snippet demonstrates how to check number portability. Replace lookupCarrier with your actual carrier lookup implementation using HLR queries or MNP database APIs. This function also handles cases where the original carrier is unknown, defaulting to the current carrier, and tracks porting dates.
Maintain Updated Database: Regularly validate your number database against National Telecommunications Commission (NTC) updates. Ensure your database supports both 7 and 8-digit landlines and implements carrier detection logic that accounts for MNP. Monitor NTC announcements for new prefix allocations.
Implement Dialing Procedures
Understand Philippine dialing patterns for accurate call routing.
Domestic Call Routing
Handle these scenarios in your system:
Landline to Landline: Include area codes and account for varying lengths (7 or 8 digits).
Python
import re
defvalidate_landline_call(number):
# Pattern accepts 8-digit Metro Manila (area 02) or 7-digit provincial
pattern = r'^0(2[78]\d{7}|[3-9]\d{8})$'match = re.match(pattern, number)
ifnotmatch:
returnFalse# Verify digit count based on area codeif number.startswith('02'):
returnlen(number) == 10# 02 + 8 digitselse:
returnlen(number) == 10# 0XX + 7 digitsprint(validate_landline_call("0321234567")) # True (Cebu, 7 digits)print(validate_landline_call("02812345678")) # True (Metro Manila PLDT, 8 digits)print(validate_landline_call("02712345678")) # True (Metro Manila Globe, 8 digits)
This Python code validates both 8-digit Metro Manila landlines (with "7" or "8" prefix) and 7-digit provincial landlines, ensuring accuracy post-October 2019 migration.
Landline to Mobile: Include the '0' prefix before the mobile number.
Python
import re
defvalidate_mobile_call(number):
pattern = r'^09\d{9}$'returnbool(re.match(pattern, number))
print(validate_mobile_call("09171234567")) # True
Mobile to Mobile: Direct dialing is used; no area code is required. Carrier routing is automatic based on the prefix (but remember MNP implications – current carrier may differ from prefix-indicated carrier).
International Call Routing
For international calls to the Philippines, use the format +63 <area code/mobile prefix><subscriber number>. Ensure your system correctly handles the country code and removes any leading zeros from the area code or mobile prefix.
Example International Formats:
Mobile: +63 917 123 4567 (remove the leading "0" from 0917)
Metro Manila landline: +63 2 8123 4567 (area code "2", then 8-digit number)
National Emergency (911): Launched August 1, 2016, as the nationwide emergency hotline, replacing the previous Patrol 117 system. Managed by the Emergency 911 National Office. On September 11, 2025, DILG launched Unified 911, centralizing all local emergency contacts. Sources: Executive Order No. 56; NTC Memorandum Order No. 07-07-2016 (July 20, 2016); E911.gov.ph; Wikipedia 911 Philippines.
Police Hotline (117): While 911 is the official emergency number, 117 was the previous national emergency number (July 14, 2003 – August 1, 2016) and may still be recognized in some systems. Handle both for backward compatibility. Source: Executive Order No. 56 (replaced Patrol 117).
Red Cross (143): Philippine Red Cross Hotline for disaster response and emergency medical services.
Fire Services (160): Bureau of Fire Protection emergency hotline for fire incidents.
Best Practice: Implement priority routing for these numbers to ensure immediate connection. Also, provide location data if possible to aid emergency responders. Per Republic Act No. 11202 Section 4(d), don't impose any charges for calls to emergency numbers. All emergency calls must be free of charge.
Regulatory Requirement: NTC Memorandum Order No. 07-07-2016 officially assigned "911" as the Emergency Hotline Number nationwide, making it available for government use free of interconnection charges.
Implementation Requirements
JavaScript
constEMERGENCY_NUMBERS = {
NATIONAL_911: '911', // Primary national emergency (since 2016)POLICE_117: '117', // Legacy police hotline (pre-2016, may still work)RED_CROSS: '143', // Philippine Red CrossFIRE: '160'// Bureau of Fire Protection
};
// Priority routing implementationfunctionhandleEmergencyCall(number) {
if (Object.values(EMERGENCY_NUMBERS).includes(number)) {
// Implement priority routing and location data transmission if available// Emergency calls must be free of charge per RA 11202 Section 4(d)returnsetPriorityRoute(number, getCurrentLocation(), { freeOfCharge: true });
}
returnhandleNormalCall(number);
}
This code includes 117 for legacy compatibility and incorporates a placeholder for location data transmission. Replace getCurrentLocation() with your actual location retrieval implementation and ensure emergency calls bypass any billing mechanisms.
NTC Regulatory Compliance and Standards
The National Telecommunications Commission (NTC) oversees several key aspects of the telecommunications landscape. Familiarize yourself with these regulations to ensure compliance.
Number Resource Management: This includes allocation of number blocks, prefix assignments, and special number management. Stay updated on NTC pronouncements regarding number allocation and usage. Reference: NTC official website and memorandum orders.
Service Quality Standards: The NTC sets standards for network performance metrics, porting completion times (48-hour maximum per RA 11202), and service availability requirements. Consider these standards when designing and testing your applications.
Carrier Interconnection: The NTC defines technical specifications, protocol standards, and testing requirements for carrier interconnection. Ensure your systems adhere to these guidelines for seamless communication across different networks. Reference: RA 11202 Section 4(d) mandates non-imposition of interconnection fees for domestic calls and SMS.
MNP Implementation: NTC developed and published Implementing Rules and Regulations for RA 11202 on June 11, 2019 (effective July 9, 2019), requiring mobile service providers to establish porting mechanisms within 6 months of rule promulgation. Source: RA 11202 Section 8; NTC IRR June 2019.
Key Regulatory References:
Republic Act No. 11202 (Mobile Number Portability Act) – February 8, 2019
NTC Implementing Rules and Regulations – June 11, 2019 (effective July 9, 2019)
NTC Memorandum Order No. 10-10-2017 (8-digit Metro Manila landlines)
NTC Memorandum Order No. 07-07-2016 (911 emergency number designation)
Executive Order No. 56 (Institutionalizing Emergency 911)
Key Takeaway: Regularly check the NTC website (www.ntc.gov.ph) for updates to implementation requirements and compliance guidelines.
Frequently Asked Questions About Philippines Phone Numbers
Is the Philippines +63 or +64?
The Philippines country code is +63. New Zealand uses +64.
How do you write +63 on a phone number?
For mobile: +63 917 123 4567 (remove the leading 0 from 0917). For Manila landline: +63 2 8123 4567.
What is an example of a Philippines phone number?
Mobile: 0917 123 4567 (domestic) or +63 917 123 4567 (international). Manila landline: 02 8123 4567 (domestic) or +63 2 8123 4567 (international).
How many digits is a Philippine mobile number?
Philippine mobile numbers are 10 digits including the leading 0 (e.g., 0917 123 4567), or 11 digits with country code (+63 917 123 4567).
What is Manila's area code?
Manila and Metro Manila use area code 02 with 8-digit landline numbers (02-8XXX-XXXX or 02-7XXX-XXXX).
Conclusion
This guide provides a detailed overview of the Philippines phone number format, including country code +63, mobile and landline validation, MNP implementation, and regulatory considerations. Follow these guidelines to develop robust and compliant applications that effectively handle Philippine phone numbers. Prioritize user experience and stay updated on the evolving telecommunications landscape.
Developer Checklist:
Implement E.164 format storage (+63XXXXXXXXXX)
Validate 8-digit Metro Manila landlines (02-7XXX-XXXX or 02-8XXX-XXXX)
Validate 7-digit provincial landlines
Validate 10-digit mobile numbers (09XX-XXX-XXXX)
Integrate MNP/HLR lookup for accurate carrier identification
Handle 48-hour porting timeline in application logic
Implement emergency number routing (911, 117, 143, 160)
Ensure emergency calls are free of charge
Monitor NTC updates for new prefix allocations
Account for 60-day porting frequency limit in user flows
Frequently asked questions
Philippine mobile numbers can be validated using the regex pattern /^(09|+639)\d{9}$/. This pattern covers both local (09) and international (+639) formats, followed by nine digits. Always test with various inputs to ensure accuracy and handle edge cases effectively within your application's validation logic.
Mobile Number Portability (MNP) in the Philippines, enacted through Republic Act No. 11202, allows subscribers to keep their mobile numbers when switching networks or subscription types (prepaid/postpaid). Developers must consider MNP when building applications, implementing robust number validation and carrier lookup mechanisms.
MNP allows users to switch networks while keeping their original number, meaning prefixes no longer reliably indicate the current carrier. Developers must implement carrier lookup mechanisms and avoid relying solely on prefix-based validation to correctly identify the network and route calls.
Store phone numbers in E.164 format (+63XXXXXXXXXX) for consistency and integration with global systems. While E.164 provides a standardized format for storage and processing, also retain the original format for display and user interactions to enhance the user experience.
While prefixes provide a starting point, you should not solely rely on them due to Mobile Number Portability (MNP). Use a regularly updated database or API for accurate carrier identification, treating prefix-based identification as a fallback mechanism and prioritizing real-time lookup.
Check number portability by integrating a carrier lookup API or database. The lookup should return both the original and current carrier information, allowing you to determine if a number has been ported. Implement this lookup process whenever carrier information is crucial to your application's functionality.
Porting involves pre-porting verification (60-day activity, no outstanding balances, valid ID), submitting a request to the receiving network, a 24-hour validation period, a 24-hour technical implementation, and finally, activation and testing. The guaranteed completion time is within 48 hours.
Philippine landline numbers can have 7 or 8 digits. When validating or processing landline numbers, use regular expressions that accommodate both lengths, such as /^0(\d{1,2})(\d{7,8})$/. Ensure your system handles area codes correctly for accurate routing and call completion.
Key emergency numbers include 911 (National Emergency), 117 (Police Hotline), 143 (Red Cross), and 160 (Fire Services). Implement priority routing for these numbers and provide location data if available to aid emergency responders.
International calls to the Philippines follow the format +63 <area code/mobile prefix>. Remove any leading zeros from the area code or mobile prefix when formatting the number for international dialing. Ensure your system handles country codes and removes leading zeros correctly.
The National Telecommunications Commission (NTC) regulates number resource management, service quality standards, and carrier interconnection. Stay updated on NTC guidelines regarding number allocation, network performance metrics, porting completion times, and technical specifications for interconnection.
Integrate MNP by using a reliable carrier lookup API or database to determine the current network of a number. Update carrier information regularly and design your system to handle changes in network assignments due to number porting activities.
Store numbers in E.164 format (+63XXXXXXXXXX) for consistency and integration with telecommunications systems. Maintain original format metadata for display and user interaction. Include and regularly update carrier information if available, acknowledging the implications of MNP.
Metro Manila landlines use an 8-digit format, so validation patterns must include this format to correctly identify valid numbers. Use updated regex patterns to correctly validate 8-digit numbers alongside the 7-digit format used in other regions of the Philippines.
The Philippines phone number format uses country code +63 with distinct structures for mobile (10 digits starting with 09) and landline numbers (7-8 digits with area codes). Understanding the correct Philippines phone number format is essential for developers building SMS services, authentication systems, or contact management platforms.
This guide covers Philippines mobile number format, landline validation, area codes (including Manila's 02), Mobile Number Portability (MNP) under Republic Act 11202, and operator prefixes for Globe, Smart, and DITO. Master the complete Philippines numbering plan to ensure accurate phone number processing for Filipino users.
Philippines Mobile Number Format and Structure
Mobile numbers in the Philippines follow a standardized 10-digit format: 09XX-XXX-XXXX. All mobile prefixes start with 9 (with newer allocations like DITO's 895-898 series starting with 8).
International Format: +63 9XX XXX XXXX (remove the leading "0" when adding country code +63)
Example Philippine mobile numbers:
Important: Due to Mobile Number Portability (RA 11202), prefixes no longer reliably indicate the current network operator. Always use real-time carrier lookup for accurate routing.
Understanding Mobile Number Portability (MNP)
The Philippines modernized its telecommunications infrastructure with Mobile Number Portability (MNP) through Republic Act No. 11202, signed February 8, 2019, and effective March 6, 2019. This lets you build more flexible and user-centric applications, but it also introduces complexities you must address. Here's what MNP means for your development workflows.
Core Features and Requirements
MNP empowers subscribers to perform actions that were previously impossible or highly inconvenient. These features directly impact how you design your systems to interact with Philippine phone numbers. Consider these key aspects:
Implementation Timeline and Process
The MNP process involves several key stages:
MNP Timeline and Developer Actions:
Source: RA 11202, Section 4(a); NTC Implementing Rules and Regulations (June 11, 2019, effective July 9, 2019).
DITO Telecommunity highlights that MNP allows for both external porting (switching networks) and internal porting (switching between prepaid and postpaid within the same network). This distinction is crucial for handling user requests related to subscription changes. Design your systems to differentiate between these two types of porting.
Penalties for Non-Compliance: The NTC imposes significant fines on providers who fail to complete porting within allowed timeframes or unjustly refuse MNP:
Source: RA 11202, Section 7.
Philippines Phone Number Structure and Format
Country Code +63 and Dialing Prefixes
The Philippines uses country code +63. The international access prefix is 00, and the domestic long-distance prefix is 0. Source: ITU-T E.164; Wikipedia Telephone Numbers in the Philippines.
Landline Number Format by Region
Metro Manila Area Code 02 (8-Digit Format):
Sources: NTC MO 10-10-2017; PNA August 2019; GMA News October 2019.
Provincial Area Codes (7-Digit Format):
Source: Wikipedia Telephone Numbers in the Philippines; NTC Numbering Plan.
Philippines Mobile Operators and Network Prefixes
While MNP complicates relying solely on prefixes for carrier identification, understanding the prefix structure remains important for historical context and initial routing logic.
Globe, Smart, and DITO Prefix Assignments (2024–2025)
Prefix assignments are dynamic and subject to change. Never hardcode these values into your applications. Instead, use a regularly updated database or API to retrieve the latest assignments.
Sources: HowToQuick.net 2025; GlobeOrSmart.com 2025; NoypiGeek 2025; PinAsk.ph 2025; Opensignal Philippines April 2025.
Critical Note: As of 2024–2025, DITO Telecommunity has won 14 of 16 Mobile Network Experience awards, including all five Overall Experience and 5G Experience awards, indicating significant network performance improvements. DITO has 14 million subscribers and over 7,000 towers nationwide (end of 2024). Source: Opensignal Philippines Mobile Network Experience Report, April 2025.
Remember that these prefixes no longer guarantee indicators of the current network due to MNP. Always implement fallback handling for ported numbers and use HLR (Home Location Register) lookups or MNP database queries for accurate carrier identification.
How to Validate Philippines Phone Numbers
This section provides practical guidance on implementing Philippine phone number handling in your applications.
Phone Number Validation Regex Patterns
Build a robust validation framework to handle different number formats.
// Validation patterns for Philippine numbers const validationPatterns = { mobile: /^(09|\+639)\d{9}$/, landlineMetroManila: /^(02|\+632)[78]\d{7}$/, // 8-digit Metro Manila landlines (7 or 8 prefix) landlineProvincial: /^(0[3-9]\d{1}|\+63[3-9]\d{1})\d{7}$/ // 7-digit provincial landlines }; // Implementation example function validatePhilippineNumber(number, type) { // Check if the given number matches the specified type return validationPatterns[type].test(number); } // Example usage: console.log(validatePhilippineNumber("09171234567", "mobile")); // true console.log(validatePhilippineNumber("+63281234567", "landlineMetroManila")); // true (PLDT) console.log(validatePhilippineNumber("+63271234567", "landlineMetroManila")); // true (Globe) console.log(validatePhilippineNumber("0321234567", "landlineProvincial")); // true (Cebu)This code includes validation for 8-digit Metro Manila landlines (effective October 6, 2019), reflecting the current numbering scheme with both "7" (Globe) and "8" (PLDT) prefixes. Always test your validation logic with various valid and invalid inputs to ensure accuracy.
Best Practices for Phone Number Handling
Follow these best practices when working with Philippine phone numbers:
Store Numbers in E.164 Format: Store all numbers in E.164 format (
+63XXXXXXXXXX). This international standard ensures consistency and simplifies integration with various telecommunications systems. Also maintain original format metadata for display and user interaction purposes. Include carrier information where available, but update it regularly due to MNP. For area code reference, see our complete area code guides.Integrate MNP Carrier Lookup: Integrate a carrier lookup mechanism to handle ported numbers.
async function checkNumberPortability(phoneNumber) { // Remove any formatting const cleanNumber = phoneNumber.replace(/\D/g, ''); // Implement carrier lookup using a reliable API or database const carrierInfo = await lookupCarrier(cleanNumber); // Handle ported numbers – default to current carrier if original is unknown return { originalCarrier: carrierInfo.original || carrierInfo.current, currentCarrier: carrierInfo.current, isPorted: carrierInfo.original !== carrierInfo.current, portedDate: carrierInfo.portedDate || null // Track porting date if available }; } // Example usage: checkNumberPortability("+639171234567").then(info => console.log(info));This code snippet demonstrates how to check number portability. Replace
lookupCarrierwith your actual carrier lookup implementation using HLR queries or MNP database APIs. This function also handles cases where the original carrier is unknown, defaulting to the current carrier, and tracks porting dates.Maintain Updated Database: Regularly validate your number database against National Telecommunications Commission (NTC) updates. Ensure your database supports both 7 and 8-digit landlines and implements carrier detection logic that accounts for MNP. Monitor NTC announcements for new prefix allocations.
Implement Dialing Procedures
Understand Philippine dialing patterns for accurate call routing.
Domestic Call Routing
Handle these scenarios in your system:
Landline to Landline: Include area codes and account for varying lengths (7 or 8 digits).
import re def validate_landline_call(number): # Pattern accepts 8-digit Metro Manila (area 02) or 7-digit provincial pattern = r'^0(2[78]\d{7}|[3-9]\d{8})$' match = re.match(pattern, number) if not match: return False # Verify digit count based on area code if number.startswith('02'): return len(number) == 10 # 02 + 8 digits else: return len(number) == 10 # 0XX + 7 digits print(validate_landline_call("0321234567")) # True (Cebu, 7 digits) print(validate_landline_call("02812345678")) # True (Metro Manila PLDT, 8 digits) print(validate_landline_call("02712345678")) # True (Metro Manila Globe, 8 digits)This Python code validates both 8-digit Metro Manila landlines (with "7" or "8" prefix) and 7-digit provincial landlines, ensuring accuracy post-October 2019 migration.
Landline to Mobile: Include the '0' prefix before the mobile number.
import re def validate_mobile_call(number): pattern = r'^09\d{9}$' return bool(re.match(pattern, number)) print(validate_mobile_call("09171234567")) # TrueMobile to Mobile: Direct dialing is used; no area code is required. Carrier routing is automatic based on the prefix (but remember MNP implications – current carrier may differ from prefix-indicated carrier).
International Call Routing
For international calls to the Philippines, use the format
+63 <area code/mobile prefix><subscriber number>. Ensure your system correctly handles the country code and removes any leading zeros from the area code or mobile prefix.Example International Formats:
Philippines Emergency Numbers and Services
Integrate emergency services correctly.
Emergency Hotline Numbers (911, 117, 143, 160)
Best Practice: Implement priority routing for these numbers to ensure immediate connection. Also, provide location data if possible to aid emergency responders. Per Republic Act No. 11202 Section 4(d), don't impose any charges for calls to emergency numbers. All emergency calls must be free of charge.
Regulatory Requirement: NTC Memorandum Order No. 07-07-2016 officially assigned "911" as the Emergency Hotline Number nationwide, making it available for government use free of interconnection charges.
Implementation Requirements
const EMERGENCY_NUMBERS = { NATIONAL_911: '911', // Primary national emergency (since 2016) POLICE_117: '117', // Legacy police hotline (pre-2016, may still work) RED_CROSS: '143', // Philippine Red Cross FIRE: '160' // Bureau of Fire Protection }; // Priority routing implementation function handleEmergencyCall(number) { if (Object.values(EMERGENCY_NUMBERS).includes(number)) { // Implement priority routing and location data transmission if available // Emergency calls must be free of charge per RA 11202 Section 4(d) return setPriorityRoute(number, getCurrentLocation(), { freeOfCharge: true }); } return handleNormalCall(number); }This code includes 117 for legacy compatibility and incorporates a placeholder for location data transmission. Replace
getCurrentLocation()with your actual location retrieval implementation and ensure emergency calls bypass any billing mechanisms.NTC Regulatory Compliance and Standards
The National Telecommunications Commission (NTC) oversees several key aspects of the telecommunications landscape. Familiarize yourself with these regulations to ensure compliance.
Key Regulatory References:
Key Takeaway: Regularly check the NTC website (www.ntc.gov.ph) for updates to implementation requirements and compliance guidelines.
Frequently Asked Questions About Philippines Phone Numbers
Is the Philippines +63 or +64? The Philippines country code is +63. New Zealand uses +64.
How do you write +63 on a phone number? For mobile: +63 917 123 4567 (remove the leading 0 from 0917). For Manila landline: +63 2 8123 4567.
What is an example of a Philippines phone number? Mobile: 0917 123 4567 (domestic) or +63 917 123 4567 (international). Manila landline: 02 8123 4567 (domestic) or +63 2 8123 4567 (international).
How many digits is a Philippine mobile number? Philippine mobile numbers are 10 digits including the leading 0 (e.g., 0917 123 4567), or 11 digits with country code (+63 917 123 4567).
What is Manila's area code? Manila and Metro Manila use area code 02 with 8-digit landline numbers (02-8XXX-XXXX or 02-7XXX-XXXX).
Conclusion
This guide provides a detailed overview of the Philippines phone number format, including country code +63, mobile and landline validation, MNP implementation, and regulatory considerations. Follow these guidelines to develop robust and compliant applications that effectively handle Philippine phone numbers. Prioritize user experience and stay updated on the evolving telecommunications landscape.
Developer Checklist: