Mozambique Phone Numbers: Format, Area Code & Validation Guide
This guide provides a comprehensive overview of Mozambique phone number formats, validation, and best practices for developers. It covers recent regulatory changes, technical considerations, and future developments to ensure your applications handle Mozambican numbers accurately and efficiently.
Recent Regulatory Changes (2023-2025)
Mozambique's telecommunications landscape is evolving. The Instituto Nacional das Comunicações de Moçambique (INCM) has implemented key changes impacting developers:
- Mandatory Biometric SIM Registration: All SIM cards must be registered with biometric data (fingerprints and facial recognition). This impacts user verification and potentially how you collect phone numbers. Note that as of early 2025, biometric registration is in a pilot phase and not yet mandatory, but will become so after June 16, 2025, with enforcement (disconnection of unregistered numbers) beginning in 2025. Each SIM card must be registered in person.
- Enhanced Security Measures: Stricter validation is required for number activation, emphasizing the need for robust validation practices in your applications.
- Rural Connectivity Initiative & Quality of Service Standards: While not directly impacting number formatting, these initiatives highlight the importance of optimizing your applications for varying network conditions and potential connectivity challenges in rural areas.
Number Structure
Mozambican phone numbers adhere to the following international standard (E.164) structure:
+258 XX XXXXXXX
│ └─── Subscriber Number (7 digits)
└────── Area/Operator Code (2 digits)
Geographic (Landline) Numbers
Landlines use a 9-digit format, including a 2-digit geographic identifier:
+258 2X XXXXXXX
│
└─── Geographic Identifier (21 for Maputo, 23 for Beira, etc.)
Here's a table of common area codes:
Region | Code | Coverage Area |
---|---|---|
Maputo | 21 | Capital and Province |
Beira | 23 | Sofala Region |
Nampula | 24 | Northern Region |
Tete | 26 | Western Region |
Inhambane | 27 | Southern Coast |
Xai-Xai | 29 | Gaza Province |
Mobile Numbers
Mobile numbers use operator-specific prefixes:
+258 8X XXXXXXX
│
└─── Operator Identifier (82/83 for Vodacom, 84/85 for Movitel, 86/87 for Tmcel)
Operator | Prefixes | Approximate Market Share | Network Type |
---|---|---|---|
Vodacom | 82, 83 | ~45% | 4G/5G |
Movitel | 84, 85 | ~30% | 4G |
Tmcel | 86, 87 | ~25% | 4G |
Implementation Guide
Validation
- Comprehensive Regex: This regex validates various formats, including international, national, and local:
const mozNumberRegex = /^(?:(?:\+|00)258|0)?(?:2[1-8]|8[2-79])\d{7}$/;
function isValidMozNumber(phoneNumber) {
return mozNumberRegex.test(phoneNumber);
}
- Operator-Specific Validation: You might need to validate against specific operator prefixes depending on your application's requirements.
Formatting
Consistent formatting improves user experience.
function formatMozNumber(phoneNumber) {
const cleaned = phoneNumber.replace(/\D/g, ''); // Remove non-digits
if (cleaned.startsWith('2') || cleaned.startsWith('8')) {
return `+258 ${cleaned.slice(0, 2)} ${cleaned.slice(2)}`; // E.164
}
return null; // Invalid format
}
- Display Formats:
- International: +258 XX XXXXXXX (Recommended)
- National: 0XX XXXXXXX
- Local: XX XXXXXXX
Error Handling
- Specific Error Codes: Provide distinct error codes for invalid format, missing country code, or incorrect operator prefix.
- Automatic Country Code Prepending: If the country code (+258) is missing, prepend it automatically.
- User Feedback: Provide clear and immediate feedback to the user about validation errors.
Technical Considerations
Number Portability
- Currently Unavailable: Mozambique does not currently support number portability. This simplifies operator identification based on prefixes. However, be aware that future implementation of number portability will require adjustments to your validation and formatting logic. Monitor INCM announcements for updates.
Storage
- E.164 Format: Always store phone numbers in the international E.164 format (+258XXXXXXXXX) for consistency and interoperability.
Common Challenges and Solutions
- Legacy System Integration: If dealing with older 8-digit numbers, implement conversion utilities to update them to the 9-digit format.
- International Dialing: Handle variations in international prefixes (e.g., 00, +) and ensure correct country code handling.
- User Interface: Implement smart input formatting to guide users and provide real-time validation feedback.
Best Practices
- Server-Side Validation: Always validate on the server-side to prevent malicious input.
- Comprehensive Regex: Use robust regex patterns for validation.
- Clear Error Messages: Provide user-friendly error messages.
- Logging: Log validation failures for debugging and monitoring.
- Documentation: Maintain up-to-date documentation on number formats and validation rules.
Emergency Services
Service | Number | Availability |
---|---|---|
Police | 119 | 24/7 |
Fire | 198 | 24/7 |
Ambulance | 117 | 24/7 |
General Emergency | 112 | 24/7 |
- Emergency Call Routing: Ensure your application correctly handles emergency numbers and does not interfere with emergency call routing.
Future Developments
The INCM is focused on:
- Infrastructure Enhancement: Network expansion and 5G readiness.
- Security Framework: Improved fraud detection and threat monitoring.
- Service Quality: Enhanced network performance and customer experience.
Stay updated with INCM announcements for any changes that may impact your implementations.
Developer Checklist
- Implement E.164 format validation.
- Configure emergency number handling.
- Plan for future number portability implementation.
- Implement biometric verification integration (when applicable).
- Establish compliance monitoring and reporting.
Important: Always refer to the official INCM documentation (https://www.incm.gov.mz) for the most current regulations and technical specifications.