French Polynesia Phone Numbers: +689 Country Code Format & Validation Guide
Complete guide to French Polynesia phone numbers with +689 country code. Learn 8-digit format, mobile prefixes, validation patterns, and international calling for Tahiti telecommunications.
French Polynesia uses the +689 country code for all international calls. This comprehensive guide covers everything you need to know about French Polynesia phone numbers including the 8-digit format, number validation, Tahiti dialing codes, mobile prefixes (87, 89), and international calling procedures. Whether you're building telecom applications, validating phone numbers, or calling French Polynesia from abroad, this guide provides practical implementation details, OPT telecommunications standards, and GDPR compliance requirements.
Regulatory and Compliance Framework
French Polynesia, as an overseas collectivity of France, follows French and EU data protection regulations. The Office des Postes et Télécommunications (OPT) regulates telecommunications under French law. Key compliance requirements:
Consent Requirements: Obtain written or electronic consent before sending marketing messages. Consent must be freely given, specific, informed, and unambiguous. Maintain records for at least 3 years. Double opt-in verification is strongly recommended.
Opt-out Requirements: Include opt-out instructions in French ("STOP pour désabonner") in all marketing messages.
Sending Hours: Recommended 8:00 AM – 8:00 PM FPT (French Polynesia Time, UTC-10); avoid 10:00 PM – 7:00 AM.
Content Restrictions: No unsolicited promotion, political, religious, adult, or gambling content.
SMS and International Calling Costs
Understanding telecommunication costs for the 689 area code helps budget integrations effectively:
SMS API Pricing (as of January 2025):
Twilio: ~$0.1797 per message with automatic volume discounts
Plivo: ~$0.1523 per message with 30-90% volume discounts
Sinch: ~$0.0763 per message (best-value pricing)
Infobip: ~$0.10 per message with enterprise custom pricing
Volume discounts typically start at 10,000+ messages/month, with significant reductions (30-50%) at 100,000+ messages/month. Multi-part messages (over 160 GSM-7 characters or 70 Unicode characters) are billed per segment.
Additional Costs:
Phone number rental: $1-2/month for long codes (alphanumeric sender IDs are supported)
International calling rates vary by carrier and destination
Roaming charges apply when using foreign SIM cards in French Polynesia
Note: French Polynesia's remote location and submarine cable dependency typically add 15–25% to SMS costs compared to mainland France. Source: French Polynesia SMS pricing analysis
French Polynesia Phone Number Format: 8-Digit System
French Polynesia uses a streamlined 8-digit phone number format without area codes. The Office des Postes et Télécommunications (OPT) manages this unified numbering system across all 118 islands including Tahiti, Bora Bora, and the Marquesas.
Country Code: +689 (ITU-T E.164 standard)
Domestic Format: XX XX XX XX (8 digits)
International Format: +689 XX XX XX XX
All phone numbers in French Polynesia are exactly 8 digits regardless of service type or location.
Number Categories and Usage
Number categories by type:
Number Type
Format
Example
Use Case
SMS Support
Fixed-Line
4XXXXXXX
40123456
Landline services across all territories
No
Mobile
8[7|9]XXXXXX
87123456, 89123456
Vini mobile services with 4G/5G coverage
Yes (one-way)
Toll-Free
80XXXXXX
80123456
Customer service, emergency support
Limited
Special Service
81XXXXXX
81123456
Administrative and emergency services
Limited
1. Fixed-Line Numbers
Code
Format: 4XXXXXXX
Example: 40123456
Landline services use these numbers exclusively, offering coverage across all French Polynesian territories. Dial directly without additional prefixes.
Note: SMS to landlines is not supported in French Polynesia.
2. Mobile Numbers
Code
Format: 8[7|9]XXXXXX
Example: 87123456 or 89123456
Vini, the leading mobile provider, operates numbers beginning with 87 or 89. Vini offers comprehensive 4G/5G coverage across the territory. Both prefixes provide full territorial coverage. Account for both prefixes when validating or processing mobile numbers.
Note: As of 2025, Vini has deployed 5G services alongside their established 4G network.
3. Toll-Free Services
Code
Format: 80XXXXXX
Example: 80123456
Call these numbers free within French Polynesia. Customer service hotlines, emergency support, and government services commonly use them.
4. Special Service Numbers
Code
Format: 81XXXXXX
Example: 81123456
OPT reserves these numbers for administrative services and emergency service access.
Emergency Numbers
Critical Information for Safety Applications:
Police (Gendarmerie): 17
Fire Department (Pompiers): 18
Medical Emergency (SAMU): 15
European Emergency Number: 112 (works from any mobile phone, even without credit or SIM card)
Ensure emergency numbers are readily accessible and properly formatted in applications. Mobile phones can make emergency calls even when the device has no credit or is locked.
How to Validate French Polynesia Phone Numbers (+689)
Apply this practical guidance to integrate French Polynesian phone numbers into your systems.
Validate Phone Numbers
Use these regular expressions for accurate number validation:
These regular expressions provide a first line of defense against invalid input. Consider adding further checks, such as verifying that the number is active and belongs to the intended recipient.
SMS Validation and Character Limits
Follow these specifications when sending SMS messages to French Polynesian numbers:
Character Encoding Standards:
GSM-7 Encoding: Standard encoding supporting 160 characters per single SMS. Extended characters (|, ^, €, {, }, [, ], ~, \) count as 2 characters.
Unicode/UCS-2 Encoding: Required for emojis and special characters. Supports 70 characters per single SMS.
Multi-part Message Handling:
GSM-7 messages over 160 characters split into 153-character segments
Unicode messages over 70 characters split into 67-character segments
Each segment is billed as a separate SMS (e.g., 200-character GSM message = 2 SMS charges)
Important: Concatenated messages are supported, but two-way SMS is not supported in French Polynesia
SMS Validation Pattern:
Python
import re
defvalidate_sms_content(message, encoding='gsm7'):
"""
Validate SMS message content and calculate segment count.
Args:
message: The message content
encoding: 'gsm7' or 'unicode'
Returns:
dict with validation results
"""
gsm7_basic = set('@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà')
gsm7_extended = set('|^€{}[~]\\\\')
message_length = len(message)
uses_unicode = False
gsm7_length = 0# Check if Unicode encoding is requiredfor char in message:
if char in gsm7_extended:
gsm7_length += 2# Extended chars count as 2elif char in gsm7_basic:
gsm7_length += 1else:
uses_unicode = Truebreakif uses_unicode or encoding == 'unicode':
# Unicode encoding
segments = (message_length + 66) // 67if message_length > 70else1
chars_per_segment = 70if segments == 1else67return {
'valid': True,
'encoding': 'unicode',
'length': message_length,
'segments': segments,
'chars_per_segment': chars_per_segment,
'cost_multiplier': segments
}
else:
# GSM-7 encoding
segments = (gsm7_length + 152) // 153if gsm7_length > 160else1
chars_per_segment = 160if segments == 1else153return {
'valid': True,
'encoding': 'gsm7',
'length': gsm7_length,
'segments': segments,
'chars_per_segment': chars_per_segment,
'cost_multiplier': segments
}
# Example usage
result = validate_sms_content("Hello from French Polynesia! 🌴")
print(f"Encoding: {result['encoding']}, Segments: {result['segments']}, Cost: {result['cost_multiplier']}x")
Follow Integration Best Practices
Follow these best practices for smooth integration:
Storage Format: Always store numbers in E.164 format (+689XXXXXXXX). This international standard ensures consistency and interoperability. Strip all formatting characters before storage but maintain the original format for display purposes.
Display Formatting: For local display, use XX XX XX XX. For international display, use +689 XX XX XX XX. Consider the user's location for automatic format selection.
Error Handling: Validate number length (exactly 8 digits) and prefix validity. Implement user-friendly error messages for invalid formats.
Security Considerations for Phone Number Handling:
Data Classification: Treat phone numbers as PII under GDPR. Implement appropriate security controls including encryption at rest and in transit.
Access Controls: Restrict access to phone number data using role-based access control (RBAC). Log all access attempts for audit trails.
Data Retention: Retain phone numbers only as long as necessary for the stated purpose. Implement automated deletion policies compliant with GDPR (typically 3 years for consent records).
Encryption: Use TLS 1.2+ for data in transit. Use AES-256 encryption for data at rest.
Consent Management: Maintain detailed consent records including timestamp, method, and purpose. Implement easy opt-out mechanisms.
Breach Notification: Have procedures to notify CNIL within 72 hours of a data breach involving phone numbers.
Rate Limiting and API Integration:
Rate Limits: Implement rate limiting to prevent abuse. Typical limits: 10 requests/second for SMS APIs, 100 requests/second for validation APIs.
Error Handling: Handle common API errors (400 Bad Request, 429 Too Many Requests, 500 Server Error) gracefully.
Monitoring: Track delivery rates (target >95% for transactional messages), API error rates, and cost per delivered message.
Solve Common Implementation Challenges
While the French Polynesian system is relatively straightforward, these challenges may occur:
Number Portability: Number portability is not currently supported. Design systems to handle operator-specific number ranges. Be prepared for potential updates as regulations evolve.
Regional Considerations: While no area codes are used, international dialing rules apply for multi-region systems. Ensure systems correctly handle international dialing prefixes and country codes.
Two-Way SMS Limitations: Two-way SMS is not supported in French Polynesia. Design applications accordingly—use alternative methods (webhooks, app notifications) for receiving user responses.
SMS to Landlines: SMS cannot be delivered to landline numbers (4XXXXXXX). Always validate that the target number is a mobile number before attempting SMS delivery.
Network Transition Handling: Applications may experience transitions between terrestrial and satellite networks, particularly in remote atolls. Implement:
Connection timeout handling (recommended: 30-60 seconds for satellite)
Automatic retry with exponential backoff
Offline mode with message queuing for later delivery
Common Error Scenarios and Solutions:
Python
# Error handling exampleimport requests
from time import sleep
defsend_sms_with_retry(phone_number, message, max_retries=3):
"""
Send SMS with retry logic and error handling.
"""# Validate number first
validation = validateFrenchPolynesiaNumber(phone_number)
ifnot validation['valid']:
return {'success': False, 'error': validation['error']}
ifnot validation['smsCapable']:
return {'success': False, 'error': f"SMS not supported for {validation['type']} numbers"}
# Validate message content
content_check = validate_sms_content(message)
for attempt inrange(max_retries):
try:
# Your SMS API call here
response = requests.post(
'https://api.example.com/sms',
json={
'to': f"+689{phone_number.replace(/\D/g, '')}",
'message': message
},
timeout=30
)
if response.status_code == 200:
return {'success': True, 'segments': content_check['segments']}
elif response.status_code == 429:
# Rate limited - exponential backoff
sleep(2 ** attempt)
continueelse:
return {'success': False, 'error': f"API error: {response.status_code}"}
except requests.Timeout:
if attempt < max_retries - 1:
sleep(2 ** attempt)
continuereturn {'success': False, 'error': 'Request timeout after retries'}
except Exception as e:
return {'success': False, 'error': str(e)}
return {'success': False, 'error': 'Max retries exceeded'}
Understand Network Coverage and Infrastructure
French Polynesia's unique geography presents telecommunications challenges. The infrastructure combines terrestrial networks with satellite communications to ensure broad coverage across the 118 islands and atolls spread over 5 million km² of ocean. OPT manages the core telecommunications infrastructure and has partnered with satellite providers to extend coverage to remote islands.
Key Infrastructure Points:
Submarine Cables: The Honotua submarine cable (commissioned 2010) links Tahiti to Hawaii, and the Natitua cable (2022) connects the Marquesas Islands.
Satellite Coverage: Remote atolls rely on satellite communications where fiber or terrestrial networks aren't feasible.
Network Technology: Vini operates 4G/5G mobile networks with comprehensive coverage across major population centers.
Mobile Penetration: 340,000 cellular connections active as of early 2025 (120% penetration rate).
This infrastructure particularly affects applications targeting users in remote locations where latency and connectivity reliability may vary. Satellite connections typically introduce 500–700 ms latency compared to 20–50 ms for terrestrial networks.
Know the Major Telecom Operators
Key players in the French Polynesian telecom market:
Vini (formerly Tikiphone)
Market leader in mobile services
Comprehensive 4G/5G coverage across the territory
Operates mobile, internet (fiber and wireless), and fixed-line services
Note: Vini is a subsidiary of the OPT Group, making OPT the primary telecommunications entity in French Polynesia.
Additional Technical Implementation Guidelines
Validate Numbers with Python
Validate French Polynesian phone numbers with this Python function:
Python
import re
defvalidate_fp_number(phone_number):
patterns = {
'landline': r'^4\d{7}$',
'mobile': r'^8[79]\d{6}$',
'toll_free': r'^80\d{6}$',
'special_services': r'^81\d{6}$'
}
clean_number = re.sub(r'[\s\-\(\)]', '', phone_number)
for number_type, pattern in patterns.items():
if re.match(pattern, clean_number):
returnTrue, number_type
returnFalse, None# Example usage:
is_valid, number_type = validate_fp_number("40123456")
if is_valid:
print(f"Valid {number_type} number")
else:
print("Invalid number")
is_valid, number_type = validate_fp_number("8712345a")
if is_valid:
print(f"Valid {number_type} number")
else:
print("Invalid number")
This function validates the number and identifies its type, providing granular information. Note the added test case demonstrating how the function handles invalid characters.
Consider Network Coverage Factors
Consider these network-related factors when developing applications for French Polynesia:
Connectivity Checks: Implement connectivity checks within applications to handle potential network interruptions.
Offline Functionality: Build offline functionality for remote areas where network availability might be intermittent.
Satellite Latency: Consider satellite latency in time-sensitive applications, as satellite connections can introduce delays (500–700 ms vs 20–50 ms for terrestrial).
Integrate with Infrastructure
OPT's API Documentation: Consult OPT's official documentation for system integration guidelines and best practices. Contact OPT directly for API access and technical specifications.
Error Handling for Network Transitions: Implement proper error handling for transitions between terrestrial and satellite networks. Use connection timeout detection and automatic retry mechanisms.
Coverage Monitoring: Monitor coverage changes through official channels to ensure applications adapt to evolving network conditions. Subscribe to OPT's technical updates and network status notifications.
How to Call French Polynesia from Abroad (+689 Dialing)
Handle international calls to and from French Polynesia using these procedures.
Calling Internationally from French Polynesia (Exit Code 00)
To make international calls from French Polynesia (Tahiti):
International Calling Costs: Rates vary by destination and carrier. Contact Vini or OPT for current international calling rates. VoIP alternatives may offer lower costs for international calls.
How to Dial French Polynesia from Other Countries
To call French Polynesia or Tahiti from abroad:
Dial their country's international exit code.
Enter 689 (French Polynesia's country code).
Dial the 8-digit local number.
Example:
Code
From US to French Polynesia: 011 689 40123456
From France to French Polynesia: 00 689 40123456
Quick Reference Table: Calling French Polynesia from Major Countries
Country
Exit Code
Format
Example
United States
011
011 689 XXXXXXXX
011 689 87123456
Canada
011
011 689 XXXXXXXX
011 689 87123456
France
00
00 689 XXXXXXXX
00 689 87123456
United Kingdom
00
00 689 XXXXXXXX
00 689 87123456
Australia
0011
0011 689 XXXXXXXX
0011 689 87123456
New Zealand
00
00 689 XXXXXXXX
00 689 87123456
Germany
00
00 689 XXXXXXXX
00 689 87123456
Japan
010
010 689 XXXXXXXX
010 689 87123456
Frequently Asked Questions
What is the country code for French Polynesia?
The French Polynesia country code is +689. This includes Tahiti, Bora Bora, Moorea, and all French Polynesian islands. When calling from abroad, dial +689 followed by the 8-digit local number. Example: to call 40123456 in Tahiti, dial +689 40123456.
How do I call French Polynesia from the United States?
Dial 011 689 followed by the 8-digit French Polynesian phone number. For example, to call a landline (40123456), dial 011 689 40123456. For a mobile number (87123456), dial 011 689 87123456. The 011 is the US international exit code, and 689 is French Polynesia's country code.
What is the format of French Polynesia phone numbers?
French Polynesia uses an 8-digit phone number format with no area codes. The format is: +689 XX XX XX XX for international calls or XX XX XX XX for domestic calls. Landlines start with 4 (40123456), Tahiti mobile numbers start with 87 or 89 (87123456), toll-free numbers start with 80 (80123456), and special services start with 81 (81123456).
Does French Polynesia have area codes?
No, French Polynesia does not use area codes. All phone numbers across the entire territory use the same 8-digit format without geographic prefixes. This unified system simplifies domestic calling across all 118 islands and atolls.
What mobile prefixes are used in French Polynesia?
French Polynesian mobile numbers use prefixes 87 and 89. Both prefixes belong to Vini, the primary mobile operator, and provide comprehensive 4G/5G coverage across the territory. When validating mobile numbers, account for both prefixes in validation logic.
Can I port my phone number between carriers in French Polynesia?
No, number portability is not currently supported in French Polynesia. If you switch mobile providers, you'll receive a new phone number. Design systems to handle operator-specific number ranges, and monitor for potential regulatory changes regarding number portability.
How do I validate a French Polynesian phone number?
Use regular expressions to validate French Polynesian numbers: Landline: ^4\d{7}$, Mobile: ^8[79]\d{6}$, Toll-free: ^80\d{6}$, Special service: ^81\d{6}$. Always validate that numbers are exactly 8 digits long and start with the correct prefix for their type.
What are the emergency numbers in French Polynesia?
Emergency numbers in French Polynesia are: Police (17), Fire Department (18), Medical Emergency (15), and European Emergency Number (112). The 112 number works from any mobile phone, even without credit or a SIM card. These numbers are critical for safety applications.
Can I send SMS to French Polynesian landline numbers?
No, SMS cannot be delivered to landline numbers (starting with 4). SMS is only supported for mobile numbers (starting with 87 or 89). Always validate that the target number is a mobile number before attempting SMS delivery.
What SMS character encoding should I use for French Polynesia?
Use GSM-7 encoding for standard text (160 characters per message). If your message contains emojis or special characters not in the GSM-7 character set, you'll need Unicode/UCS-2 encoding (70 characters per message). Messages exceeding these limits are split into multiple segments, with each segment billed separately.
Is two-way SMS supported in French Polynesia?
No, two-way SMS is not currently supported in French Polynesia. You can send SMS messages to mobile numbers, but cannot receive SMS replies through standard SMS channels. Use alternative methods like webhooks, app notifications, or web forms for receiving user responses.
What are the GDPR requirements for handling French Polynesian phone numbers?
French Polynesian phone numbers are classified as PII under GDPR. Requirements include: obtaining explicit consent before marketing use, maintaining consent records for 3+ years, providing easy opt-out mechanisms, encrypting data in transit and at rest, implementing access controls, and notifying CNIL within 72 hours of data breaches. All marketing SMS must include opt-out instructions in French.
Conclusion
This guide covers French Polynesian phone numbers, from basic formatting to advanced integration techniques including SMS validation, security best practices, and regulatory compliance. Key takeaways:
Always use E.164 format (+689XXXXXXXX) for storage and international interoperability
Implement proper validation to distinguish between landlines (4X), mobile (87/89), toll-free (80), and special service (81) numbers
Account for SMS limitations: one-way only, no concatenation support, and character encoding requirements
Follow GDPR and French Data Protection Act requirements for handling phone number PII
Consider network infrastructure challenges including satellite latency and coverage gaps in remote areas
Implement robust error handling and retry logic for API integrations
Follow the best practices outlined in this guide and stay updated with OPT guidelines and regulations for any changes that might affect implementation. For pricing and volume discount information, consult directly with SMS API providers based on expected message volume.
Frequently asked questions
For local display, use the format XX XX XX XX. For international display, use +689 XX XX XX XX. Consider the user's location when choosing the appropriate format to enhance user experience.
Mobile numbers in French Polynesia are 8 digits long and begin with either 87 or 89, followed by six additional digits. Both prefixes offer full coverage across French Polynesia and are primarily operated by Vini.
Use regular expressions like /^4\d{7}$/ for landlines, /^8[79]\d{6}$/ for mobile, /^80\d{6}$/ for toll-free, and /^81\d{6}$/ for special services. Always store numbers in E.164 format (+689XXXXXXXX) for consistency.
French Polynesia uses a unified 8-digit numbering system for all domestic calls, simplifying dialing and system integration across all islands. This means no area codes are needed within French Polynesia itself.
The country code for French Polynesia is 689. This code must be used when making international calls to French Polynesia, preceded by the caller's international exit code.
Dial 00 (international access code), followed by the destination country code and then the local number. For instance, to call the US, dial 00 1 [US number], and for France, dial 00 33 [French number].
Dial your country's international exit code, then 689 (French Polynesia's country code), followed by the 8-digit local number. For example, from the US, you would dial 011 689 XXXXXXXX.
The E.164 format for French Polynesia numbers is +689XXXXXXXX, where X represents the 8-digit local number. This format is crucial for international compatibility and should always be used for storage.
Vini is the dominant mobile operator offering 3G/4G, while OPT manages infrastructure, landlines, and regulations. These two entities play key roles in French Polynesia's telecommunications landscape.
Consider satellite latency for time-sensitive applications. French Polynesia's infrastructure relies partly on satellites, which can introduce delays. Implement connectivity checks and offline functionalities for better user experience.
Store phone numbers in the international E.164 format (+689XXXXXXXX) to maintain consistency and facilitate interoperability with other systems. Strip all formatting characters before storing, but keep the original format for display.
Numbers starting with 80 are toll-free numbers within French Polynesia and are commonly used for customer support, emergency services, and government hotlines. These calls are free for the caller within French Polynesia.
Currently, number portability is not supported in French Polynesia. Design your systems to handle operator-specific ranges and anticipate future updates to the regulations regarding number portability.
Implement connectivity checks, offline functionality, and error handling for network transitions, especially considering the mix of terrestrial and satellite connections. Also, be mindful of potential satellite latency in your application design.
Introduction
French Polynesia uses the +689 country code for all international calls. This comprehensive guide covers everything you need to know about French Polynesia phone numbers including the 8-digit format, number validation, Tahiti dialing codes, mobile prefixes (87, 89), and international calling procedures. Whether you're building telecom applications, validating phone numbers, or calling French Polynesia from abroad, this guide provides practical implementation details, OPT telecommunications standards, and GDPR compliance requirements.
Regulatory and Compliance Framework
French Polynesia, as an overseas collectivity of France, follows French and EU data protection regulations. The Office des Postes et Télécommunications (OPT) regulates telecommunications under French law. Key compliance requirements:
SMS and International Calling Costs
Understanding telecommunication costs for the 689 area code helps budget integrations effectively:
SMS API Pricing (as of January 2025):
Volume discounts typically start at 10,000+ messages/month, with significant reductions (30-50%) at 100,000+ messages/month. Multi-part messages (over 160 GSM-7 characters or 70 Unicode characters) are billed per segment.
Additional Costs:
Note: French Polynesia's remote location and submarine cable dependency typically add 15–25% to SMS costs compared to mainland France. Source: French Polynesia SMS pricing analysis
French Polynesia Phone Number Format: 8-Digit System
French Polynesia uses a streamlined 8-digit phone number format without area codes. The Office des Postes et Télécommunications (OPT) manages this unified numbering system across all 118 islands including Tahiti, Bora Bora, and the Marquesas.
All phone numbers in French Polynesia are exactly 8 digits regardless of service type or location.
Number Categories and Usage
Number categories by type:
1. Fixed-Line Numbers
Landline services use these numbers exclusively, offering coverage across all French Polynesian territories. Dial directly without additional prefixes.
Note: SMS to landlines is not supported in French Polynesia.
2. Mobile Numbers
Vini, the leading mobile provider, operates numbers beginning with
87or89. Vini offers comprehensive 4G/5G coverage across the territory. Both prefixes provide full territorial coverage. Account for both prefixes when validating or processing mobile numbers.Note: As of 2025, Vini has deployed 5G services alongside their established 4G network.
3. Toll-Free Services
Call these numbers free within French Polynesia. Customer service hotlines, emergency support, and government services commonly use them.
4. Special Service Numbers
OPT reserves these numbers for administrative services and emergency service access.
Emergency Numbers
Critical Information for Safety Applications:
Ensure emergency numbers are readily accessible and properly formatted in applications. Mobile phones can make emergency calls even when the device has no credit or is locked.
How to Validate French Polynesia Phone Numbers (+689)
Apply this practical guidance to integrate French Polynesian phone numbers into your systems.
Validate Phone Numbers
Use these regular expressions for accurate number validation:
// Landline validation const landlineRegex = /^4\d{7}$/; // Mobile number validation const mobileRegex = /^8[79]\d{6}$/; // Toll-free number validation const tollFreeRegex = /^80\d{6}$/; // Special service validation const specialServiceRegex = /^81\d{6}$/; // Complete validation function with error handling function validateFrenchPolynesiaNumber(number) { // Remove formatting characters const cleanNumber = number.replace(/[\s\-\(\)\+]/g, ''); // Handle international format const localNumber = cleanNumber.startsWith('689') ? cleanNumber.substring(3) : cleanNumber; // Validate length if (localNumber.length !== 8) { return { valid: false, error: 'Number must be exactly 8 digits' }; } // Validate type if (landlineRegex.test(localNumber)) { return { valid: true, type: 'landline', smsCapable: false }; } else if (mobileRegex.test(localNumber)) { return { valid: true, type: 'mobile', smsCapable: true }; } else if (tollFreeRegex.test(localNumber)) { return { valid: true, type: 'toll-free', smsCapable: false }; } else if (specialServiceRegex.test(localNumber)) { return { valid: true, type: 'special', smsCapable: false }; } return { valid: false, error: 'Invalid number prefix' }; } // Example usage const result = validateFrenchPolynesiaNumber('+689 87 12 34 56'); console.log(result); // { valid: true, type: 'mobile', smsCapable: true }These regular expressions provide a first line of defense against invalid input. Consider adding further checks, such as verifying that the number is active and belongs to the intended recipient.
SMS Validation and Character Limits
Follow these specifications when sending SMS messages to French Polynesian numbers:
Character Encoding Standards:
Multi-part Message Handling:
SMS Validation Pattern:
import re def validate_sms_content(message, encoding='gsm7'): """ Validate SMS message content and calculate segment count. Args: message: The message content encoding: 'gsm7' or 'unicode' Returns: dict with validation results """ gsm7_basic = set('@£$¥èéùìòÇ\\nØø\\rÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !"#¤%&\'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà') gsm7_extended = set('|^€{}[~]\\\\') message_length = len(message) uses_unicode = False gsm7_length = 0 # Check if Unicode encoding is required for char in message: if char in gsm7_extended: gsm7_length += 2 # Extended chars count as 2 elif char in gsm7_basic: gsm7_length += 1 else: uses_unicode = True break if uses_unicode or encoding == 'unicode': # Unicode encoding segments = (message_length + 66) // 67 if message_length > 70 else 1 chars_per_segment = 70 if segments == 1 else 67 return { 'valid': True, 'encoding': 'unicode', 'length': message_length, 'segments': segments, 'chars_per_segment': chars_per_segment, 'cost_multiplier': segments } else: # GSM-7 encoding segments = (gsm7_length + 152) // 153 if gsm7_length > 160 else 1 chars_per_segment = 160 if segments == 1 else 153 return { 'valid': True, 'encoding': 'gsm7', 'length': gsm7_length, 'segments': segments, 'chars_per_segment': chars_per_segment, 'cost_multiplier': segments } # Example usage result = validate_sms_content("Hello from French Polynesia! 🌴") print(f"Encoding: {result['encoding']}, Segments: {result['segments']}, Cost: {result['cost_multiplier']}x")Follow Integration Best Practices
Follow these best practices for smooth integration:
Storage Format: Always store numbers in E.164 format (
+689XXXXXXXX). This international standard ensures consistency and interoperability. Strip all formatting characters before storage but maintain the original format for display purposes.Display Formatting: For local display, use
XX XX XX XX. For international display, use+689 XX XX XX XX. Consider the user's location for automatic format selection.Error Handling: Validate number length (exactly 8 digits) and prefix validity. Implement user-friendly error messages for invalid formats.
Security Considerations for Phone Number Handling:
Rate Limiting and API Integration:
Solve Common Implementation Challenges
While the French Polynesian system is relatively straightforward, these challenges may occur:
Number Portability: Number portability is not currently supported. Design systems to handle operator-specific number ranges. Be prepared for potential updates as regulations evolve.
Regional Considerations: While no area codes are used, international dialing rules apply for multi-region systems. Ensure systems correctly handle international dialing prefixes and country codes.
Two-Way SMS Limitations: Two-way SMS is not supported in French Polynesia. Design applications accordingly—use alternative methods (webhooks, app notifications) for receiving user responses.
SMS to Landlines: SMS cannot be delivered to landline numbers (4XXXXXXX). Always validate that the target number is a mobile number before attempting SMS delivery.
Network Transition Handling: Applications may experience transitions between terrestrial and satellite networks, particularly in remote atolls. Implement:
Common Error Scenarios and Solutions:
# Error handling example import requests from time import sleep def send_sms_with_retry(phone_number, message, max_retries=3): """ Send SMS with retry logic and error handling. """ # Validate number first validation = validateFrenchPolynesiaNumber(phone_number) if not validation['valid']: return {'success': False, 'error': validation['error']} if not validation['smsCapable']: return {'success': False, 'error': f"SMS not supported for {validation['type']} numbers"} # Validate message content content_check = validate_sms_content(message) for attempt in range(max_retries): try: # Your SMS API call here response = requests.post( 'https://api.example.com/sms', json={ 'to': f"+689{phone_number.replace(/\D/g, '')}", 'message': message }, timeout=30 ) if response.status_code == 200: return {'success': True, 'segments': content_check['segments']} elif response.status_code == 429: # Rate limited - exponential backoff sleep(2 ** attempt) continue else: return {'success': False, 'error': f"API error: {response.status_code}"} except requests.Timeout: if attempt < max_retries - 1: sleep(2 ** attempt) continue return {'success': False, 'error': 'Request timeout after retries'} except Exception as e: return {'success': False, 'error': str(e)} return {'success': False, 'error': 'Max retries exceeded'}Understand Network Coverage and Infrastructure
French Polynesia's unique geography presents telecommunications challenges. The infrastructure combines terrestrial networks with satellite communications to ensure broad coverage across the 118 islands and atolls spread over 5 million km² of ocean. OPT manages the core telecommunications infrastructure and has partnered with satellite providers to extend coverage to remote islands.
Key Infrastructure Points:
This infrastructure particularly affects applications targeting users in remote locations where latency and connectivity reliability may vary. Satellite connections typically introduce 500–700 ms latency compared to 20–50 ms for terrestrial networks.
Know the Major Telecom Operators
Key players in the French Polynesian telecom market:
Vini (formerly Tikiphone)
Office des Postes et Télécommunications (OPT)
Note: Vini is a subsidiary of the OPT Group, making OPT the primary telecommunications entity in French Polynesia.
Additional Technical Implementation Guidelines
Validate Numbers with Python
Validate French Polynesian phone numbers with this Python function:
import re def validate_fp_number(phone_number): patterns = { 'landline': r'^4\d{7}$', 'mobile': r'^8[79]\d{6}$', 'toll_free': r'^80\d{6}$', 'special_services': r'^81\d{6}$' } clean_number = re.sub(r'[\s\-\(\)]', '', phone_number) for number_type, pattern in patterns.items(): if re.match(pattern, clean_number): return True, number_type return False, None # Example usage: is_valid, number_type = validate_fp_number("40123456") if is_valid: print(f"Valid {number_type} number") else: print("Invalid number") is_valid, number_type = validate_fp_number("8712345a") if is_valid: print(f"Valid {number_type} number") else: print("Invalid number")This function validates the number and identifies its type, providing granular information. Note the added test case demonstrating how the function handles invalid characters.
Consider Network Coverage Factors
Consider these network-related factors when developing applications for French Polynesia:
Integrate with Infrastructure
How to Call French Polynesia from Abroad (+689 Dialing)
Handle international calls to and from French Polynesia using these procedures.
Calling Internationally from French Polynesia (Exit Code 00)
To make international calls from French Polynesia (Tahiti):
00(the international access code).Example:
International Calling Costs: Rates vary by destination and carrier. Contact Vini or OPT for current international calling rates. VoIP alternatives may offer lower costs for international calls.
How to Dial French Polynesia from Other Countries
To call French Polynesia or Tahiti from abroad:
689(French Polynesia's country code).Example:
Quick Reference Table: Calling French Polynesia from Major Countries
Frequently Asked Questions
What is the country code for French Polynesia?
The French Polynesia country code is +689. This includes Tahiti, Bora Bora, Moorea, and all French Polynesian islands. When calling from abroad, dial +689 followed by the 8-digit local number. Example: to call 40123456 in Tahiti, dial +689 40123456.
How do I call French Polynesia from the United States?
Dial 011 689 followed by the 8-digit French Polynesian phone number. For example, to call a landline (40123456), dial 011 689 40123456. For a mobile number (87123456), dial 011 689 87123456. The 011 is the US international exit code, and 689 is French Polynesia's country code.
What is the format of French Polynesia phone numbers?
French Polynesia uses an 8-digit phone number format with no area codes. The format is: +689 XX XX XX XX for international calls or XX XX XX XX for domestic calls. Landlines start with 4 (40123456), Tahiti mobile numbers start with 87 or 89 (87123456), toll-free numbers start with 80 (80123456), and special services start with 81 (81123456).
Does French Polynesia have area codes?
No, French Polynesia does not use area codes. All phone numbers across the entire territory use the same 8-digit format without geographic prefixes. This unified system simplifies domestic calling across all 118 islands and atolls.
What mobile prefixes are used in French Polynesia?
French Polynesian mobile numbers use prefixes 87 and 89. Both prefixes belong to Vini, the primary mobile operator, and provide comprehensive 4G/5G coverage across the territory. When validating mobile numbers, account for both prefixes in validation logic.
Can I port my phone number between carriers in French Polynesia?
No, number portability is not currently supported in French Polynesia. If you switch mobile providers, you'll receive a new phone number. Design systems to handle operator-specific number ranges, and monitor for potential regulatory changes regarding number portability.
How do I validate a French Polynesian phone number?
Use regular expressions to validate French Polynesian numbers: Landline:
^4\d{7}$, Mobile:^8[79]\d{6}$, Toll-free:^80\d{6}$, Special service:^81\d{6}$. Always validate that numbers are exactly 8 digits long and start with the correct prefix for their type.What are the emergency numbers in French Polynesia?
Emergency numbers in French Polynesia are: Police (17), Fire Department (18), Medical Emergency (15), and European Emergency Number (112). The 112 number works from any mobile phone, even without credit or a SIM card. These numbers are critical for safety applications.
Can I send SMS to French Polynesian landline numbers?
No, SMS cannot be delivered to landline numbers (starting with 4). SMS is only supported for mobile numbers (starting with 87 or 89). Always validate that the target number is a mobile number before attempting SMS delivery.
What SMS character encoding should I use for French Polynesia?
Use GSM-7 encoding for standard text (160 characters per message). If your message contains emojis or special characters not in the GSM-7 character set, you'll need Unicode/UCS-2 encoding (70 characters per message). Messages exceeding these limits are split into multiple segments, with each segment billed separately.
Is two-way SMS supported in French Polynesia?
No, two-way SMS is not currently supported in French Polynesia. You can send SMS messages to mobile numbers, but cannot receive SMS replies through standard SMS channels. Use alternative methods like webhooks, app notifications, or web forms for receiving user responses.
What are the GDPR requirements for handling French Polynesian phone numbers?
French Polynesian phone numbers are classified as PII under GDPR. Requirements include: obtaining explicit consent before marketing use, maintaining consent records for 3+ years, providing easy opt-out mechanisms, encrypting data in transit and at rest, implementing access controls, and notifying CNIL within 72 hours of data breaches. All marketing SMS must include opt-out instructions in French.
Conclusion
This guide covers French Polynesian phone numbers, from basic formatting to advanced integration techniques including SMS validation, security best practices, and regulatory compliance. Key takeaways:
Follow the best practices outlined in this guide and stay updated with OPT guidelines and regulations for any changes that might affect implementation. For pricing and volume discount information, consult directly with SMS API providers based on expected message volume.