sms compliance

Sent logo
Sent TeamMar 8, 2026 / sms compliance / Sri Lanka

Send SMS to Sri Lanka: Complete Guide to TRCSL Regulations & Sender ID

Learn how to send SMS to Sri Lanka with proper alphanumeric sender ID registration, TRCSL compliance, Dialog/Mobitel/Hutch operator requirements, and API integration for marketing and transactional messages.

Sri Lanka SMS Best Practices, Compliance, and Features

Sri Lanka SMS Market Overview

Locale name:Sri Lanka
ISO code:LK
RegionAsia
Mobile country code (MCC)413
Dialing Code+94

Market Conditions: Sending SMS to Sri Lanka requires understanding the robust mobile telecommunications market with 29.3 million active cellular mobile connections as of early 2025, equivalent to 127% mobile penetration (multiple connections per person are common). The country has several major mobile operators including Dialog (market leader with 50%+ share), Mobitel (24% market share), and Hutch. While OTT messaging apps like WhatsApp and Viber are popular, SMS remains a critical communication channel, especially for business communications and authentication purposes. Internet penetration stands at 53.6% (12.4 million users), while smartphone adoption is strong with approximately 90% of mobile users on Android devices.

SMS Features and Capabilities for Sri Lanka

Sri Lanka supports standard SMS features including concatenated messaging and alphanumeric sender IDs. Two-way SMS functionality is not available.

Two-Way SMS Support

You cannot receive replies through standard A2P SMS channels in Sri Lanka. Major SMS providers don't support two-way messaging.

Alternative Communication Methods:

  • WhatsApp Business API for two-way messaging
  • Web-based response forms with unique tracking codes in SMS
  • Dedicated customer service phone lines for voice responses
  • Email response options included in SMS messages

Concatenated Messages (Segmented SMS)

Support: Concatenated messaging is fully supported, though availability varies by sender ID type.

Message length rules: Messages split after 160 characters for GSM-7 encoding or 70 characters for UCS-2 (Unicode).

Segmentation and Billing Examples:

  • 161-character English message: Splits into 2 segments of 153 characters each (7 characters reserved for concatenation headers). You're charged for 2 SMS segments.
  • 71-character Sinhala/Tamil message: Splits into 2 segments of 67 characters each. You're charged for 2 SMS segments.
  • 200-character English message: 2 segments × $0.30-0.38/segment = $0.60-0.76 total cost.

Encoding considerations: GSM-7 encoding allows 160 characters per segment. UCS-2 (for Sinhala and Tamil) limits segments to 70 characters. You're billed separately for each segment in a concatenated message. Learn more about SMS character encoding and message segmentation.

MMS Support

Sri Lanka doesn't support MMS messages directly. MMS content automatically converts to SMS with an embedded URL where recipients view the multimedia content.

Sri Lankan Mobile Number Format and Validation

Mobile Number Format

Sri Lankan mobile numbers must be formatted in E.164 international format for SMS delivery:

  • Format: +94 XX XXX XXXX (country code +94 followed by 9 digits)
  • Mobile prefixes: 70-78 (major operators)
    • Dialog: 76, 77
    • Mobitel: 71, 72
    • Hutch: 76, 78
    • Airtel: 70, 75
  • Total length: 12 characters including + symbol
  • Example: +94771234567

Number Portability

Sri Lanka doesn't offer number portability. Mobile numbers remain tied to their original carrier, simplifying message routing and delivery.

Sending SMS to Landlines

You cannot send SMS to landline numbers. Attempts to message landlines result in failed delivery with an error response (400 error code 21614) from the SMS API. Failed attempts won't appear in logs or incur charges.

Phone Number Validation Methods:

  • Use phone number validation APIs (Twilio Lookup, Plivo Lookup) to verify mobile numbers before sending
  • Check that numbers start with mobile prefixes (70-78)
  • Validate E.164 format before submission
  • Maintain a suppression list of known landline numbers

TRCSL Compliance and Regulatory Guidelines for SMS

The Telecommunications Regulatory Commission of Sri Lanka (TRCSL) regulates SMS communications under the Sri Lanka Telecommunications Act No. 25 of 1991 as amended. Comply with local telecommunications laws and data protection regulations when sending commercial SMS messages to Sri Lanka.

Enforcement and Penalties: TRCSL enforces compliance through license suspensions, financial penalties, and service restrictions. While specific penalty amounts aren't publicly disclosed, violations can result in service disruption and legal action. Failing to register sender IDs may result in message blocking by carriers.

Key Regulatory Bodies:

  • TRCSL: Telecommunications Regulatory Commission of Sri Lanka – primary regulator
  • CBSL: Central Bank of Sri Lanka – financial services messaging approval
  • IRCSL: Insurance Regulatory Commission of Sri Lanka – insurance communications
  • Personal Data Protection: Comprehensive data protection legislation is under development. Follow international best practices for data handling and consent management.

Explicit Consent Requirements:

  • Obtain written or electronic consent before sending marketing messages
  • Maintain consent records and keep them easily accessible
  • Clearly state the purpose of communication during opt-in
  • Use double opt-in for marketing campaigns (recommended)

Best Practices for Documentation:

  • Store timestamp and source of consent
  • Maintain detailed records of opt-in methods
  • Keep consent logs for a minimum of 2 years
  • Document the specific services or message types users agreed to receive

HELP/STOP and Other Commands

  • All marketing messages must include clear opt-out instructions
  • STOP command must be supported in English
  • Local language keywords (Sinhala and Tamil) should also be supported
  • Common keywords to support:
    • STOP/UNSUBSCRIBE
    • HELP
    • INFO
    • නවත්වන්න (Sinhala for STOP)
    • நிறுத்து (Tamil for STOP)

Keyword Processing Implementation:

typescript
// Example keyword handler
function processInboundKeyword(message: string, phoneNumber: string): void {
  const normalized = message.trim().toUpperCase();
  const stopKeywords = ['STOP', 'UNSUBSCRIBE', 'නවත්වන්න', 'நிறுத்து'];
  const helpKeywords = ['HELP', 'INFO', 'උදව්', 'உதவி'];

  if (stopKeywords.some(kw => normalized.includes(kw))) {
    addToSuppressionList(phoneNumber);
    sendConfirmation(phoneNumber, 'You have been unsubscribed.');
  } else if (helpKeywords.some(kw => normalized.includes(kw))) {
    sendHelpInfo(phoneNumber);
  }
}

Learn more about implementing SMS opt-out management best practices.

Do Not Call / Do Not Disturb Registries

Sri Lanka doesn't maintain an official DND registry. Maintain your own suppression lists, honor opt-out requests within 24 hours, implement automated STOP command processing, and regularly clean contact lists.

Time Zone Sensitivity

Sri Lanka follows Sri Lanka Standard Time (SLST, UTC+5:30). Note: Sri Lanka does not observe daylight saving time.

Recommended Sending Hours:

  • Business messages: 8:00 AM to 9:00 PM local time
  • Marketing messages: 9:00 AM to 7:00 PM local time
  • Transactional/OTP messages: 24/7 allowed

Alphanumeric Sender ID Registration for Sri Lanka

Alphanumeric Sender ID

Operator network capability: Fully supported

Registration requirements: Pre-registration required for both international and domestic use

Sender ID preservation: Yes, preserved when properly registered

Provisioning time: Approximately 3 weeks

Special considerations: Mobitel network only allows OTP, OTT, and transactional traffic

Registration Process and Requirements:

  1. Prepare Documentation (per Twilio requirements):
    • Letter of Authorization (LOA) on company letterhead
    • Company registration documents
    • Authorized signatory details and signature
    • Company stamp/seal
    • Sample message templates showing intended use
  2. Submit Registration:
    • Sender ID (3-11 alphanumeric characters)
    • Use case description (transactional, marketing, OTP)
    • Expected monthly volume
  3. Approval Timeline: 2-3 weeks for processing
  4. Costs: Registration fees vary by provider; typically $50-200 one-time setup fee, though exact costs should be confirmed with your SMS provider

Learn more about alphanumeric sender ID registration across different countries.

Long Codes

Domestic vs. International Long Codes:

  • Domestic long codes: Not supported
  • International long codes: Supported with limitations

Sender ID preservation: International long codes may be overwritten

Provisioning time: N/A

Use cases: Not recommended for primary SMS sending

Short Codes

Support: Not currently supported

Provisioning time: N/A

Use cases: N/A

Restricted SMS Content, Industries, and Use Cases

Restricted Industries and Content:

  • Gambling and betting
  • Adult content
  • Cryptocurrency promotions
  • Political messaging without proper authorization
  • Alcohol and tobacco advertising

Examples of Violations to Avoid:

  • Messages promoting online casinos or betting apps
  • Content containing explicit language or adult themes
  • Unsolicited cryptocurrency investment offers
  • Campaign messages without political party registration
  • Direct alcohol sales or promotion to unverified audiences

Regulated Industries:

  • Financial services (require CBSL approval)
  • Healthcare (must comply with PHI guidelines)
  • Insurance (require IRCSL compliance)

Approval Process for Regulated Industries:

  • Financial services: Submit application to CBSL with business license, message templates, and compliance documentation
  • Healthcare: Ensure PHI (Protected Health Information) handling complies with international standards (HIPAA-equivalent practices)
  • Insurance: Obtain IRCSL approval with proof of insurance license and message content review

Content Filtering

Known Carrier Rules:

  • Use URLs from approved domains only
  • Avoid excessive punctuation or special characters
  • Match message content to your registered use case
  • Don't use misleading sender IDs

Common Filtering Triggers:

  • Multiple URLs in a single message
  • Excessive use of CAPS or special characters (!!! ???)
  • Suspicious keywords related to money transfers or prizes
  • Mismatched sender IDs (brand name doesn't match content)
  • High-frequency sending from new sender IDs

Tips to Avoid Blocking:

  • Use registered sender IDs consistently
  • Avoid URL shorteners
  • Keep content professional and clear
  • Follow character encoding guidelines

Best Practices for Sending SMS in Sri Lanka

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include a clear call-to-action
  • Use approved sender IDs consistently
  • Personalize messages with the recipient's name when appropriate

Sending Frequency and Timing

  • Limit marketing messages to 4-5 per month per recipient
  • Respect religious and cultural holidays
  • Avoid messaging during major festivals
  • Space out bulk campaigns to prevent network congestion

Optimal Sending Times: Industry data shows highest engagement rates occur 10:00 AM - 12:00 PM and 6:00 PM - 8:00 PM local time on weekdays.

Localization

  • Support English, Sinhala, and Tamil
  • Use Unicode for local language characters
  • Consider bilingual messages for important communications
  • Test rendering on various devices

Major Cultural Holidays to Avoid:

  • Sinhala and Tamil New Year (April 13-14): Most significant national holiday
  • Vesak Poya (May, full moon day): Buddhist celebration, public holiday
  • Poson Poya (June, full moon day): Buddhist holiday
  • Esala Poya (July/August, full moon day): Kandy Perahera festival period
  • Deepavali (October/November): Hindu festival of lights
  • Christmas (December 25): Christian holiday
  • All Poya Days (monthly full moon): Buddhist public holidays, send only essential messages

Opt-Out Management

  • Process opt-outs within 24 hours
  • Maintain a centralized opt-out database
  • Include clear opt-out instructions
  • Send an acknowledgment message confirming opt-out

Testing and Monitoring

  • Test across all major carriers (Dialog, Mobitel, Hutch)
  • Monitor delivery rates by carrier
  • Track opt-out rates and patterns
  • Regularly test opt-out functionality

Key Metrics to Track:

  • Delivery rate by carrier (target: >95%)
  • Opt-out rate (healthy: <2% per campaign)
  • Message latency (target: <30 seconds for OTP)
  • Error rate by error type (21614, 30007)
  • Conversion rate by time of day

Alerting Thresholds:

  • Set alerts if delivery rate drops below 90%
  • Alert on opt-out rate exceeding 5% for any campaign
  • Monitor for carrier filtering (error 30007) exceeding 1%

Learn more about SMS delivery rate optimization.

SMS API integrations for Sri Lanka

Twilio

Twilio provides comprehensive SMS API support for Sri Lanka. Authenticate using your account SID and auth token.

typescript
import { Twilio } from 'twilio';

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

// Function to send SMS to Sri Lanka
async function sendSMSToSriLanka(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper formatting for Sri Lankan numbers
    const formattedNumber = to.startsWith('+94') ? to : `+94${to.substring(1)}`;

    const response = await client.messages.create({
      body: message,
      from: senderId, // Must be pre-registered alphanumeric sender ID
      to: formattedNumber,
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-webhook-url.com/status'
    });

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

Sinch

Sinch delivers reliable SMS to Sri Lanka with support for both transactional and marketing messages.

typescript
import axios from 'axios';

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

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

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

      console.log('Message sent successfully:', response.data);
    } catch (error) {
      console.error('Failed to send message:', error);
      throw error;
    }
  }
}

MessageBird

MessageBird provides a straightforward API for Sri Lankan SMS with delivery reporting support.

typescript
import messagebird from 'messagebird';

class MessageBirdClient {
  private client: any;

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

  sendSMS(
    to: string,
    message: string,
    senderId: string
  ): Promise<any> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator: senderId,
        recipients: [to],
        body: message,
        datacoding: 'auto' // Automatically handles Unicode
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
        } else {
          resolve(response);
        }
      });
    });
  }
}

Plivo

Plivo delivers reliable SMS with support for Unicode messages and delivery tracking.

typescript
import plivo from 'plivo';

class PlivoSMSClient {
  private client: any;

  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('Message sent:', response);
    } catch (error) {
      console.error('Error sending message:', error);
      throw error;
    }
  }
}

API Rate Limits and Throughput

Rate Limits:

  • Twilio: 100 messages per second
  • Sinch: 30 messages per second
  • MessageBird: 60 messages per second
  • Plivo: 50 messages per second

Throughput Management Strategies:

  • Implement exponential backoff for retries
  • Use queue systems (Redis/RabbitMQ) for high volume
  • Batch messages when possible
  • Monitor delivery rates and adjust sending speed

Error Handling and Reporting

Common Error Codes and Meanings:

  • 21614: Invalid mobile number (landline, incorrect format, or IoT/M2M number)
  • 30007: Message filtered by carrier or Twilio (spam/policy violation)
  • 30008: Unknown destination (number doesn't exist or is inactive)
  • 30005: Unknown destination handset (number unreachable)

Error Handling Implementation Example:

typescript
async function sendWithErrorHandling(to: string, message: string): Promise<void> {
  try {
    await sendSMS(to, message);
  } catch (error: any) {
    const errorCode = error.code;

    switch(errorCode) {
      case 21614:
        console.error(`Invalid number ${to} - likely landline or bad format`);
        await addToInvalidList(to);
        break;
      case 30007:
        console.error(`Message filtered for ${to} - content policy violation`);
        await reviewMessageContent(message);
        break;
      case 30008:
        console.error(`Unknown destination ${to} - number inactive`);
        await addToSuppressionList(to);
        break;
      default:
        console.error(`Unexpected error ${errorCode}:`, error);
        await retryWithBackoff(to, message);
    }
  }
}

Best Practices:

  • Implement comprehensive error logging
  • Monitor delivery receipts
  • Set up automated alerts for high failure rates
  • Store message status updates
  • Implement retry logic with exponential backoff

Frequently Asked Questions (FAQ)

How do I send SMS to Sri Lanka mobile numbers?

Send SMS to Sri Lankan mobile numbers using E.164 international format (+94XXXXXXXXX). Register an alphanumeric sender ID with your SMS provider (3-week process), ensure numbers use correct mobile prefixes (70-78), and choose a provider like Twilio, Sinch, MessageBird, or Plivo. Obtain explicit consent before sending marketing messages and comply with TRCSL regulations.

What is the alphanumeric sender ID registration process for Sri Lanka?

Alphanumeric sender ID registration in Sri Lanka takes approximately 3 weeks. Pre-register sender IDs for both international and domestic use through your SMS provider. Submit a Letter of Authorization (LOA) on company letterhead with company stamp and authorized signature, your sender ID (3-11 characters), business documentation, use case details, and sample message templates. Registration typically costs $50-200 one-time. Once approved, your sender ID will be preserved across Dialog, Mobitel, and Hutch networks (Mobitel restricts usage to OTP, OTT, and transactional traffic only).

What are the SMS compliance requirements in Sri Lanka?

Sri Lankan SMS compliance requires: obtaining explicit written or electronic consent before sending marketing messages, maintaining consent records for a minimum of 2 years, including clear opt-out instructions in all marketing messages, honoring opt-out requests within 24 hours, respecting sending time restrictions (8 AM – 9 PM for business messages), supporting STOP commands in English, Sinhala, and Tamil, and obtaining CBSL approval for financial services messaging. The Telecommunications Regulatory Commission of Sri Lanka (TRCSL) regulates commercial SMS with enforcement authority including license suspensions and service restrictions.

What mobile number prefixes do Sri Lankan operators use?

Sri Lankan mobile operators use these prefixes: Dialog (76, 77), Mobitel (71, 72), Hutch (76, 78), and Airtel (70, 75). All numbers follow E.164 format with country code +94 followed by 9 digits. Number portability isn't available – numbers remain tied to their original carrier. Always validate numbers match these prefixes before sending.

Can I send two-way SMS in Sri Lanka?

Two-way SMS isn't supported in Sri Lanka through major SMS providers. You cannot receive replies through standard A2P SMS channels. For two-way communication, use alternative channels like WhatsApp Business API, web-based forms, or dedicated customer service numbers.

What character encoding should I use for Sinhala and Tamil SMS?

Use UCS-2 encoding for Sinhala (සිංහල) and Tamil (தமிழ்) messages. UCS-2 limits messages to 70 characters per segment compared to 160 for GSM-7 encoded English. Cost implications: A 150-character Sinhala message splits into 3 segments (67 chars each), costing 3× the single-segment price. At typical rates ($0.30-0.38/segment), this equals $0.90-1.14 versus $0.30-0.38 for a single English message. For bilingual messages, the entire message uses UCS-2 encoding. Test rendering on various devices before launching campaigns.

What are the SMS rate limits for Sri Lanka providers?

SMS rate limits vary by provider: Twilio supports 100 messages/second, Sinch 30 messages/second, MessageBird 60 messages/second, and Plivo 50 messages/second. Implement exponential backoff for retries, use queue systems (Redis or RabbitMQ) for high-volume campaigns, batch messages when possible, and monitor delivery rates to adjust sending speed.

What content is restricted in Sri Lankan SMS campaigns?

Sri Lanka restricts SMS content in gambling and betting, adult content, cryptocurrency promotions, unauthorized political messaging, and alcohol/tobacco advertising. Financial services require CBSL approval, healthcare messages must comply with PHI guidelines, and insurance requires IRCSL compliance. Use approved domain URLs only, avoid excessive punctuation, match content to your registered use case, and never use misleading sender IDs.

Recap and Additional Resources

Key Takeaways:

  1. Pre-register alphanumeric sender IDs (3-week process)
  2. Implement proper opt-out handling
  3. Follow time zone restrictions for messaging
  4. Support local languages (Sinhala/Tamil)
  5. Monitor delivery rates and handle errors properly

Next Steps:

  1. Review TRCSL regulations at www.trc.gov.lk
  2. Consult local legal counsel for compliance
  3. Set up test accounts with your preferred SMS provider
  4. Implement error handling and monitoring
  5. Establish an opt-out management system

Additional Resources:

Country-Specific SMS Guides:

SMS API Integration Tutorials:

Compliance & Best Practices:

Technical Documentation: