sms compliance

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

Laos SMS Guide: Compliance, Best Practices & API Integration (2025)

Complete guide to SMS messaging in Laos. Learn about compliance requirements, operator networks (Unitel, LaoTel, TPlus, ETL), API integration, and best practices for 2025.

Laos SMS Guide: Compliance, Best Practices & API Integration

Send SMS messages to Laos with confidence using this comprehensive 2025 guide. Learn about SMS compliance requirements under the Telecommunication Law 2021, technical capabilities across major operators (Unitel, LaoTel, TPlus, ETL), API integration with Twilio, Sinch, and Plivo, plus best practices to optimize delivery rates.

Whether you're implementing two-factor authentication, sending transactional notifications, or running marketing campaigns in Laos, this guide helps you navigate the telecommunications landscape, comply with Ministry of Post and Telecommunications (MPT) guidelines, and achieve reliable SMS message delivery across all four major carrier networks.

Laos SMS Market Overview: Mobile Operators & Network Statistics

Locale name:Laos
ISO code:LA
RegionAsia
Mobile country code (MCC)457
Dialing Code+856

Market Conditions: Laos has approximately 6.8 million mobile connections (as of early 2024), representing ~88.5% population penetration. Four major operators dominate the market:

  • Unitel: 47% market share, ~3.5 million subscribers
  • Lao Telecom/LaoTel: 40% market share
  • TPlus: 15–20% market share, ~1.5 million subscribers
  • ETL: 5% market share, ~2 million subscribers

Source: Telecom Korea, January 2025

While OTT messaging apps gain popularity, SMS remains critical for business communications and notifications. The A2P SMS market shows significant activity but faces substantial security challenges: approximately 52% of A2P traffic routes through gray channels (unauthorized SMS routes that bypass official carrier networks), with 17% delivered via SIM boxes (devices that convert A2P traffic to person-to-person traffic using multiple SIM cards). This creates substantial revenue leakage and security concerns for mobile operators, potentially affecting message delivery reliability and increasing costs. Source: VOX360 Network Audit Report for Laos, 2024

Android devices dominate the mobile ecosystem in Laos, with iOS maintaining a smaller market share.

Laos Mobile Network Operators: MCC-MNC Codes

OperatorMCC-MNCTechnology
Lao Telecom (LaoTel)457-012G, 3G, 4G/LTE
ETL Mobile457-022G, 3G, 4G/LTE
Unitel457-032G, 3G, 4G/LTE
TPlus (Millicom)457-082G, 3G, 4G/LTE

SMS Technical Capabilities in Laos: Features & Limitations

Laos supports basic SMS functionality with limitations on two-way messaging and specific sender ID registration requirements on certain networks.

FeatureSupport StatusNotes
Two-way SMSNot supportedDesign strategies around one-way communications
Concatenated MessagesSupported160 chars (GSM-7) or 70 chars (Unicode) per segment
MMSNot directly supportedConverts to SMS with embedded URL
Alphanumeric Sender IDSupported (varies)Pre-registration required for Unitel; dynamic on TPlus
Short CodesNot supportedUse long codes instead
Number PortabilityUnclearVerify with individual operators

Two-Way SMS Support in Laos

Status: Not supported through standard API providers.

Design your SMS strategies around one-way communications for notifications and alerts. Two-way messaging capabilities are not available in Laos. For interactive experiences, consider using a landing page with a unique URL in your SMS, allowing recipients to respond via web form.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenated messages are supported (availability varies by sender ID type).

Message length rules:

  • GSM-7 encoding: 160 characters per segment
  • Unicode (UCS-2): 70 characters per segment

Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages split automatically at different thresholds based on your chosen encoding.

MMS Support

Status: Not directly supported.

When you send MMS, messages automatically convert to SMS with an embedded URL. Recipients click the link to view multimedia content. This ensures message delivery while maintaining your ability to share rich media.

Implementation example:

typescript
// Host media on your server
const mediaUrl = 'https://yourdomain.com/media/image.jpg';
const message = `Check out our latest offer: ${mediaUrl}`;

// Send as regular SMS – provider handles URL shortening if needed
await sendSMS(recipient, message);

Recipient Phone Number Compatibility

Number Portability

Status: Currently unclear.

Some operators like Unitel may offer mobile number portability (MNP) services, but no confirmed nationwide regulatory framework mandates MNP as of 2025. The Telecommunication Law 2021 (Law No. 05/NA, published March 2022) has not been fully implemented in practice. Source: VDB Loi, Amended Telecommunication Law – Lao PDR

Mobile numbers generally remain tied to their original carrier, which simplifies message routing and delivery. Verify current MNP availability directly with individual operators before relying on number portability for your SMS campaigns.

Sending SMS to Landlines

Status: Not supported.

Attempts to send messages to landline numbers result in failed delivery and an error response (400 error code 21614) from the API. These messages won't appear in logs, and you won't be charged.

SMS Compliance Requirements in Laos: Regulations & Best Practices

Laos does not have comprehensive SMS-specific regulations as of 2025. Follow general telecommunications guidelines overseen by the Ministry of Post and Telecommunications (MPT), which regulates the sector under the Telecommunication Law 2021 (Law No. 05/NA, dated November 16, 2021, published in the Official Gazette March 23, 2022). Source: VDB Loi

Note: While no comprehensive data protection law exists in Laos, the Telecommunication Law 2021 includes provisions for user data protection and privacy. Enforcement mechanisms remain under development. Apply best practices from global SMS standards (such as GDPR and TCPA principles) to ensure responsible messaging.

Explicit Consent Required: Obtain and document clear opt-in consent before sending marketing or promotional messages.

Consent record schema example:

typescript
interface ConsentRecord {
  phoneNumber: string;
  timestamp: Date;
  consentType: 'marketing' | 'transactional' | 'both';
  source: string; // 'website_signup', 'checkout', 'in_store'
  ipAddress?: string;
  doubleOptIn: boolean;
  optedOutAt?: Date;
}

// Store consent with detailed metadata
const consent: ConsentRecord = {
  phoneNumber: '+85620XXXXXXX',
  timestamp: new Date(),
  consentType: 'marketing',
  source: 'website_signup',
  ipAddress: '203.144.xxx.xxx',
  doubleOptIn: true
};

Best practices:

  • Maintain detailed records of how and when you obtained consent
  • Use clear language to explain what messages users will receive
  • Implement double opt-in for marketing campaigns
  • Provide transparent terms and conditions at signup

HELP/STOP and Other Commands

While not strictly required by law, implement standard opt-out keywords as a best practice:

Recommended keywords:

  • Support both English and Lao language commands
  • STOP, CANCEL, QUIT, UNSUBSCRIBE
  • HELP messages should provide customer support contact information
  • Process opt-out requests within 24 hours

Do Not Call / Do Not Disturb Registries

Laos does not maintain an official Do Not Call registry. Follow these practices:

  • Maintain your own suppression lists
  • Honor opt-out requests immediately
  • Keep records of opted-out numbers
  • Regularly clean contact lists to remove unsubscribed users

Time Zone Sensitivity

Laos follows UTC+7 time zone. While no strict messaging time restrictions exist, follow these recommended practices:

Recommended sending times:

  • Send messages between 8:00 AM and 8:00 PM local time
  • Avoid messages during religious holidays
  • Limit late-night messages to urgent notifications only
  • Consider Buddhist holy days when planning campaigns

SMS Sender ID Registration in Laos: Alphanumeric & Long Codes

Alphanumeric Sender ID Registration for Laos

Status: Supported with varying requirements by carrier

Registration requirements: Pre-registration required for Unitel network; dynamic usage allowed on TPlus.

Unitel registration process:

  1. Contact Unitel business support with your company registration documents
  2. Submit sender ID application form with use case details
  3. Wait 3–5 business days for approval
  4. Receive confirmation and configure sender ID in your API settings

Important: LaoTel (Lao Telecom) requires sender ID whitelisting to avoid blocking issues. ETL sender ID policies vary – contact operators directly for current requirements.

Sender ID preservation: Yes, sender IDs are generally preserved as specified

Long Codes

Status: Supported

Domestic vs. International: International long codes supported; domestic availability limited

Sender ID preservation: Yes, your original sender ID is preserved

Provisioning time: Typically 1–3 business days

Use cases: Ideal for transactional messages and two-factor authentication

Pricing guidance: International long codes typically cost $1–5/month per number. Contact your SMS provider for Laos-specific rates, as pricing varies by carrier and message volume.

Short Codes

Status: Not currently supported in Laos

Provisioning time: N/A

Use cases: N/A

Laos SMS Content Restrictions: Filtering & Prohibited Content

Several content types and industries face restrictions in Laos:

  • Political content: Requires special approval (contact MPT for application process)
  • Gambling and betting services: Prohibited
  • Adult content: Strictly forbidden
  • Religious content: May require review (consult with local legal counsel)
  • Financial services: Must comply with Bank of Lao PDR regulations (register as authorized financial service provider)

Content Filtering

Known Carrier Filters:

  • URLs from unknown domains may be blocked
  • Messages containing certain keywords in Lao or English may be filtered (e.g., "free," "win," "prize," excessive promotional language)
  • High-volume sending patterns can trigger spam filters
  • Bit.ly and other common URL shorteners may be filtered

Best Practices to Avoid Filtering:

  • Use registered sender IDs
  • Avoid URL shorteners – use your own domain
  • Maintain consistent sending patterns
  • Keep content professional and clear

Troubleshooting filtered messages:

  1. Check delivery reports for carrier rejection codes
  2. Test message content with a small sample before bulk sending
  3. Remove URLs temporarily to isolate filtering cause
  4. Contact your SMS provider's support team with message details
  5. Verify sender ID registration status with the carrier

SMS Best Practices for Laos: Messaging Strategy & Optimization

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear calls-to-action
  • Personalize messages using the recipient's name
  • Avoid excessive punctuation and all-caps

Sending Frequency and Timing

  • Limit to 2–3 messages per week per recipient
  • Respect Buddhist holidays and festivals
  • Avoid sending during national holidays
  • Space out bulk campaigns to prevent network congestion

Localization

  • Support both Lao and English languages
  • Use Unicode encoding for Lao script
  • Consider cultural sensitivities in your message content
  • Test message rendering on popular local devices

Lao language message examples:

typescript
// Transactional message in Lao
const laoTransactional = 'ລະຫັດຢືນຢັນຂອງທ່ານແມ່ນ: 123456';
// Translation: "Your verification code is: 123456"

// Marketing message in Lao
const laoMarketing = 'ສ່ວນຫຼຸດ 20% ສຳລັບລູກຄ້າໃຫມ່! ເຂົ້າເບິ່ງທີ່: yourdomain.com';
// Translation: "20% discount for new customers! Visit: yourdomain.com"

// Ensure UTF-8 encoding
await sendSMS(recipient, laoTransactional, { encoding: 'UCS-2' });

Opt-Out Management

  • Process opt-outs within 24 hours
  • Maintain a centralized opt-out database
  • Include opt-out instructions in your messages
  • Conduct regular audits of opt-out compliance

Testing and Monitoring

  • Test across major carriers (Unitel, Lao Telecom, TPlus, ETL)
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Regularly test opt-out functionality

Key metrics to track:

  • Delivery rate: Aim for >95% (rates of 85–90% may indicate filtering or routing issues)
  • Response time: Monitor API response latency (<2 seconds is optimal)
  • Error rate: Keep below 2% (higher rates suggest number formatting or carrier issues)
  • Opt-out rate: Industry average is 0.5–2% per campaign

Monitoring tools recommendations:

  • Use your SMS provider's dashboard for real-time delivery tracking
  • Implement custom logging with error categorization
  • Set up alerts for delivery rate drops below 90%
  • Create weekly reports comparing carrier performance

Laos SMS API Integration: Twilio, Sinch & Plivo Setup Guide

ProviderProsConsBest For
TwilioExtensive documentation, reliable delivery, global coverageHigher pricingEnterprise applications, complex workflows
SinchCompetitive pricing, good Unicode supportSmaller communityCost-sensitive projects, international reach
PlivoEasy integration, detailed analyticsLimited Laos-specific documentationStartups, rapid prototyping

Delivery rate benchmarks for Laos:

  • Twilio: 92–96%
  • Sinch: 90–94%
  • Plivo: 88–93%

Note: Actual rates vary by sender ID type, message content, and carrier.

Twilio SMS API for Laos

Twilio provides a robust SMS API for sending messages to Laos. Integration requires an account SID and auth token for authentication.

Setup delivery status webhooks:

typescript
// Configure webhook URL in Twilio dashboard or via API
const response = await client.messages.create({
  body: message,
  from: senderId,
  to: formattedNumber,
  statusCallback: 'https://yourdomain.com/sms/status', // Your webhook endpoint
});

// Handle webhook in your API endpoint
app.post('/sms/status', (req, res) => {
  const { MessageSid, MessageStatus, ErrorCode } = req.body;

  console.log(`Message ${MessageSid} status: ${MessageStatus}`);

  if (ErrorCode) {
    console.error(`Error code: ${ErrorCode}`);
    // Handle failed delivery
  }

  res.sendStatus(200);
});
typescript
import { Twilio } from 'twilio';

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

// Function to send SMS to Laos
async function sendSMSToLaos(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper formatting for Laos numbers (+856)
    const formattedNumber = to.startsWith('+856') ? to : `+856${to}`;

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

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

Sinch SMS API for Laos

Sinch offers SMS capabilities with straightforward API integration for Laos. Authentication uses API token and service plan ID.

typescript
import { SinchClient } from '@sinch/sdk-core';

// Initialize Sinch client
const sinchClient = new SinchClient({
  projectId: process.env.SINCH_PROJECT_ID,
  apiToken: process.env.SINCH_API_TOKEN
});

// Send SMS using Sinch
async function sendSinchSMS(
  recipientNumber: string,
  messageText: string
): Promise<void> {
  try {
    const response = await sinchClient.sms.batches.send({
      to: [recipientNumber],
      from: 'YourCompany', // Alphanumeric sender ID
      body: messageText,
      // Optional parameters for Laos
      encoding: 'AUTO' // Automatically handles Lao script
    });

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

Plivo SMS API for Laos

Plivo provides a reliable SMS API with full support for Laos SMS messaging. Authentication requires auth ID and auth token.

typescript
import plivo from 'plivo';

// Initialize Plivo client
const client = new plivo.Client(
  process.env.PLIVO_AUTH_ID,
  process.env.PLIVO_AUTH_TOKEN
);

// Send SMS via Plivo
async function sendPlivoSMS(
  destination: string,
  message: string
): Promise<void> {
  try {
    const response = await client.messages.create({
      src: 'COMPANY', // Your sender ID
      dst: destination, // Destination number
      text: message,
      // Optional parameters
      url_strip_query: false, // Preserve URL parameters if included
      log_dlt_status: true // Track delivery status
    });

    console.log('Message sent with UUID:', response.messageUuid);
  } catch (error) {
    console.error('Plivo error:', error);
    throw error;
  }
}

API Rate Limits and Throughput

ProviderRate LimitBurst CapacityWhat Happens When Exceeded
Twilio30 msg/sec (default)Up to 100 msg/sec with upgradesReturns 429 error, retry after 1–5 seconds
Sinch20–40 msg/sec (varies by plan)Contact support for increasesQueues excess messages, may delay delivery
Plivo50 msg/sec (varies by account)Configurable limitsReturns rate limit error, implement backoff

Best practices:

  • Implement exponential backoff for retry logic
  • Batch sending recommended for volumes over 1,000/hour
  • Queue messages during peak hours (9 AM – 5 PM local time)
  • Distribute large campaigns across multiple hours

Throughput Management Strategies:

typescript
// Example rate limiting implementation
class SMSRateLimiter {
  private queue: Array<() => Promise<void>> = [];
  private processing: boolean = false;
  private readonly RATE_LIMIT = 30; // messages per second

  async addToQueue(sendFunction: () => Promise<void>): Promise<void> {
    this.queue.push(sendFunction);
    if (!this.processing) {
      this.processQueue();
    }
  }

  private async processQueue(): Promise<void> {
    this.processing = true;
    while (this.queue.length > 0) {
      const batch = this.queue.splice(0, this.RATE_LIMIT);
      await Promise.all(batch.map(fn => fn()));
      await new Promise(resolve => setTimeout(resolve, 1000));
    }
    this.processing = false;
  }
}

Error Handling and Reporting

Common error codes and resolutions:

Error CodeProviderMeaningResolution
21614TwilioInvalid phone number (landline)Validate numbers before sending; remove landlines
21408TwilioPermission denied (carrier block)Check sender ID registration, contact Twilio support
30003TwilioUnreachable destinationNumber may be inactive; retry once, then remove
40001SinchInvalid parametersVerify phone number format (+856)
40300SinchInsufficient balanceAdd credits to account
400PlivoBad requestCheck API parameters and encoding
401PlivoAuthentication failedVerify auth ID and token
429AllRate limit exceededImplement rate limiting and retry with backoff
typescript
// Error handling utility
interface SMSError {
  code: string;
  message: string;
  timestamp: Date;
  provider: string;
}

class SMSErrorHandler {
  private errors: SMSError[] = [];

  logError(error: SMSError): void {
    this.errors.push(error);
    console.error(`SMS Error [${error.provider}]: ${error.message}`);

    // Implement specific error handling based on error codes
    switch (error.code) {
      case 'invalid_number':
        // Clean up invalid numbers from database
        break;
      case 'rate_limit_exceeded':
        // Implement backoff strategy
        break;
      default:
        // Generic error handling
        break;
    }
  }
}

Recap and Additional Resources

Key Takeaways

Compliance Priorities:

  • Obtain explicit consent before sending marketing messages
  • Respect time zone restrictions (send between 8 AM – 8 PM, UTC+7)
  • Implement opt-out mechanisms with 24-hour processing
  • Follow content restrictions (no gambling, adult content, or unauthorized political messaging)

Technical Considerations:

  • Use proper number formatting (+856XXXXXXXXX)
  • Implement rate limiting (stay under 30 msg/sec)
  • Handle character encoding for Lao script (use UCS-2/Unicode)
  • Monitor delivery rates (target >95%)

Best Practices:

  • Test thoroughly across all four carriers before bulk sending
  • Maintain clean contact lists with regular opt-out audits
  • Document all consent records with timestamps and source
  • Regular monitoring and reporting with carrier-specific metrics

Production Readiness Checklist

  • Consent system implemented with detailed record-keeping
  • Opt-out mechanism tested and processing within 24 hours
  • Phone number validation in place (E.164 format, +856)
  • Sender ID registered with Unitel (if applicable)
  • Rate limiting implemented (max 30 msg/sec)
  • Error handling and logging configured
  • Delivery status webhooks set up and tested
  • Test campaigns run on all four carriers (Unitel, LaoTel, TPlus, ETL)
  • Monitoring dashboard configured with key metrics
  • Unicode encoding tested for Lao script messages
  • Backup SMS provider configured for failover
  • Compliance documentation prepared and accessible

Troubleshooting FAQ

Q: My messages aren't being delivered to Unitel subscribers. What should I check?

A: Verify your sender ID is registered with Unitel. Unregistered sender IDs will be blocked. Contact Unitel business support to complete registration (3–5 business days).

Q: Why are my messages with URLs being filtered?

A: Carriers may block unknown domains or URL shorteners. Use your own domain and avoid bit.ly or similar services. Test without URLs to confirm this is the issue.

Q: What's the best time to send bulk campaigns in Laos?

A: Send between 9 AM – 5 PM, UTC+7 (Laos time). Avoid Buddhist holidays and late-night hours. Distribute large campaigns across multiple hours to avoid carrier throttling.

Q: How do I handle Lao script in my messages?

A: Use Unicode (UCS-2) encoding. Each Lao character counts as one character toward the 70-character limit per segment. Test rendering on local devices before bulk sending.

Q: My delivery rate is below 85%. What's wrong?

A: Check these common issues: (1) Invalid phone numbers in your list, (2) Content filtering (remove promotional keywords), (3) Unregistered sender ID, (4) Network congestion during peak hours. Review error codes in delivery reports.

Next Steps

  1. Review the Ministry of Post and Telecommunications guidelines and Telecommunication Law 2021
  2. Implement proper error handling and monitoring
  3. Set up testing environments for each carrier
  4. Establish compliance documentation processes

Additional Resources

Contact Information for Support:

Frequently Asked Questions

How to send SMS messages in Laos?

Several providers like Twilio, Sinch, and Plivo offer SMS APIs for sending messages to Laos. You'll need an account and authentication credentials to integrate their services. Remember to format numbers correctly with +856 and handle Lao script encoding.

What is the SMS market like in Laos?

Laos has a growing mobile subscriber base with key operators like Unitel and TPLUS. While OTT apps are popular, SMS remains vital for business communication. However, about 52% of traffic goes through gray routes, and Android dominates the mobile OS landscape.

Why does Laos not support two-way SMS?

Standard API providers do not support two-way SMS in Laos. Businesses should focus on one-way communication for alerts and notifications. Consider alternative channels for interactive messaging.

When should I send SMS messages in Laos?

While no strict rules exist, best practice is between 8 AM and 8 PM local time (UTC+7). Avoid religious holidays and late-night messaging unless urgent. Be mindful of Buddhist holy days during campaign planning.

Can I send marketing SMS messages in Laos?

Yes, but explicit opt-in consent is mandatory. Maintain records of consent, explain message content clearly, and offer easy opt-out methods. Double opt-in is recommended for marketing campaigns.

What is the character limit for SMS in Laos?

Standard SMS length limits apply: 160 characters for GSM-7 encoding and 70 characters for Unicode (UCS-2). Laos supports concatenated messages, so longer messages are split, but keep length in mind for cost and readability.

How to manage SMS opt-outs in Laos?

While Laos lacks a Do Not Call registry, maintain your suppression list. Honor opt-out requests (STOP, CANCEL, QUIT) within 24 hours, keep records, and regularly clean your contact list. Support Lao and English keywords.

What are the restrictions on SMS content in Laos?

Political content needs approval, and gambling/adult content is prohibited. Religious content may face review, and financial services must comply with Bank of Lao PDR rules. Avoid URL shorteners and suspicious keywords to prevent filtering.

What SMS sender IDs are available in Laos?

Alphanumeric sender IDs are supported but require pre-registration with Unitel. TPLUS allows dynamic usage. International long codes are available for transactional messages and 2FA. Short codes are not currently supported.

How to handle SMS API rate limits in Laos?

The standard rate limit is 30 messages per second. Use batch sending for large volumes and implement exponential backoff for retries. Queue messages during peak hours to manage throughput effectively.

What are the best practices for SMS localization in Laos?

Support both Lao and English. Use Unicode for Lao script. Consider cultural sensitivities and test message rendering on popular Laotian devices. This ensures clear communication and a positive user experience.

How to format phone numbers for sending SMS to Laos?

Always include the country code +856 before the phone number. If the number already starts with +856, no further formatting is needed. This ensures successful message delivery.

What is the process for registering an alphanumeric sender ID in Laos?

Pre-registration is required for the Unitel network. Requirements may vary, so contact Unitel directly for details on the registration process. TPLUS allows dynamic usage without pre-registration.

Why is MMS not directly supported in Laos?

MMS messages are automatically converted to SMS with a URL link to the multimedia content. This workaround ensures delivery on the widely used SMS infrastructure while still enabling rich media sharing.

What should I do if SMS to landlines in Laos is not supported?

Do not attempt to send SMS to landlines in Laos. It will result in failed delivery with error code 21614, but you won't be charged. Ensure your contact list only contains mobile numbers.