sms compliance

Sent logo
Sent TeamMay 3, 2025 / sms compliance / Article

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
RegionMiddle 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)

FeatureDetails
SupportYes, with availability varying by sender ID type
Message length rules160 characters for GSM-7 encoding, 70 characters for Unicode
Encoding considerationsGSM-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.

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:

CommandFrenchPurpose
STOPARRETOpt out of messages
HELPAIDERequest 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

FeatureDetails
Operator network capabilitySupported
Registration requirementsNot required for general use; Orange requires registration for specific traffic types
Sender ID preservationYes – sender IDs preserve as specified

Long Codes

FeatureDetails
Domestic vs. InternationalBoth supported
Sender ID preservationYes for domestic, No for international
Provisioning time1–2 business days
Use casesTransactional messages and two-factor authentication

Short Codes

FeatureDetails
SupportSupported
Provisioning time4–6 weeks
Use casesHigh-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)

EncodingBest forCharacter Limit
GSM-7French (standard Latin characters)160 per message
UCS-2Bambara (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:

typescript
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:

typescript
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:

typescript
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:

typescript
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

ProviderRate LimitBurst CapacityRecommended Batch Size
Twilio30 msg/secUp to 100 msg in 1 sec100–500 messages
Sinch50 msg/secUp to 150 msg in 1 sec100–1,000 messages
MessageBird25 msg/secUp to 75 msg in 1 sec50–500 messages
Plivo30 msg/secUp to 90 msg in 1 sec100–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 CodeMeaningAction
400Invalid request (e.g., wrong number format)Validate number format (+223); fix and retry
401Authentication failedCheck API credentials; regenerate if needed
429Rate limit exceededImplement exponential backoff; reduce send rate
500Provider server errorRetry with exponential backoff (1s, 2s, 4s, 8s)
21614Cannot 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).

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:

typescript
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

  1. 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
  2. Technical Considerations:

    • Use proper number formatting (+223 followed by 8 digits)
    • Implement comprehensive error handling with exponential backoff
    • Monitor delivery rates (target >95%)
  3. 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:

StepActionTimeline
1Review AMRTP regulations at www.amrtp.ml1 week
2Consult with local legal counsel for compliance1–2 weeks
3Set up test accounts with preferred SMS providers1 day
4Implement sender ID registration (if needed)1–2 business days
5Build opt-in/opt-out management system1 week
6Implement delivery monitoring and error handling1 week
7Conduct pilot campaign with small audience1 week
8Scale to full productionOngoing

Additional Resources

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.