Mali SMS Best Practices, Compliance, and Features
Mali SMS Market Overview
Locale name: | Mali |
---|---|
ISO code: | ML |
Region | Middle East & Africa |
Mobile country code (MCC) | 610 |
Dialing Code | +223 |
Market Conditions: Mali's mobile market is dominated by Orange Mali as the primary operator. SMS remains a crucial communication channel, particularly for business messaging and notifications. While OTT messaging apps like WhatsApp are gaining popularity in urban areas, SMS maintains strong penetration across both rural and urban regions due to its reliability and universal device support. Android devices significantly outnumber iOS in the market, making SMS an especially effective channel for reaching the broader population.
Key SMS Features and Capabilities in Mali
Mali supports standard SMS messaging capabilities with some limitations on two-way messaging and specific requirements for sender IDs, particularly through Orange's network.
Two-way SMS Support
Two-way SMS is not supported in Mali through standard A2P channels. Businesses should design their messaging strategies around one-way communications.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenated messages are supported, though availability may vary by sender ID type.
Message length rules: Standard SMS length limits apply - 160 characters for GSM-7 encoding, 70 characters for Unicode.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported, with message splitting occurring at different thresholds based on the chosen encoding.
MMS Support
MMS messages are not directly supported in Mali. When MMS content is sent, it is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content. This ensures compatibility across all device types while still enabling rich media sharing.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Mali. This means phone numbers remain tied to their original mobile network operator, which helps ensure reliable message routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Mali. Attempts to send messages to landline numbers will result in a failure response (400 error with code 21614), and no charges will be incurred.
Compliance and Regulatory Guidelines for SMS in Mali
Mali's telecommunications sector is regulated by the Autorité Malienne de Régulation des Télécommunications/TIC et des Postes (AMRTP). While specific SMS marketing laws are still evolving, operators like Orange Mali enforce certain requirements to protect consumers and ensure messaging quality.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic consent must be obtained before sending marketing messages
- Consent records should be maintained and easily accessible
- Purpose of messaging should be clearly stated during opt-in
- Opt-in process should be documented with timestamp and source
Best Practices:
- Use double opt-in for marketing campaigns
- Maintain detailed consent logs including date, time, and method of consent
- Clearly communicate the type and frequency of messages subscribers will receive
- Provide clear terms and conditions during the opt-in process
HELP/STOP and Other Commands
- STOP and HELP commands must be supported in both French and local languages
- Common keywords include: STOP, ARRET, AIDE, HELP
- All opt-out requests must be processed within 24 hours
- Automated responses should be provided in French
Do Not Call / Do Not Disturb Registries
Mali does not maintain a centralized Do Not Call registry. However, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Keep records of opted-out numbers for at least 12 months
- Regularly clean contact lists to remove inactive or opted-out numbers
Time Zone Sensitivity
- Messages should only be sent between 6:00 AM and 10:00 PM local time (GMT)
- Limit to maximum 3 SMS messages per subscriber per day
- Respect local holidays and religious observances
- Emergency messages are exempt from time restrictions
Phone Numbers Options and SMS Sender Types for Mali
Alphanumeric Sender ID
Operator network capability: Supported
Registration requirements: Not required for general use, but Orange requires registration for specific traffic types
Sender ID preservation: Yes, sender IDs are preserved as specified
Long Codes
Domestic vs. International: Both supported
Sender ID preservation: Yes for domestic, No for international
Provisioning time: 1-2 business days
Use cases: Ideal for transactional messages and two-factor authentication
Short Codes
Support: Supported
Provisioning time: 4-6 weeks
Use cases: Best for high-volume marketing campaigns and customer service
Restricted SMS Content, Industries, and Use Cases
Restricted Industries and Content:
- Gambling and betting (except through special connections)
- Adult content
- Cryptocurrency promotions
- Political messaging without proper authorization
- WhatsApp-related traffic is blocked
Content Filtering
Known Carrier Rules:
- Messages containing certain keywords related to restricted industries are blocked
- URLs should be from approved domains
- Content must not violate local cultural and religious sensitivities
Tips to Avoid Blocking:
- Avoid URL shorteners
- Use clear, straightforward language
- Avoid excessive punctuation or special characters
- Include sender identification in message content
Best Practices for Sending SMS in Mali
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Avoid slang or colloquialisms
- Maintain consistent sender ID across campaigns
Sending Frequency and Timing
- Maximum 3 messages per day per recipient
- Respect Ramadan and other religious observances
- Avoid sending during major holidays
- Space out messages to prevent recipient fatigue
Localization
- Primary languages: French and Bambara
- Consider bilingual messages for important communications
- Use appropriate character encoding for local language support
- Respect cultural nuances in message content
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain clear opt-out records
- Include opt-out instructions in marketing messages
- Regular audit of opt-out list compliance
Testing and Monitoring
- Test across all major carriers (Orange, Malitel)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular testing of opt-out functionality
SMS API integrations for Mali
Twilio
Twilio provides a robust SMS API that supports sending messages to Mali. Here's how to implement it:
import { Twilio } from 'twilio';
// Initialize the client with your credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Mali
async function sendSMSToMali(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Ensure proper formatting for Mali numbers (+223)
const formattedNumber = to.startsWith('+223') ? to : `+223${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-callback-url.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers comprehensive SMS capabilities for Mali with support for both transactional and marketing messages:
import axios from 'axios';
class SinchSMSService {
private readonly apiToken: string;
private readonly serviceId: string;
private readonly baseUrl: string;
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
}
async sendSMS(to: string, message: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/${this.serviceId}/batches`,
{
from: 'YourSenderID',
to: [to],
body: message,
delivery_report: 'summary'
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
console.log('Message sent:', response.data.id);
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
}
MessageBird
MessageBird provides reliable SMS delivery to Mali with detailed delivery reporting:
import messagebird from 'messagebird';
class MessageBirdService {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(to: string, message: string): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: 'YourBrand',
recipients: [to],
body: message,
datacoding: 'auto' // Automatic handling of special characters
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers a straightforward API for sending SMS to Mali:
import plivo from 'plivo';
class PlivoSMSService {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(to: string, message: string): Promise<void> {
try {
const response = await this.client.messages.create({
src: 'YourSenderID', // Your registered sender ID
dst: to, // Destination number
text: message,
url: 'https://your-callback-url.com/status', // Optional status callback
method: 'POST'
});
console.log('Message sent:', response.messageUuid);
} catch (error) {
console.error('Plivo error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
- Default rate limit: 30 messages per second
- Batch processing recommended for volumes over 1000/hour
- Implement exponential backoff for retry logic
- Queue messages during peak hours (10 AM - 2 PM local time)
Error Handling and Reporting
- Implement comprehensive logging for all API calls
- Monitor delivery receipts and track bounce rates
- Set up alerts for unusual error patterns
- Store message metadata for troubleshooting
- Implement automatic retry for temporary failures
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities
- Obtain explicit consent
- Respect time restrictions (6 AM - 10 PM)
- Honor opt-out requests within 24 hours
-
Technical Considerations
- Use proper number formatting (+223)
- Implement proper error handling
- Monitor delivery rates
-
Best Practices
- Localize content (French/Bambara)
- Maintain consistent sender IDs
- Regular testing across carriers
Next Steps
- Review AMRTP regulations at www.amrtp.ml
- Consult with local legal counsel for compliance
- Set up test accounts with preferred SMS providers
- Implement delivery monitoring systems
Additional Resources
- AMRTP Guidelines: www.amrtp.ml/guidelines
- Orange Mali Developer Portal: developer.orange.com/mali
- SMS Best Practices Guide: www.gsma.com/mali