sms compliance
sms compliance
Mali SMS Guide: Send SMS to Mali with Compliance & API Integration (2025)
Send SMS to Mali with confidence. Complete guide covering AMRTP compliance, Orange Mali sender ID registration, API integration (Twilio, MessageBird, Sinch, Plivo), and best practices for Mali's mobile market.
Mali SMS Guide: Best Practices, Compliance, and API Integration
Sending SMS to Mali requires understanding local regulations, proper sender ID setup, and carrier-specific requirements. This comprehensive guide covers everything you need to send SMS messages in Mali: AMRTP (Autorité Malienne de Régulation des Télécommunications) compliance requirements, Orange Mali and Malitel carrier specifications, sender ID registration, and API integration with major providers (Twilio, MessageBird, Sinch, Plivo). Whether you're sending transactional notifications or marketing campaigns, you'll learn how to reach Mali's predominantly Android-based mobile users while respecting local regulations and cultural sensitivities.
Mali SMS Market Overview: Carriers, Regulations & Mobile Penetration
| Locale name: | Mali |
|---|---|
| ISO code: | ML |
| Region | Middle East & Africa |
| Mobile country code (MCC) | 610 |
| Dialing Code | +223 |
Market Conditions: Orange Mali dominates as the primary operator alongside Malitel. SMS remains crucial for business messaging and notifications across Mali's mobile market. While OTT messaging apps like WhatsApp gain popularity in urban areas, SMS maintains strong penetration across rural and urban regions due to its reliability and universal device support. Android devices significantly outnumber iOS, making SMS especially effective for reaching the broader population.
SMS Features and Technical Capabilities in Mali
Mali's SMS infrastructure supports standard one-way A2P (Application-to-Person) messaging with specific sender ID requirements through Orange Mali and Malitel networks. Understanding these technical capabilities is essential for reliable SMS delivery.
Two-way SMS Support
Mali does not support two-way SMS through standard A2P channels. Design your messaging strategies around one-way communications. For interactions requiring responses, consider directing users to a web portal, mobile app, or phone number.
Concatenated Messages (Segmented SMS)
| Feature | Details |
|---|---|
| Support | Yes, with availability varying by sender ID type |
| Message length rules | 160 characters for GSM-7 encoding, 70 characters for Unicode |
| Encoding considerations | GSM-7 and UCS-2 encodings supported; message splitting occurs at different thresholds |
MMS Support
Mali does not directly support MMS messages. When you send MMS content, the system automatically converts it to SMS with an embedded URL where recipients view the multimedia content. This ensures compatibility across all device types while enabling rich media sharing.
MMS-to-SMS Conversion:
- Your media files are hosted on a secure CDN
- Recipients receive an SMS with a shortened URL (e.g., https://media.yourprovider.com/abc123)
- Links remain active for 30 days by default
- Ensure media files are mobile-optimized and under 5 MB
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Mali. Phone numbers remain tied to their original mobile network operator, which ensures reliable message routing.
Sending SMS to Landlines
You cannot send SMS to landline numbers in Mali. Attempts result in a failure response (400 error with code 21614), and no charges apply.
SMS Compliance Requirements: AMRTP Regulations and Orange Mali Rules
The Autorité Malienne de Régulation des Télécommunications/TIC et des Postes (AMRTP) regulates Mali's telecommunications sector and oversees SMS compliance. While specific SMS marketing laws continue evolving, mobile operators like Orange Mali and Malitel enforce strict requirements to protect consumers and ensure messaging quality. All businesses sending SMS in Mali must comply with AMRTP guidelines and carrier-specific policies.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain written or electronic consent before sending marketing messages
- Maintain consent records with easy access
- State messaging purpose clearly during opt-in
- Document opt-in with timestamp and source
Best Practices:
- Use double opt-in for marketing campaigns
- Maintain detailed consent logs with date, time, and method
- Communicate message type and frequency clearly
- Provide clear terms and conditions during opt-in
HELP/STOP and Other Commands
Support STOP and HELP commands in both French and local languages:
| Command | French | Purpose |
|---|---|---|
| STOP | ARRET | Opt out of messages |
| HELP | AIDE | Request assistance |
Automated Response Templates:
- French STOP response: "Vous êtes désinscrit. Vous ne recevrez plus de messages. Répondez AIDE pour de l'assistance."
- French HELP response: "Pour vous désinscrire, répondez ARRET. Pour de l'aide: contactez [votre support]."
Process all opt-out requests within 24 hours.
Do Not Call / Do Not Disturb Registries
Mali does not maintain a centralized Do Not Call registry. Implement your own processes:
- Maintain 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
Send messages during appropriate hours and respect local customs:
- Send messages only between 6:00 AM and 10:00 PM local time (GMT)
- Limit to 3 SMS messages per subscriber per day
- Respect local holidays and religious observances (including Ramadan – avoid sending during fasting hours and on Eid al-Fitr and Eid al-Adha)
- Emergency messages are exempt from time restrictions
Mali SMS Sender ID Options: Alphanumeric, Long Codes & Short Codes
Alphanumeric Sender ID
| Feature | Details |
|---|---|
| Operator network capability | Supported |
| Registration requirements | Not required for general use; Orange requires registration for specific traffic types |
| Sender ID preservation | Yes – sender IDs preserve as specified |
Long Codes
| Feature | Details |
|---|---|
| Domestic vs. International | Both supported |
| Sender ID preservation | Yes for domestic, No for international |
| Provisioning time | 1–2 business days |
| Use cases | Transactional messages and two-factor authentication |
Short Codes
| Feature | Details |
|---|---|
| Support | Supported |
| Provisioning time | 4–6 weeks |
| Use cases | High-volume marketing campaigns and customer service |
Restricted Content and Industry-Specific SMS Rules in Mali
Restricted Industries and Content:
- Gambling and betting (except through special connections)
- Adult content
- Cryptocurrency promotions
- Political messaging without proper authorization
- WhatsApp-related traffic (blocked)
Keywords that may trigger filtering: "casino," "poker," "bet now," "18+," "adult," "Bitcoin," "crypto," "vote," "WhatsApp," "click here" (with shortened URLs)
Content Filtering
Carrier Rules:
- Carriers block messages containing keywords related to restricted industries
- Use URLs from approved domains only
- 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
SMS Best Practices: Timing, Frequency, and Localization for Mali
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear calls-to-action
- Use formal language; avoid slang or colloquialisms
- Maintain consistent sender ID across campaigns
Sending Frequency and Timing
- Send maximum 3 messages per day per recipient
- Respect Ramadan and religious observances (including Eid al-Fitr, Eid al-Adha, Tabaski, and Mawlid)
- Avoid sending during major national holidays (Independence Day – September 22, Republic Day – November 19)
- Space out messages to prevent recipient fatigue
Localization
Primary languages: French (official) and Bambara (widely spoken)
| Encoding | Best for | Character Limit |
|---|---|---|
| GSM-7 | French (standard Latin characters) | 160 per message |
| UCS-2 | Bambara (special characters and diacritics) | 70 per message |
Localization Tips:
- Consider bilingual messages for important communications
- Use formal French for business communications
- Respect cultural nuances: emphasize family, community, and respect for elders
- Avoid direct sales pressure; build trust through informative content
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain clear opt-out records
- Include opt-out instructions in marketing messages
- Regularly audit opt-out list compliance
Testing and Monitoring
Test and monitor your SMS campaigns across all major carriers:
Key Metrics to Track:
- Delivery rate (aim for >95%)
- Opt-out rate (acceptable range: <2%)
- Message delivery time (average: 5–15 seconds)
- Bounce rate (should be <5%)
Testing Checklist:
- Test across Orange Mali and Malitel
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regularly test opt-out functionality
Common Delivery Issues:
- Low delivery rate: Check number formatting (+223), verify sender ID registration
- High bounce rate: Clean your contact list, remove invalid numbers
- Delayed delivery: Switch to off-peak hours, implement message queuing
SMS API Integration Guide: Twilio, MessageBird, Sinch & Plivo for Mali
Twilio
Twilio provides a robust SMS API supporting messages to Mali:
import { Twilio } from 'twilio';
// Initialize the client with your credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// 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 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
| Provider | Rate Limit | Burst Capacity | Recommended Batch Size |
|---|---|---|---|
| Twilio | 30 msg/sec | Up to 100 msg in 1 sec | 100–500 messages |
| Sinch | 50 msg/sec | Up to 150 msg in 1 sec | 100–1,000 messages |
| MessageBird | 25 msg/sec | Up to 75 msg in 1 sec | 50–500 messages |
| Plivo | 30 msg/sec | Up to 90 msg in 1 sec | 100–500 messages |
Throughput Best Practices:
- Use batch processing for volumes over 1,000/hour
- Implement exponential backoff for retry logic (1s, 2s, 4s, 8s)
- Queue messages during peak hours (10 AM – 2 PM local time)
- Distribute load across multiple API keys if sending >100,000 messages/day
Error Handling and Reporting
Implement robust error handling for reliable SMS delivery:
| Error Code | Meaning | Action |
|---|---|---|
| 400 | Invalid request (e.g., wrong number format) | Validate number format (+223); fix and retry |
| 401 | Authentication failed | Check API credentials; regenerate if needed |
| 429 | Rate limit exceeded | Implement exponential backoff; reduce send rate |
| 500 | Provider server error | Retry with exponential backoff (1s, 2s, 4s, 8s) |
| 21614 | Cannot route to number (e.g., landline) | Remove from contact list; do not retry |
Error Handling Checklist:
- Implement comprehensive logging for all API calls
- Monitor delivery receipts and track bounce rates
- Set up alerts for unusual error patterns (>5% error rate)
- Store message metadata for troubleshooting
- Implement automatic retry for temporary failures (500, 503 errors)
- Implement exponential backoff algorithm: wait = min(base_delay * (2 ^ retry_count), max_delay)
Frequently Asked Questions About Sending SMS to Mali
Does Mali support two-way SMS messaging?
No, Mali does not support two-way SMS through standard A2P channels. Design your messaging strategy around one-way communications for notifications, alerts, and marketing messages. For interactions requiring responses, direct users to a web portal, mobile app, or phone number.
How do I register a sender ID for Mali SMS?
Alphanumeric sender IDs do not require registration for general use, but Orange Mali requires registration for specific traffic types. Long codes and short codes require provisioning (1–2 business days for long codes, 4–6 weeks for short codes).
What are Mali's SMS compliance and consent requirements?
You must obtain explicit written or electronic consent before sending marketing messages, process opt-out requests within 24 hours, send messages only between 6:00 AM and 10:00 PM local time (GMT), and limit to 3 SMS messages per subscriber per day. Support STOP and HELP commands in French and local languages.
Which SMS API providers support sending messages to Mali?
Twilio, MessageBird, Sinch, and Plivo all provide reliable SMS delivery to Mali. Each supports alphanumeric sender IDs and proper formatting for Mali numbers (+223 country code). Choose based on your volume requirements and preferred API structure.
Is number portability available in Mali?
No, number portability is not available in Mali. Phone numbers remain tied to their original mobile network operator (Orange Mali or Malitel), which ensures reliable message routing.
Can I send MMS messages in Mali?
Mali does not directly support MMS. When you send MMS content, the system automatically converts it to SMS with an embedded URL where recipients view the multimedia content, ensuring compatibility across all devices.
What languages should I use for SMS in Mali?
Use French (official language) and Bambara (widely spoken local language) for maximum reach. Consider bilingual messages for important communications. Use appropriate character encoding (GSM-7 or UCS-2) to support local language characters.
How do I format phone numbers for Mali SMS?
Format Mali phone numbers with the +223 country code followed by the 8-digit subscriber number (e.g., +223 12345678). Ensure proper E.164 formatting in your API calls for reliable delivery.
Validation Pattern: ^\+223[0-9]{8}$
Example:
function isValidMaliNumber(phone: string): boolean {
return /^\+223[0-9]{8}$/.test(phone);
}What content is restricted for SMS in Mali?
Carriers block gambling and betting (except special connections), adult content, cryptocurrency promotions, unauthorized political messaging, and WhatsApp-related traffic. Avoid URL shorteners and excessive special characters to prevent filtering.
What is the SMS character limit in Mali?
Standard SMS limits apply: 160 characters for GSM-7 encoding, 70 characters for Unicode (UCS-2). Concatenated messages are supported, with message splitting occurring at these thresholds based on your chosen encoding.
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities:
- Obtain explicit consent before sending marketing messages
- Respect time restrictions (6 AM – 10 PM GMT)
- Honor opt-out requests within 24 hours
- Limit to 3 messages per subscriber per day
-
Technical Considerations:
- Use proper number formatting (+223 followed by 8 digits)
- Implement comprehensive error handling with exponential backoff
- Monitor delivery rates (target >95%)
-
Best Practices:
- Localize content (French and Bambara)
- Maintain consistent sender IDs across campaigns
- Test regularly across Orange Mali and Malitel
Next Steps
Follow this implementation roadmap:
| Step | Action | Timeline |
|---|---|---|
| 1 | Review AMRTP regulations at www.amrtp.ml | 1 week |
| 2 | Consult with local legal counsel for compliance | 1–2 weeks |
| 3 | Set up test accounts with preferred SMS providers | 1 day |
| 4 | Implement sender ID registration (if needed) | 1–2 business days |
| 5 | Build opt-in/opt-out management system | 1 week |
| 6 | Implement delivery monitoring and error handling | 1 week |
| 7 | Conduct pilot campaign with small audience | 1 week |
| 8 | Scale to full production | Ongoing |
Additional Resources
- AMRTP Guidelines: www.amrtp.ml/guidelines
- Orange Mali Developer Portal: developer.orange.com/mali
- SMS Best Practices Guide: www.gsma.com/mali
Frequently Asked Questions
What are the Mali SMS compliance requirements?
Explicit consent is required for marketing messages in Mali, and records of consent must be kept. Messages should be sent between 6 AM and 10 PM local time, and opt-out requests (STOP, ARRET, AIDE, HELP) must be honored within 24 hours. While Mali lacks a centralized Do Not Call list, businesses should maintain their own suppression lists.
How to send SMS messages to Mali?
Several SMS API providers like Twilio, Sinch, MessageBird, and Plivo offer services for sending messages to Mali. Remember to format numbers correctly (+223) and implement proper error handling and delivery monitoring. Consider batch processing for high-volume messaging and queueing during peak hours.
Why is two-way SMS not supported in Mali?
Two-way SMS is not supported through standard A2P channels in Mali. Businesses operating in Mali should design their messaging strategies to utilize primarily one-way SMS communication for optimal reach and effectiveness.
What is the primary mobile operator in Mali?
Orange Mali is the dominant mobile operator in Mali. While OTT apps are growing, SMS maintains wide reach due to device compatibility and reliability, particularly in rural areas where Android devices are prevalent.
How to format phone numbers for SMS in Mali?
Mali phone numbers should be formatted with the international dialing code +223 followed by the subscriber number. This ensures correct routing, especially when using SMS APIs for sending messages.
How to handle opt-outs for SMS in Mali?
Opt-out requests must be processed within 24 hours. Maintain clear opt-out records, include opt-out instructions in every marketing message, and regularly audit your opt-out list compliance.
Can I send SMS to landlines in Mali?
No, sending SMS messages to landline numbers in Mali is not supported. Attempts to do so will result in a failure response (400 error with code 21614), but no charges will be applied.
When should I send SMS messages in Mali?
The optimal time to send SMS messages in Mali is between 6:00 AM and 10:00 PM local time (GMT). Respect local holidays and religious observances, limiting messages to a maximum of 3 per subscriber per day.
What SMS sender ID types are available in Mali?
Mali supports alphanumeric sender IDs, long codes (domestic and international), and short codes. Long codes are ideal for transactional messages, while short codes are better for marketing campaigns.
What is the character limit for SMS in Mali?
Standard SMS length limits apply: 160 characters for GSM-7 encoding and 70 characters for Unicode. Concatenated messages are supported, but availability can vary depending on the sender ID type.
How are MMS messages handled in Mali?
MMS messages are not directly supported. MMS content sent to Mali is automatically converted to an SMS containing a URL where recipients can view the multimedia content online.
What content is restricted for SMS in Mali?
Restricted SMS content in Mali includes gambling and betting, adult content, cryptocurrency promotions, and political messaging without proper authorization. WhatsApp-related traffic is also blocked.
How to avoid SMS content filtering in Mali?
Avoid URL shorteners, use clear language, and avoid excessive special characters. Always include sender identification in the message content.
What are best practices for SMS marketing in Mali?
Localize content (French/Bambara), keep messages concise, include clear calls-to-action, and maintain consistent sender IDs. Respect local customs and ensure proper opt-out management.