sms compliance

Sent logo
Sent TeamMar 8, 2026 / sms compliance / Article

Benin SMS Guide

Explore Benin SMS: compliance (ARCEP), features, & best practices. Supports 2-way SMS, concatenated messages (160 GSM-7 chars), but not landlines. Mandates double opt-in, STOP/HELP commands, & 8 AM-5 PM GMT+1 sending window. Alphanumeric sender ID pre-registration required.

Benin SMS Best Practices, Compliance, and Features

Benin SMS Market Overview

Locale name:Benin
ISO code:BJ
RegionWest Africa
Mobile country code (MCC)616
Dialing Code+229

Market Conditions: Benin's mobile market is dominated by three major operators: MTN Benin, Moov Benin, and Glo Benin. 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 dominate the market with over 85% market share, while iOS devices represent a smaller segment primarily in urban centers.


Key SMS Features and Capabilities in Benin

Benin supports standard SMS features including two-way messaging, concatenation, and delivery receipts, with specific regulatory requirements around sender identification and message content.

Two-way SMS Support

Two-way SMS is fully supported in Benin across all major carriers. You can implement interactive messaging campaigns, though you'll need to ensure compliance with ARCEP guidelines for commercial messaging interactions.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenated messages are fully supported across all major carriers in Benin.
Message length rules: Standard 160 characters for single SMS using GSM-7 encoding, or 70 characters for Unicode. Messages exceeding these limits are automatically segmented into multiple parts.
Encoding considerations: GSM-7 is recommended for standard Latin alphabet messages to maximize character limit. UCS-2 encoding is supported for messages containing special characters or local language content, though this reduces the per-message character limit.

MMS Support

MMS messages are not universally supported across all carriers in Benin. When sending rich media content, it's recommended to send an SMS with a URL link to the content hosted online. This ensures better deliverability and user experience across all device types.

Recipient Phone Number Compatibility

Number Portability

Number portability is currently being implemented in Benin as part of the transition to 10-digit numbers by December 2024. During this transition period, both 8-digit and 10-digit numbers are supported, but after December 29, 2024, only 10-digit numbers will be valid.

Sending SMS to Landlines

SMS to landline numbers is not supported in Benin. Attempts to send SMS to landline numbers will result in delivery failure, and you should filter out landline numbers from your recipient lists to maintain good delivery rates.

Compliance and Regulatory Guidelines for SMS in Benin

SMS communications in Benin are regulated by the Autorit?? de R??gulation des Communications ??lectroniques et de la Poste (ARCEP). All SMS marketing and commercial communications must comply with ARCEP guidelines and local data protection regulations. The regulatory framework emphasizes consumer protection and transparent communication practices.

Double Opt-In Requirement: Benin regulations mandate implementing a double opt-in workflow for all marketing communications. You must:

  • Obtain explicit written consent before sending any commercial messages
  • Store consent records for a minimum of 18 months
  • Maintain detailed timestamp records of when and how consent was obtained
  • Document the specific services or message types the user agreed to receive

HELP/STOP and Other Commands

All SMS campaigns must support the following commands:

  • STOP: Immediate opt-out (required in both French and English)
  • AIDE/HELP: Information about the service
  • INFO: Service details and contact information

Messages should be processed in both French and local languages, with STOP commands taking effect immediately upon receipt.

Do Not Call / Do Not Disturb Registries

While Benin does not maintain a centralized Do Not Call registry, operators recommend:

  • Maintaining your own suppression lists
  • Conducting monthly verification of opt-out requests
  • Implementing immediate STOP request processing
  • Keeping records of opt-out requests for at least 18 months

Time Zone Sensitivity

ARCEP mandates specific time restrictions for commercial SMS:

  • Permitted Hours: 8:00 AM to 5:00 PM (GMT+1)
  • Restricted Days: No promotional messages on Sundays and public holidays
  • Emergency Messages: Time restrictions don't apply to critical service updates or emergency notifications

Phone Numbers Options and SMS Sender Types for in Benin

Alphanumeric Sender ID

Operator network capability: Fully supported across all major networks
Registration requirements: Pre-registration required with ARCEP; must submit company documentation
Sender ID preservation: Displayed as registered, maximum 11 characters allowed

Long Codes

Domestic vs. International: Both supported, with preference for domestic numbers
Sender ID preservation: Original sender ID preserved across all major carriers
Provisioning time: 3-5 business days for domestic, 5-7 for international
Use cases: Ideal for two-way communication, customer support, and transactional messages

Short Codes

Support: Available through major carriers
Provisioning time: 4-6 weeks for approval and activation
Use cases: Best for high-volume campaigns, marketing messages, and time-sensitive notifications


Restricted SMS Content, Industries, and Use Cases

Prohibited content includes:

  • Gambling and betting services
  • Adult content or explicit material
  • Unauthorized financial services
  • Political campaign messages without proper authorization
  • Pharmaceutical promotions without regulatory approval

Content Filtering

Carrier filtering rules target:

  • URLs from suspicious domains
  • Keywords associated with restricted industries
  • High-frequency messaging patterns
  • Messages containing specific restricted terms

To avoid filtering:

  • Use approved sender IDs
  • Maintain consistent sending patterns
  • Avoid URL shorteners in messages
  • Include clear company identification

Best Practices for Sending SMS in Benin

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear call-to-actions
  • Personalize messages using recipient's name or relevant details
  • Maintain consistent branding across campaigns

Sending Frequency and Timing

  • Limit to 4-5 messages per month per recipient
  • Respect local holidays and cultural events
  • Avoid sending during prayer times on Fridays
  • Space out messages to prevent recipient fatigue

Localization

  • Primary languages: French (official), Fon, Yoruba
  • Consider bilingual messages for important communications
  • Use local date and time formats
  • Respect cultural sensitivities in message content

Opt-Out Management

  • Process opt-outs within 24 hours
  • Send confirmation of opt-out completion
  • Maintain separate opt-out lists for different types of messages
  • Regular audit of opt-out compliance

Testing and Monitoring

  • Test across MTN, Moov, and Glo networks
  • Monitor delivery rates by carrier
  • Track engagement metrics and opt-out rates
  • Regular testing of opt-out functionality

SMS API integrations for Benin

Twilio

Twilio provides a robust SMS API with specific support for Benin's messaging requirements. Integration requires your Account SID and Auth Token from the Twilio Console.

typescript
import { Twilio } from 'twilio';

// Initialize Twilio client
const client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);

// Function to send SMS to Benin
async function sendSMSToBenin(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Validate Benin phone number format
    const beninNumberRegex = /^\+229[0-9]{8,10}$/;
    if (!beninNumberRegex.test(to)) {
      throw new Error('Invalid Benin phone number format');
    }

    // Send message with proper parameters
    const response = await client.messages.create({
      body: message,
      from: senderId,  // Registered alphanumeric sender ID
      to: to,
      // Set statusCallback for delivery tracking
      statusCallback: 'https://your-webhook.com/status'
    });

    console.log(`Message sent successfully! SID: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

Sinch

Sinch offers direct carrier connections in Benin with support for both transactional and promotional messages.

typescript
import axios from 'axios';

class SinchSMSClient {
  private readonly apiToken: string;
  private readonly serviceId: string;
  private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';

  constructor(apiToken: string, serviceId: string) {
    this.apiToken = apiToken;
    this.serviceId = serviceId;
  }

  async sendSMS(to: string, message: string): Promise<void> {
    try {
      const response = await axios.post(
        `${this.baseUrl}/${this.serviceId}/batches`,
        {
          from: 'YourBrand', // Registered sender ID
          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 in Benin with support for delivery receipts and Unicode messages.

typescript
import { MessageBird } from 'messagebird';

class MessageBirdClient {
  private client: MessageBird;

  constructor(apiKey: string) {
    this.client = new MessageBird(apiKey);
  }

  async sendSMS(
    recipient: string,
    message: string,
    senderId: string
  ): Promise<void> {
    const params = {
      originator: senderId,
      recipients: [recipient],
      body: message,
      reportUrl: 'https://your-webhook.com/delivery-reports'
    };

    return new Promise((resolve, reject) => {
      this.client.messages.create(params, (err, response) => {
        if (err) {
          console.error('MessageBird error:', err);
          reject(err);
        } else {
          console.log('Message sent:', response.id);
          resolve();
        }
      });
    });
  }
}

Plivo

Plivo offers competitive rates for SMS delivery to Benin with support for high-volume messaging.

typescript
import plivo from 'plivo';

class PlivoSMSClient {
  private client: plivo.Client;

  constructor(authId: string, authToken: string) {
    this.client = new plivo.Client(authId, authToken);
  }

  async sendSMS(
    destination: string,
    message: string,
    senderId: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: senderId,
        dst: destination,
        text: message,
        // Benin-specific parameters
        powerpack_uuid: 'your-powerpack-uuid', // If using Powerpack
        url: 'https://your-webhook.com/delivery-status'
      });

      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: Maximum 1000 numbers per request
  • Daily sending quota: Based on account level and carrier agreements

Throughput Management Strategies:

  • Implement exponential backoff for retry logic
  • Use queue systems (Redis/RabbitMQ) for high-volume sending
  • Monitor carrier capacity in real-time

Error Handling and Reporting

  • Implement comprehensive logging with Winston or Bunyan
  • Track delivery receipts via webhooks
  • Monitor carrier-specific error codes
  • Maintain error logs for compliance reporting

Recap and Additional Resources

Key Takeaways:

  • Implement double opt-in for all marketing messages
  • Respect sending windows (8 AM - 5 PM GMT+1)
  • Maintain proper consent records for 18 months
  • Support both 8-digit and 10-digit number formats during transition

Next Steps:

  1. Review ARCEP guidelines for SMS messaging
  2. Implement proper consent management systems
  3. Set up delivery receipt monitoring
  4. Test message delivery across all major carriers

Additional Information:

Industry Resources:

  • Mobile Operator Guidelines: MTN, Moov, Glo
  • GSMA Messaging Guidelines
  • A2P SMS Best Practices Guide