Mozambique SMS Best Practices, Compliance, and Features
Mozambique SMS Market Overview
Locale name: | Mozambique |
---|---|
ISO code: | MZ |
Region | Middle East & Africa |
Mobile country code (MCC) | 643 |
Dialing Code | +258 |
Market Conditions: Mozambique has a growing mobile market with 17.14 million mobile connections as of 2022, representing 52.5% of the population. The market is dominated by three major operators: Vodacom, Movitel, and TMcel (formerly MCEL). While OTT messaging apps are gaining popularity in urban areas, SMS remains a crucial communication channel due to its reliability and widespread accessibility, particularly in rural regions. Android devices dominate the mobile ecosystem due to their affordability and availability.
Key SMS Features and Capabilities in Mozambique
Mozambique supports basic SMS functionality with some limitations on two-way messaging and specific requirements for sender IDs, while offering support for concatenated messages and MMS conversion.
Two-way SMS Support
Two-way SMS is not supported in Mozambique through standard A2P channels. Businesses looking to implement two-way communication will need to explore alternative solutions or work with local aggregators.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported for most sender ID types, though support may vary by carrier.
Message length rules: Standard SMS length limits apply - 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported, with UCS-2 being particularly important for messages containing local language characters.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility across all networks while still allowing rich media content to be shared through a web-based interface.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Mozambique. This means mobile numbers remain tied to their original network operators, which can simplify message routing and delivery.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Mozambique. Attempts to send messages to landline numbers will result in a failed delivery and an error response (400 error code 21614) from the API, with no charges applied to the sender's account.
Compliance and Regulatory Guidelines for SMS in Mozambique
SMS communications in Mozambique are regulated by the Mozambican National Communications Institute (INCM). While specific SMS marketing regulations are still evolving, businesses must adhere to general telecommunications guidelines and international best practices for messaging.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain clear, documented opt-in consent before sending any marketing messages
- Maintain detailed records of when and how consent was obtained
- Include clear terms and conditions during the opt-in process
- Provide transparent information about message frequency and content type
HELP/STOP and Other Commands
- All SMS campaigns must support standard opt-out keywords:
- STOP, CANCEL, UNSUBSCRIBE (English)
- PARAR, CANCELAR (Portuguese)
- HELP/AJUDA commands must provide information about the service
- Responses to these commands should be in both Portuguese and English
- Process opt-out requests within 24 hours
Do Not Call / Do Not Disturb Registries
While Mozambique does not maintain an official Do Not Call registry, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Implement a system to track and manage unsubscribe requests
- Regularly clean contact lists to remove opted-out numbers
Time Zone Sensitivity
Mozambique follows East Africa Time (EAT, UTC+2) Recommended Sending Windows:
- Business Days: 8:00 AM to 8:00 PM EAT
- Weekends: 9:00 AM to 6:00 PM EAT
- Avoid sending during major religious observances and national holidays
Phone Numbers Options and SMS Sender Types for in Mozambique
Alphanumeric Sender ID
Operator network capability: Supported with pre-registration requirements
Registration requirements: Pre-registration required for Mozambique Movitel; no segregation between International and Domestic Traffic
Sender ID preservation: Yes, preserved for pre-registered IDs
Provisioning time: Approximately 2 weeks
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported but with limitations
Sender ID preservation: No, international long codes may be overwritten
Provisioning time: N/A
Use cases: Not recommended for primary messaging; use pre-registered alphanumeric IDs instead
Short Codes
Support: Not currently supported in Mozambique
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Industries and Content:
- Gambling and betting services
- Adult content or services
- Unauthorized financial services
- Political messaging without proper authorization
- Cryptocurrency promotions
Content Filtering
Known Carrier Filtering Rules:
- Messages containing certain keywords may be blocked
- URLs should be from approved domains
- Avoid excessive punctuation and special characters
Best Practices to Avoid Filtering:
- Use registered sender IDs
- Maintain consistent sending patterns
- Avoid URL shorteners where possible
- Keep content clear and professional
Best Practices for Sending SMS in Mozambique
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Personalize messages with recipient's name when appropriate
- Maintain consistent branding across campaigns
Sending Frequency and Timing
- Limit to 2-3 messages per week per recipient
- Respect local business hours
- Consider Ramadan and other religious observances
- Avoid sending during national holidays
Localization
- Primary language: Portuguese
- Consider including English for business communications
- Use local date and time formats
- Respect cultural sensitivities in content
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include opt-out instructions in messages
- Regular audit of opt-out compliance
Testing and Monitoring
- Test across all major networks (Vodacom, Movitel, TMcel)
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular testing of opt-out functionality
SMS API integrations for Mozambique
Twilio
Twilio provides a robust SMS API with specific support for Mozambique. Authentication uses your Account SID and Auth Token.
import * as twilio from 'twilio';
// Initialize Twilio client
const client = new twilio(
'YOUR_ACCOUNT_SID', // From Twilio Console
'YOUR_AUTH_TOKEN' // From Twilio Console
);
// Function to send SMS to Mozambique
async function sendSMSToMozambique(
to: string,
message: string,
senderId: string
) {
try {
const response = await client.messages.create({
body: message,
from: senderId, // Pre-registered alphanumeric sender ID
to: to, // Format: +258XXXXXXXXX
statusCallback: 'https://your-callback-url.com/status'
});
console.log(`Message sent successfully. SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers comprehensive SMS capabilities for Mozambique with REST API support.
import { SinchClient } from '@sinch/sdk-core';
// Initialize Sinch client
const sinchClient = new SinchClient({
projectId: 'YOUR_PROJECT_ID',
keyId: 'YOUR_KEY_ID',
keySecret: 'YOUR_KEY_SECRET'
});
// Function to send batch SMS
async function sendSinchSMS(
recipients: string[],
message: string,
senderId: string
) {
try {
const response = await sinchClient.sms.batches.send({
sendSMSRequestBody: {
to: recipients, // Array of numbers in +258 format
from: senderId, // Your registered sender ID
body: message,
delivery_report: 'summary'
}
});
console.log('Batch sent:', response.id);
return response;
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
MessageBird
MessageBird provides reliable SMS delivery to Mozambique with detailed delivery reporting.
import { MessageBird } from 'messagebird';
// Initialize MessageBird client
const messagebird = new MessageBird('YOUR_ACCESS_KEY');
// Function to send SMS with delivery tracking
async function sendMessageBirdSMS(
to: string,
message: string,
senderId: string
) {
const params = {
originator: senderId,
recipients: [to],
body: message,
reportUrl: 'https://your-webhook-url.com/delivery-reports'
};
return new Promise((resolve, reject) => {
messagebird.messages.create(params, (err, response) => {
if (err) {
console.error('MessageBird error:', err);
reject(err);
} else {
console.log('Message sent:', response.id);
resolve(response);
}
});
});
}
Plivo
Plivo offers straightforward SMS integration for Mozambique messaging.
import * as plivo from 'plivo';
// Initialize Plivo client
const client = new plivo.Client(
'YOUR_AUTH_ID',
'YOUR_AUTH_TOKEN'
);
// Function to send SMS with error handling
async function sendPlivoSMS(
to: string,
message: string,
senderId: string
) {
try {
const response = await client.messages.create({
src: senderId, // Your sender ID
dst: to, // Destination number
text: message,
url: 'https://your-callback-url.com/status'
});
console.log('Message sent:', response.messageUuid);
return response;
} catch (error) {
console.error('Plivo error:', error);
throw error;
}
}
API Rate Limits and Throughput
- Default rate limits vary by provider (typically 1-10 messages per second)
- Implement exponential backoff for retry logic
- Use batch APIs for high-volume sending
- Consider queue implementation for large campaigns:
import Queue from 'better-queue';
// Example queue implementation
const smsQueue = new Queue(async function (message, cb) {
try {
await sendSMS(message);
cb(null, { success: true });
} catch (error) {
cb(error);
}
}, { concurrent: 5 });
Error Handling and Reporting
- Implement comprehensive logging
- Monitor delivery rates and failures
- Set up automated alerts for error thresholds
// Example error handling middleware
function handleSMSError(error: any) {
const errorTypes = {
INVALID_NUMBER: 'Invalid phone number format',
BLOCKED_NUMBER: 'Number is blocked',
CARRIER_ERROR: 'Carrier delivery failed',
RATE_LIMIT: 'Rate limit exceeded'
};
logger.error({
error: error,
errorType: errorTypes[error.code] || 'Unknown error',
timestamp: new Date().toISOString()
});
// Implement retry logic if appropriate
if (error.code === 'RATE_LIMIT') {
return retryWithBackoff(error.message);
}
}
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities
- Pre-register alphanumeric sender IDs
- Obtain explicit consent
- Honor opt-out requests promptly
-
Technical Considerations
- Implement proper error handling
- Monitor delivery rates
- Use appropriate character encoding
-
Best Practices
- Respect time zones
- Maintain clean contact lists
- Test across all carriers
Next Steps
- Review INCM regulations at www.incm.gov.mz
- Consult with local legal counsel for compliance
- Set up test accounts with preferred SMS providers
- Implement delivery monitoring systems
Additional Resources
- INCM Guidelines: www.incm.gov.mz/guidelines
- Mozambique Consumer Protection Law
- International SMS Best Practices Guide
- Local Mobile Operator Guidelines:
- Vodacom: www.vodacom.co.mz
- Movitel: www.movitel.co.mz
- TMcel: www.tmcel.mz