phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / Article

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 Phone Numbers: Format, Area Code & Validation Guide

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:

  • GDPR Compliance: The General Data Protection Regulation (GDPR) applies to all personal data processing, including phone numbers, which are classified as personally identifiable information (PII).
  • French Data Protection Act: The French Data Protection Act (Loi Informatique et Libertés) complements GDPR and is enforced by the Commission Nationale de l'Informatique et des Libertés (CNIL).
  • 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 TypeFormatExampleUse CaseSMS Support
Fixed-Line4XXXXXXX40123456Landline services across all territoriesNo
Mobile8[7|9]XXXXXX87123456, 89123456Vini mobile services with 4G/5G coverageYes (one-way)
Toll-Free80XXXXXX80123456Customer service, emergency supportLimited
Special Service81XXXXXX81123456Administrative and emergency servicesLimited

1. Fixed-Line Numbers

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

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

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

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:

javascript
// 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:

  • 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

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:

  1. 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.

  2. 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.

  3. Error Handling: Validate number length (exactly 8 digits) and prefix validity. Implement user-friendly error messages for invalid formats.

  4. 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.
  5. 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.
    • Retry Logic: Implement exponential backoff for failed requests (e.g., 1s, 2s, 4s, 8s delays).
    • 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:

  1. Number Portability: Number portability is not currently supported. Design systems to handle operator-specific number ranges. Be prepared for potential updates as regulations evolve.

  2. 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.

  3. 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.

  4. 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.

  5. 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 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:

  • 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
  • International roaming partnerships
  • Mobile number prefixes: 87, 89
  • Website: www.vini.pf

Office des Postes et Télécommunications (OPT)

  • State-owned telecommunications authority
  • Manages telecommunications infrastructure
  • Provides postal services, fixed-line telephony, and internet services
  • Regulatory oversight and compliance
  • Website: www.opt.pf

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

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:

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

  1. Dial 00 (the international access code).
  2. Enter the destination country code.
  3. Dial the local number.

Example:

Calling the US: 00 1 234 567 8901 Calling France: 00 33 1 23 45 67 89

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:

  1. Dial their country's international exit code.
  2. Enter 689 (French Polynesia's country code).
  3. Dial the 8-digit local number.

Example:

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

CountryExit CodeFormatExample
United States011011 689 XXXXXXXX011 689 87123456
Canada011011 689 XXXXXXXX011 689 87123456
France0000 689 XXXXXXXX00 689 87123456
United Kingdom0000 689 XXXXXXXX00 689 87123456
Australia00110011 689 XXXXXXXX0011 689 87123456
New Zealand0000 689 XXXXXXXX00 689 87123456
Germany0000 689 XXXXXXXX00 689 87123456
Japan010010 689 XXXXXXXX010 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.