sms compliance

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

How to Send SMS in Tunisia: Complete 2025 Guide to Regulations & API Setup

Learn how to send SMS in Tunisia with alphanumeric sender ID registration, INTT compliance, Ooredoo/Orange/Tunisie Telecom requirements, and API integration for Twilio, Sinch, MessageBird & Plivo.

Tunisia SMS Best Practices, Compliance, and Features

Understanding the Tunisia SMS Market

Locale name:Tunisia
ISO code:TN
RegionMiddle East & Africa
Mobile country code (MCC)605
Dialing Code+216

Tunisia has three major mobile operators: Ooredoo Tunisia, Orange Tunisia, and Tunisie Telecom. To send SMS in Tunisia successfully, you need to understand INTT regulations, register alphanumeric sender IDs (18-day process), and format numbers correctly using the +216 country code. While OTT messaging apps like WhatsApp and Facebook Messenger are popular, SMS remains critical for business communications, two-factor authentication, and transactional notifications. Android devices dominate the mobile market, with iOS maintaining a significant presence among urban users.

Key SMS Features and Capabilities in Tunisia

Tunisia supports standard SMS capabilities with alphanumeric sender IDs and international long codes. However, two-way SMS and number portability are not currently available.

Two-Way SMS Support

Tunisia does not support two-way SMS. You can only send one-way messages from businesses to consumers.

Alternatives for two-way communication:

  • WhatsApp Business API
  • Web-based response forms
  • Dedicated customer service phone lines

Concatenated Messages (Segmented SMS)

Concatenated messaging is not supported in Tunisia. Keep messages within standard SMS length limits:

  • GSM-7 encoding: Up to 160 characters
  • UCS-2 encoding (Arabic text): Up to 70 characters

What happens when you exceed limits:

Messages exceeding these character limits will be truncated or rejected. Test your messages across all carriers to verify delivery.

MMS Support

MMS messages automatically convert to SMS with an embedded URL link. You must host multimedia content separately.

Technical requirements for hosted content:

  • Maximum file size: 5 MB
  • Supported formats: JPEG, PNG, GIF, MP4
  • Use HTTPS for secure hosting
  • Optimize for mobile viewing
  • Use reliable, fast-loading servers

Recipient Phone Number Compatibility

Mobile Number Format

Format Tunisian mobile numbers in E.164 international format:

  • Format: +216 XX XXX XXX (country code +216 followed by 8 digits)
  • Total length: 12 characters including + symbol
  • Example: +21620123456

Mobile prefixes by operator:

OperatorPrefixes
Ooredoo Tunisia2X, 5X
Orange Tunisia2X, 5X
Tunisie Telecom2X, 9X

Validation regex:

regex
^\+216[2459]\d{7}$

Number Portability

Number portability is not available in Tunisia. Mobile numbers remain tied to their original carrier.

Implications: You can reliably identify the carrier from the number prefix, simplifying message routing and operator-specific targeting.

Sending SMS to Landlines

You cannot send SMS to landline numbers in Tunisia. Attempts will fail with error code 21614.

Landline prefixes to avoid:

Landlines start with 7 after the country code (+2167X XXX XXX).

Pre-validation example:

typescript
function isTunisianMobile(number: string): boolean {
  return /^\+216[2459]\d{7}$/.test(number);
}

Tunisia SMS Compliance: INTT Regulations and Requirements

The Instance Nationale des Télécommunications (INTT) regulates Tunisia's telecommunications sector under Law No. 2001-1 of January 15, 2001. Follow general telecommunications laws and international messaging best practices.

Obtain clear, documented opt-in consent before sending marketing messages:

  • Obtain explicit consent through web forms or checkboxes
  • Maintain detailed records of when and how you obtained consent
  • Include clear terms of service and privacy policy references
  • Specify message types and frequency
  • Retain consent records for at least 2 years

Example consent checkbox:

html
<input type="checkbox" id="sms-consent" required>
<label for="sms-consent">
  I agree to receive marketing messages from [Company Name] at the frequency specified in the <a href="/terms">Terms of Service</a>.
</label>

HELP/STOP and Other Commands

Implement standard opt-out mechanisms supporting both Arabic and French:

STOP keywords:

  • Arabic: إيقاف, توقف, إلغاء
  • French: ARRÊT, STOP, ANNULER

HELP keywords:

  • Arabic: مساعدة, مساعده
  • French: AIDE, HELP

Requirements:

  • Process opt-out requests within 24 hours
  • Send confirmation messages in the user's preferred language

Example confirmation message:

Arabic: تم إلغاء اشتراكك بنجاح. لن تتلقى المزيد من الرسائل. French: Votre désinscription est confirmée. Vous ne recevrez plus de messages.

Do Not Call / Do Not Disturb Registries

Tunisia does not maintain an official Do Not Call registry. Maintain your own suppression lists:

  • Store opt-outs in a dedicated database table
  • Check against suppression lists before every send
  • Honor opt-out requests immediately
  • Remove unengaged users quarterly
  • Back up suppression lists regularly

Time Zone Sensitivity

Tunisia observes UTC+1. Send messages between 9:00 AM and 8:00 PM local time.

Avoid sending during prayer times:

  • Fajr: 5:00 AM – 6:00 AM
  • Dhuhr: 12:00 PM – 1:00 PM
  • Asr: 3:30 PM – 4:30 PM
  • Maghrib: 6:00 PM – 7:00 PM
  • Isha: 7:30 PM – 8:30 PM

Major religious holidays:

  • Eid al-Fitr (end of Ramadan)
  • Eid al-Adha
  • Mawlid (Prophet's Birthday)
  • Islamic New Year

Timezone conversion example:

typescript
import { DateTime } from 'luxon';

function isSafeToSend(): boolean {
  const tunisiaTime = DateTime.now().setZone('Africa/Tunis');
  const hour = tunisiaTime.hour;
  return hour >= 9 && hour < 20;
}

Tunisia Phone Number Options and SMS Sender ID Types

Alphanumeric Sender ID

Operator network capability: Fully supported Registration requirements: Pre-registration required for domestic use, not required for international Sender ID preservation: Yes, sender IDs are preserved as registered Provisioning time: Approximately 18 days for domestic registration

Registration process:

  1. Submit sender ID (3–11 characters) through your SMS provider
  2. Provide business documentation and registration details
  3. Describe use cases and sample message content
  4. Wait approximately 18 days for approval
  5. Once approved, sender ID works across all operators

Long Codes

Domestic vs. International:

  • Domestic long codes: Not supported
  • International long codes: Fully supported
  • International sender IDs are overwritten with generic alphanumeric IDs (e.g., "InfoSMS")

Sender ID preservation: No preservation for international long codes Provisioning time: Immediate for international long codes Use cases: Ideal for transactional messages and two-factor authentication

Short Codes

Short codes are not currently supported in Tunisia.

Alternatives for high-volume campaigns:

  • Use registered alphanumeric sender IDs
  • Implement batch sending with rate limiting
  • Use multiple long codes for load distribution

Restricted SMS Content, Industries, and Use Cases

Restricted Industries and Content:

  • Gambling and betting services
  • Adult content or services
  • Unauthorized financial services (unlicensed banking, loans, investment schemes)
  • Political campaign messages without INTT authorization
  • Cryptocurrency promotions
  • Tobacco and alcohol advertising

Content Filtering

Carrier Filtering Rules:

  • Carriers automatically block messages containing restricted keywords
  • URLs may trigger additional scrutiny
  • High-frequency messaging patterns (>10 messages/minute to single recipient) may be filtered

Best Practices to Avoid Filtering:

  • Avoid URL shorteners in messages
  • Use clear, professional language
  • Maintain consistent sending patterns
  • Include clear sender identification
  • Avoid excessive punctuation and all-caps text

If messages are blocked:

  1. Contact your SMS provider to review filtering logs
  2. Revise message content to remove potential triggers
  3. Request carrier whitelisting if appropriate
  4. Implement gradual sending ramp-up for new campaigns

Best Practices for Sending SMS in Tunisia

Messaging Strategy

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

Example effective message:

Ahmed, your appointment is confirmed for Jan 15 at 2:00 PM. Reply CONFIRM or call 71-234-5678.

Avoid ineffective messages:

URGENT!!! LIMITED TIME OFFER!!! CLICK HERE NOW!!!

Sending Frequency and Timing

  • Limit marketing messages to 2–4 per month per recipient
  • Avoid sending during religious holidays
  • Space out messages to prevent recipient fatigue
  • Monitor engagement rates to optimize timing

Transactional messages: No strict frequency limits, but use appropriate rate limiting (1–2 messages per transaction).

Calculate engagement rate:

typescript
const engagementRate = (clicks + responses) / deliveredMessages * 100;
// Target: >15% for marketing, >80% for transactional

Localization

  • Support both Arabic and French languages
  • Use local date and time formats
  • Consider cultural sensitivities in message content
  • Offer language preference selection

Arabic text direction (RTL) handling:

html
<div dir="rtl" lang="ar">
  مرحبا أحمد، موعدك مؤكد ليوم 15 يناير الساعة 2:00 مساءً
</div>

Local date/time formats:

  • Date: DD/MM/YYYY (15/01/2025)
  • Time: 24-hour format (14:00) or 12-hour with ص/م (2:00 م)

Opt-Out Management

  • Process opt-outs within 24 hours
  • Send opt-out confirmation messages
  • Maintain opt-out records for at least 6 months
  • Regularly audit opt-out list compliance

Re-opt-in handling:

Allow users to re-opt-in through explicit action (web form, keyword opt-in). Require double opt-in confirmation to ensure intent.

Testing and Monitoring

  • Test messages across all major carriers
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Run regular A/B testing of message content
  • Monitor and analyze failure rates

Healthy campaign metrics:

  • Delivery rate: >95%
  • Engagement rate: >15% (marketing), >80% (transactional)
  • Opt-out rate: <2% per campaign
  • Bounce rate: <3%

Troubleshooting common issues:

IssuePossible CauseSolution
Low delivery rateInvalid numbersValidate with regex before sending
High bounce rateLandline numbersFilter out +2167X numbers
Filtered messagesRestricted keywordsReview content, avoid URL shorteners
No delivery receiptsWebhook misconfiguredVerify webhook endpoint and SSL

Tunisia SMS API Integration: Twilio, Sinch, MessageBird & Plivo

Twilio

Twilio provides a robust SMS API with comprehensive support for Tunisia. Get 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 Tunisia
async function sendSMSToTunisia(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure phone number is in E.164 format for Tunisia (+216)
    const formattedNumber = to.startsWith('+216') ? to : `+216${to}`;

    const response = await client.messages.create({
      body: message,
      from: senderId, // Alphanumeric sender ID
      to: formattedNumber,
    });

    console.log(`Message sent successfully! SID: ${response.sid}`);
  } catch (error) {
    if (error.code === 21614) {
      console.error('Cannot send to landline number');
    } else if (error.code === 21211) {
      console.error('Invalid phone number');
    } else {
      console.error('Error sending message:', error);
    }
    throw error;
  }
}

Delivery receipt webhook example:

typescript
app.post('/delivery-status', (req, res) => {
  const { MessageSid, MessageStatus, ErrorCode } = req.body;

  console.log(`Message ${MessageSid}: ${MessageStatus}`);
  if (ErrorCode) {
    console.error(`Error: ${ErrorCode}`);
  }

  res.sendStatus(200);
});

Sinch

Sinch offers a straightforward REST API for sending SMS to Tunisia, with support for both text and binary 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,
        },
        {
          headers: {
            'Content-Type': 'application/json',
            Authorization: `Bearer ${this.apiToken}`,
          },
        }
      );

      console.log('Message sent:', response.data.id);
    } catch (error) {
      console.error('Sinch SMS error:', error);
      throw error;
    }
  }

  async sendBatchSMS(recipients: string[], message: string): Promise<void> {
    const response = await axios.post(
      `${this.baseUrl}/${this.serviceId}/batches`,
      {
        from: 'YourSenderID',
        to: recipients,
        body: message,
      },
      {
        headers: {
          'Content-Type': 'application/json',
          Authorization: `Bearer ${this.apiToken}`,
        },
      }
    );

    // Response structure: { id, to, from, created_at, modified_at, delivery_report }
    console.log('Batch sent:', response.data.id);
  }
}

MessageBird

MessageBird provides a feature-rich API with strong delivery rates in Tunisia.

typescript
import { MessageBird } from 'messagebird';

class MessageBirdService {
  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-url.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);
          resolve();
        }
      });
    });
  }
}

Webhook handler implementation:

typescript
app.post('/delivery-reports', (req, res) => {
  const { id, status, statusDatetime, recipient } = req.body;

  // Delivery report structure: { id, reference, status, statusDatetime, recipient }
  console.log(`Delivery to ${recipient}: ${status} at ${statusDatetime}`);

  res.sendStatus(200);
});

Plivo

Plivo offers reliable SMS delivery to Tunisia with detailed delivery reporting.

typescript
import plivo from 'plivo';

class PlivoSMSService {
  private client: plivo.Client;

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

  async sendSMS(
    to: string,
    message: string,
    senderId: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: senderId,
        dst: to,
        text: message,
        url_strip_query_params: false,
      });

      console.log('Plivo message sent:', response);
    } catch (error) {
      console.error('Plivo error:', error);
      throw error;
    }
  }
}

API Rate Limits and Throughput

Provider-specific rate limits:

ProviderDefault Rate LimitBurst LimitRecommended Batch Size
Twilio100 msg/sec200 msg/sec1,000 messages
Sinch150 msg/sec300 msg/sec1,500 messages
MessageBird100 msg/sec150 msg/sec1,000 messages
Plivo200 msg/sec400 msg/sec2,000 messages

Exponential backoff example:

typescript
async function sendWithRetry(
  sendFunc: () => Promise<void>,
  maxRetries: number = 3
): Promise<void> {
  for (let i = 0; i < maxRetries; i++) {
    try {
      await sendFunc();
      return;
    } catch (error) {
      if (i === maxRetries - 1) throw error;

      const delay = Math.pow(2, i) * 1000;
      console.log(`Retry ${i + 1} after ${delay}ms`);
      await new Promise(resolve => setTimeout(resolve, delay));
    }
  }
}

Queue architecture recommendations:

  • Use Redis or RabbitMQ for message queuing
  • Implement priority queues (transactional > marketing)
  • Set rate limits per carrier and API provider
  • Monitor queue depth and processing time

Error Handling and Reporting

Implement comprehensive logging for all API responses:

Common error codes:

Error CodeDescriptionSolution
21614Landline numberValidate mobile prefixes before sending
21211Invalid phone numberUse E.164 format validation
21408Unsubscribed numberCheck suppression list before sending
30003Unreachable destinationVerify carrier coverage
30005Unknown destinationValidate number format and carrier
429Rate limit exceededImplement exponential backoff
503Service unavailableRetry with exponential backoff

Logging framework recommendations:

  • Use structured logging (Winston, Pino, Bunyan)
  • Log message ID, recipient, status, timestamp, and error codes
  • Set up alerts for error rate thresholds (>5%)
  • Archive logs for at least 90 days for compliance

Frequently Asked Questions (FAQ)

How do I send SMS to Tunisia mobile numbers?

To send SMS to Tunisia, follow these steps: 1) Format mobile numbers in E.164 international format (+216XXXXXXXX), 2) Register an alphanumeric sender ID with your SMS provider (18-day process for domestic use), 3) Ensure numbers use correct mobile prefixes (2, 4, 5, 9 after +216), 4) Choose an SMS API provider like Twilio, Sinch, MessageBird, or Plivo with Tunisia support, and 5) Obtain explicit opt-in consent before sending marketing messages to comply with INTT regulations.

What is the alphanumeric sender ID registration process for Tunisia?

Alphanumeric sender ID registration in Tunisia requires approximately 18 days for domestic provisioning. Pre-register sender IDs for domestic use through your SMS provider (international use does not require registration). Submit your sender ID (typically 3–11 characters), business documentation, use case details, and sample message content. Once approved, your sender ID will be preserved across Ooredoo Tunisia, Orange Tunisia, and Tunisie Telecom networks.

If registration is rejected: Review feedback from the provider, revise your documentation or sender ID, and resubmit. Common rejection reasons include unclear use cases, inappropriate sender names, or incomplete documentation.

What are the SMS compliance requirements in Tunisia?

SMS compliance in Tunisia is regulated by the Instance Nationale des Télécommunications (INTT). Requirements include: obtaining clear, documented opt-in consent before sending marketing messages, maintaining detailed records of when and how you obtained consent, including clear terms of service and privacy policy references, processing opt-out requests within 24 hours, respecting sending time restrictions (9:00 AM – 8:00 PM local time), supporting STOP commands in Arabic and French (إيقاف/ARRÊT), and avoiding messages during prayer times and religious holidays.

What mobile number prefixes do Tunisian operators use?

Tunisian mobile operators use specific prefixes as the first digit after country code +216: Ooredoo Tunisia uses primarily 2X and 5X prefixes, Orange Tunisia uses primarily 2X and 5X prefixes, and Tunisie Telecom uses primarily 2X and 9X prefixes. All numbers follow E.164 format with country code +216 followed by 8 digits. Number portability is not available, so mobile numbers remain tied to their original carrier. Always validate numbers match these prefixes before sending.

Can I send two-way SMS in Tunisia?

No, two-way SMS is not supported in Tunisia. You can only send messages one-way from businesses to consumers through standard A2P SMS channels. For two-way communication, consider alternative channels like WhatsApp Business API, web-based forms, or dedicated customer service numbers. All SMS campaigns in Tunisia are effectively one-way broadcast communications.

Does Tunisia support concatenated or long SMS messages?

No, concatenated messaging (segmented SMS) is not supported in Tunisia. Keep messages within standard SMS length limits: GSM-7 encoding allows up to 160 characters, while UCS-2 encoding (for Arabic text) allows up to 70 characters per message. Messages exceeding these limits may be truncated or rejected. Plan your message content accordingly and test across all three major carriers.

What content is restricted in Tunisian SMS campaigns?

Tunisia restricts SMS content in gambling and betting services, adult content or services, unauthorized financial services, political campaign messages without proper authorization, cryptocurrency promotions, and tobacco and alcohol advertising. Carriers automatically block messages containing restricted keywords. Use clear, professional language, maintain consistent sending patterns, avoid URL shorteners, and include clear sender identification to prevent filtering.

What are the best times to send SMS in Tunisia?

Send SMS in Tunisia between 9:00 AM and 8:00 PM local time (UTC+1). Avoid messages during prayer times, respect religious holidays particularly during Ramadan, and limit non-essential messages during weekends (Friday–Saturday). For marketing messages, limit frequency to 2–4 per month per recipient. Transactional messages and two-factor authentication can be sent 24/7, but test timing based on your audience's engagement patterns.

Recap and Additional Resources

Key Takeaways

  1. Compliance Priorities

    • Obtain explicit opt-in consent with checkbox forms
    • Retain consent records for at least 2 years
    • Process opt-out requests within 24 hours
    • Support Arabic and French STOP/HELP keywords
  2. Technical Considerations

    • Use E.164 format: +216[2459]XXXXXXX
    • Validate numbers with regex: ^\+216[2459]\d{7}$
    • Avoid landline prefixes (+2167X)
    • Implement exponential backoff for retries
  3. Best Practices

    • Register alphanumeric sender IDs (18-day process)
    • Send between 9:00 AM – 8:00 PM UTC+1
    • Avoid prayer times and religious holidays
    • Test across Ooredoo, Orange, and Tunisie Telecom
    • Monitor delivery rates >95%, opt-out rates <2%

Next Steps

  1. Review INTT regulations (1–2 days)

    • Read Law No. 2001-1 of January 15, 2001
    • Review Digital Economy Guidelines (2020)
  2. Consult legal counsel for compliance verification (1–2 weeks)

    • Review consent collection mechanisms
    • Verify opt-out handling procedures
  3. Set up test accounts with preferred SMS providers (1 day)

    • Register with Twilio, Sinch, MessageBird, or Plivo
    • Configure API credentials and webhooks
  4. Implement monitoring and reporting systems (1–2 weeks)

    • Set up structured logging
    • Configure delivery rate alerts
    • Create compliance audit reports

Additional Resources

Industry Resources:

  • Telecommunications Law No. 2001-1 of January 15, 2001 (available at INTT offices)
  • Digital Economy Guidelines (2020) (download from INTT website)
  • National Digital Transformation Strategy 2025 (available at Ministry of Communication Technologies)

Country-Specific SMS Guides:

SMS API Integration Tutorials:

Compliance & Best Practices:

Technical Documentation: