sms compliance

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

Cambodia SMS Guide

Explore Cambodia SMS: compliance, features, & best practices. Understand sender ID registration (Smart Axiata requires pre-registration, 14-day provisioning), message encoding (GSM-7/UCS-2), & error codes (400 for landlines). Implement opt-in/opt-out; crucial for A2P SMS.

Cambodia SMS Best Practices, Compliance, and Features

Cambodia SMS Market Overview

Locale name:Cambodia
ISO code:KH
RegionAsia
Mobile country code (MCC)456
Dialing Code+855

Market Conditions: Cambodia has a growing mobile market with several major operators including Smart Axiata, Metfone, and Cellcard. SMS remains an important communication channel, particularly for business messaging and notifications, though OTT apps like LINE and Facebook Messenger are increasingly popular. The market shows strong Android dominance, with iOS having a relatively small market share. A2P (Application-to-Person) SMS services face some challenges with gray routes, which account for approximately 39% of SMS traffic.


Key SMS Features and Capabilities in Cambodia

Cambodia supports basic SMS functionality with some limitations on two-way messaging and specific requirements for sender ID registration, particularly for messages sent to Smart Axiata networks.

Two-way SMS Support

Two-way SMS is not supported in Cambodia through major SMS providers. This means businesses cannot receive replies to their messages through standard SMS channels.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenated messages are supported in Cambodia, though support may vary by sender ID type.
Message length rules: Standard SMS length limits apply, with messages being split according to encoding type.
Encoding considerations: Both GSM-7 and UCS-2 encoding are supported, with UCS-2 being particularly important for local Khmer language support.

MMS Support

MMS messages are not directly supported in Cambodia. Instead, MMS content is automatically converted to SMS with an embedded URL link where recipients can view the multimedia content. This ensures compatibility while still allowing rich media sharing capabilities.

Recipient Phone Number Compatibility

Number Portability

Number portability is not available in Cambodia. This means mobile numbers remain tied to their original carrier, which can simplify message routing but limits consumer flexibility.

Sending SMS to Landlines

Sending SMS to landline numbers is not possible in Cambodia. Attempts to send messages to landline numbers will result in a failed delivery and typically generate a 400 response error (error code 21614) through SMS APIs. These messages will not appear in logs and accounts will not be charged for failed attempts.

Compliance and Regulatory Guidelines for SMS in Cambodia

Cambodia's SMS regulations are primarily overseen by the Telecommunication Regulator of Cambodia (TRC). While specific SMS marketing laws are still evolving, businesses must adhere to general telecommunications guidelines and carrier-specific requirements.

Explicit Consent Required: You must obtain and document explicit opt-in consent before sending marketing or promotional messages. Best practices include:

  • Maintaining clear records of how and when consent was obtained
  • Using double opt-in processes for marketing campaigns
  • Providing clear terms and conditions at the point of opt-in
  • Specifying the types of messages users will receive

HELP/STOP and Other Commands

While Cambodia doesn't have strict HELP/STOP requirements, implementing these features is considered best practice:

  • Support both English and Khmer language keywords
  • Common commands should include: STOP, CANCEL, END, HELP
  • Process opt-out requests within 24 hours
  • Send confirmation messages in the user's preferred language

Do Not Call / Do Not Disturb Registries

Cambodia does not maintain an official Do Not Call registry. However, businesses should:

  • Maintain their own suppression lists
  • Honor opt-out requests immediately
  • Document all opt-out requests for compliance purposes
  • Regularly clean contact lists to remove unsubscribed numbers

Time Zone Sensitivity

Cambodia follows ICT (UTC+7) time zone. While there are no strict time restrictions, recommended practices include:

  • Sending messages between 8:00 AM and 8:00 PM ICT
  • Avoiding messages during religious holidays and festivals
  • Limiting late-night messages to urgent communications only

Phone Numbers Options and SMS Sender Types for in Cambodia

Alphanumeric Sender ID

Operator network capability: Fully supported across major networks
Registration requirements: Pre-registration required for Smart Axiata (effective August 1, 2023); Dynamic usage supported for other carriers
Sender ID preservation: Preserved for Smart Axiata when registered; May be overwritten by Metfone with generic sender ID
Provisioning time: 14 business days for registration

Long Codes

Domestic vs. International:

  • Domestic long codes not supported
  • International long codes supported (except for Smart Axiata)
    Sender ID preservation: No, typically overwritten with generic sender ID
    Provisioning time: Immediate for international long codes
    Use cases: Transactional messaging, alerts, notifications

Short Codes

Support: Not currently supported in Cambodia
Provisioning time: N/A
Use cases: N/A


Restricted SMS Content, Industries, and Use Cases

The following content types are restricted:

  • Political content
  • Religious messaging
  • Adult content
  • Gambling-related content
  • Spam or unsolicited promotional content

Content Filtering

Known carrier filters:

  • Messages containing restricted keywords
  • High-volume sending from unregistered sender IDs
  • Messages with suspicious URLs

Best practices to avoid filtering:

  • Use registered sender IDs
  • Avoid URL shorteners
  • Maintain consistent sending patterns
  • Use clear, professional language

Best Practices for Sending SMS in Cambodia

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 messages

Sending Frequency and Timing

  • Limit to 2-3 messages per week per recipient
  • Respect Cambodian holidays and festivals
  • Schedule campaigns during business hours
  • Space out bulk sends to avoid network congestion

Localization

  • Support both Khmer and English languages
  • Use proper character encoding for Khmer script
  • Consider cultural context in message content
  • Provide language preference options

Opt-Out Management

  • Process opt-outs within 24 hours
  • Send opt-out confirmation messages
  • Maintain updated suppression lists
  • Regular audit of opt-out processes

Testing and Monitoring

  • Test messages across all major carriers
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Regular testing of opt-out functionality

SMS API integrations for Cambodia

Twilio

Twilio provides a robust SMS API with comprehensive support for Cambodia. Integration requires an account SID and auth token for authentication.

Key Parameters:

  • from: Registered alphanumeric sender ID or phone number
  • to: Recipient number in E.164 format (+855)
  • body: Message content (supports Unicode for Khmer)
typescript
import { Twilio } from 'twilio';

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

async function sendSMSCambodia(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Send message with error handling
    const response = await client.messages.create({
      from: senderId,  // Registered alphanumeric sender ID
      to: to,         // Format: +85512345678
      body: message,
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-callback-url.com/status'
    });
    
    console.log(`Message sent successfully: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
    throw error;
  }
}

Sinch

Sinch offers direct carrier connections in Cambodia with support for both text and binary messages.

Key Parameters:

  • from: Registered sender ID
  • to: Array of recipient numbers
  • body: Message content
  • delivery_report: Delivery status tracking
typescript
import axios from 'axios';

interface SinchMessage {
  from: string;
  to: string[];
  body: string;
  delivery_report: string;
}

async function sendSinchSMS(
  apiToken: string,
  message: SinchMessage
): Promise<void> {
  const baseUrl = 'https://sms.api.sinch.com/xms/v1';
  const servicePlanId = process.env.SINCH_SERVICE_PLAN_ID;

  try {
    const response = await axios.post(
      `${baseUrl}/${servicePlanId}/batches`,
      message,
      {
        headers: {
          'Authorization': `Bearer ${apiToken}`,
          'Content-Type': 'application/json'
        }
      }
    );
    
    console.log('Batch ID:', response.data.id);
  } catch (error) {
    console.error('Sinch SMS Error:', error);
    throw error;
  }
}

MessageBird

MessageBird provides reliable SMS delivery in Cambodia with support for Unicode messages.

Key Parameters:

  • originator: Sender ID (alphanumeric or number)
  • recipients: Array of recipient numbers
  • content: Message content and type
typescript
import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

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

  async sendSMS(
    originator: string,
    recipient: string,
    message: string
  ): Promise<void> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator,
        recipients: [recipient],
        body: message,
        type: 'sms'
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
          return;
        }
        resolve(response);
      });
    });
  }
}

API Rate Limits and Throughput

  • Default Rate Limits:
    • Twilio: 250 messages per second
    • Sinch: 30 requests per second
    • MessageBird: 60 messages per second

Throughput Management Strategies:

  • Implement exponential backoff for retries
  • Use batch APIs for bulk sending
  • Queue messages during peak times
  • Monitor delivery rates by carrier

Error Handling and Reporting

typescript
interface SMSError {
  code: string;
  message: string;
  timestamp: Date;
  recipient: string;
}

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

  logError(error: SMSError): void {
    this.errors.push(error);
    // Implement your logging logic
    console.error(`SMS Error [${error.code}]: ${error.message}`);
  }

  async retryFailedMessages(): Promise<void> {
    // Implement retry logic with exponential backoff
    const retryDelay = (attempt: number) => Math.pow(2, attempt) * 1000;
    // Retry implementation
  }
}

Recap and Additional Resources

Key Takeaways

  1. Compliance Priorities

    • Register alphanumeric sender IDs with Smart Axiata
    • Maintain proper opt-in/opt-out processes
    • Follow time zone considerations
  2. Technical Requirements

    • Use E.164 number formatting
    • Support Unicode for Khmer language
    • Implement proper error handling
  3. Best Practices

    • Test across all major carriers
    • Monitor delivery rates
    • Maintain clean contact lists

Next Steps

  1. Review the Telecommunication Regulator of Cambodia (TRC) guidelines
  2. Register sender IDs with relevant carriers
  3. Implement proper error handling and monitoring
  4. Set up delivery tracking systems

Additional Resources

Industry Guidelines: