sms compliance

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

Macao SMS Best Practices, Compliance, and Features

Complete guide to Macao SMS messaging: Personal Data Protection Law No. 8/2005 compliance, OPDP requirements, alphanumeric sender IDs, carrier specifications for CTM, 3 Macau, and China Telecom.

Macao SMS Best Practices, Compliance, and Features

Meta Description: Complete guide to Macao SMS messaging: Personal Data Protection Law No. 8/2005 compliance, OPDP requirements, alphanumeric sender IDs, carrier specifications for CTM, 3 Macau, and China Telecom.

Macao SMS Market Overview

Locale name:Macao
ISO code:MO
RegionAsia
Mobile country code (MCC)455
Dialing Code+853

Market Conditions: Macao operates a highly developed mobile telecommunications market with widespread SMS usage. Three major mobile operators serve the market: CTM (Companhia de Telecomunicações de Macau, 45% market share), 3 Macau (Hutchison), and China Telecom Macau. SmarTone ceased operations in Macao on November 11, 2024. The region supports modern messaging capabilities including concatenated messages and alphanumeric sender IDs. While OTT messaging apps like WeChat and WhatsApp dominate personal communications, SMS remains essential for business communications and authentication purposes due to its reliability and universal reach. Mobile network codes include 45500, 45501, 45502, 45503, and 45507 (China Telecom). Macao has no MVNOs (Mobile Virtual Network Operators).

Market Statistics (2024 data): Mobile phone penetration in Macao stands at approximately 93.8%, with internet penetration at 92.8% (597,300 users as of March 2024). iOS (58.06%) and Android (41.35%) dominate the mobile OS market. Mobile payments usage has reached 81% as of 2024, indicating high smartphone adoption and digital engagement (Macao Government IT Survey, March 2024).

SMS Pricing: Business SMS costs in Macao vary by provider and volume. International SMS API providers charge approximately $0.02–$0.06 per message (Sinch: $0.02835/message, Plivo: $0.02952/message, Twilio: $0.059/message). Local prepaid SMS typically costs MOP 0.10–0.50 per message for consumers, while businesses benefit from volume discounts through local carriers (Sent.dm Macao SMS Pricing).

This comprehensive guide covers Macao SMS regulations, A2P messaging requirements, Personal Data Protection Law No. 8/2005 compliance, carrier-specific technical specifications, and best practices for sending business SMS through Macao's telecommunications networks.

Key SMS Features and Capabilities in Macao

Macao supports standard SMS features including concatenated messages and alphanumeric sender IDs, though two-way SMS and MMS are not currently supported.

Two-way SMS Support

Two-way SMS is not supported in Macao at this time. Design your SMS strategies around one-way communications only.

Why two-way SMS is unavailable: Macao's telecommunications infrastructure currently does not support bidirectional SMS messaging for business applications due to carrier routing and regulatory constraints. This limitation applies to all carriers (CTM, 3 Macau, China Telecom).

Alternative approaches for customer interaction:

  • Provide web links in SMS messages directing to response forms or survey pages
  • Use phone numbers for callback support
  • Implement email follow-up channels for detailed customer responses
  • Consider complementary channels like WhatsApp Business or WeChat for two-way communications

Concatenated Messages (Segmented SMS)

Support: Yes, concatenation is supported for most sender ID types, though support may vary by carrier.

Message length rules: Standard SMS length limits apply – 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding before splitting occurs.

Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using Chinese characters require UCS-2 encoding and will be limited to 70 characters per segment.

Practical segmentation examples:

  • GSM-7 (English): Message of 165 characters = 2 segments (153 + 12 characters due to concatenation header overhead of 7 chars per segment)
  • UCS-2 (Chinese): Message of 75 Chinese characters = 2 segments (67 + 8 characters due to concatenation header overhead of 3 chars per segment)
  • Mixed content: Any message containing Chinese characters will use UCS-2 encoding, limiting to 70 chars/segment regardless of English content

Segment calculation formula:

  • Single segment: ≤160 chars (GSM-7) or ≤70 chars (UCS-2)
  • Multi-segment: Each segment holds 153 chars (GSM-7) or 67 chars (UCS-2) due to concatenation headers
  • Total segments = CEILING(character_count / chars_per_segment)

MMS Support

MMS is not available in Macao. When sending rich media content, include a URL link within the SMS message that directs users to the content hosted online.

Recipient Phone Number Compatibility

Number Portability

Number portability is not available in Macao. Phone numbers remain tied to their original carrier, which simplifies message routing and delivery.

How to determine carrier from phone number: Macao phone numbers follow an 8-digit format (+853 XXXX XXXX). While specific number ranges are not publicly disclosed, businesses can identify carriers through:

  • Number lookup APIs (HLR lookup services)
  • Historical delivery data and carrier response codes
  • Direct carrier relationships and technical documentation

Sending SMS to Landlines

Sending SMS to landline numbers is not supported in Macao. Attempts to send messages to landline numbers will result in delivery failure and API error responses (error code 21614 for Twilio's API), with no charges incurred.

Macao landline number format: Landline numbers in Macao are 8-digit numbers starting with 28 (+853 28XX XXXX). Mobile numbers are 8-digit numbers starting with 6 (+853 6XXX XXXX). Always validate recipient numbers to ensure they begin with 6 for mobile delivery (ITU Macao Numbering Plan).

Compliance and Regulatory Guidelines for SMS in Macao

Macao's SMS communications are governed by telecommunications regulations overseen by the Bureau of Telecommunications Regulation (DSRT) and data protection laws administered by the Office for Personal Data Protection (OPDP). Comply with Personal Data Protection Law No. 8/2005 and relevant telecommunications regulations.

Key regulatory updates:

  • Radio Communications Law No. 21/2024 came into effect on January 1, 2025, regulating licensing for radio communications networks, equipment certification, and operator licensing
  • Cybersecurity Law (2019) requires operators of critical infrastructure to report system breaches to CARIC (Cybersecurity Incident Alert and Response Center)
  • Administrative Regulation No. 42/2023 (effective February 1, 2024) established the Personal Data Protection Bureau (PDPB), updating the organizational structure

Explicit Consent Requirements:

  • Obtain clear, documented consent before sending marketing messages (unequivocal consent required under Law No. 8/2005)
  • Notify OPDP of data processing activities within 8 days of commencement
  • Maintain detailed records of when and how you obtained consent
  • Specify the types of messages recipients will receive
  • Clearly communicate your company name and message frequency
  • Inform data subjects if their data may be transferred outside Macao

Penalties for non-compliance with Law No. 8/2005:

  • Administrative fines: MOP 2,000 to MOP 100,000 depending on violation severity (Law Gratis - Macao Privacy Law)
  • Criminal sanctions: Imprisonment up to 2 years or fines up to 240 days for serious offenses
  • Enhanced penalties: Increased sanctions for violations involving sensitive personal data, credit data, or intentional non-compliance
  • Civil liability: Data subjects can seek compensation for damages resulting from violations (DLA Piper Data Protection Guide - Macau)

Compliant vs non-compliant consent examples:

Compliant consent collection:

  • "By checking this box, I consent to receive promotional SMS from [Company Name] about [specific products/services]. I understand I can opt-out anytime by replying STOP. My data will be processed per our Privacy Policy: [URL]."
  • Double opt-in process: User subscribes → receives confirmation SMS → must reply YES to activate
  • Clear, specific language in Portuguese or Chinese
  • Separate checkbox for SMS consent (not bundled with terms of service)

Non-compliant consent collection:

  • Pre-checked boxes for marketing consent
  • Vague language like "stay updated" without specifying SMS channel
  • Consent bundled with mandatory service terms
  • No mention of opt-out rights or data processing details
  • Failing to notify OPDP within 8 days of starting data collection

Prior Authorization Required For:

  • Processing sensitive personal data (political persuasion, philosophical beliefs, religion, health, sex life, genetic data, racial/ethnic origin)
  • Processing credit and solvency data
  • Combining data or further processing for purposes other than originally stated

How to obtain prior authorization from OPDP:

  1. Prepare documentation: Complete official OPDP forms in Portuguese or Chinese with detailed processing descriptions
  2. Submit application: Include data controller identification, processing purpose, data categories, security measures, storage duration, and international transfer details (if applicable)
  3. Include legal basis: Specify grounds for processing sensitive data (explicit consent, legal obligation, vital interests, public interest)
  4. Wait for approval: OPDP reviews application and may request additional information before granting authorization
  5. Maintain compliance: Keep authorization documentation and ensure processing aligns with approved scope (DLA Piper Data Protection Guide - Macau)

Best Practices for Consent Collection:

  • Use double opt-in processes for marketing lists
  • Provide clear terms and conditions during signup in Portuguese or Chinese
  • Store consent records securely with timestamps
  • Conduct regular audits of consent records
  • Obtain explicit consent before transferring personal data outside Macao

HELP/STOP and Other Commands

  • Support standard opt-out keywords: STOP, CANCEL, UNSUBSCRIBE
  • Include Chinese language equivalents for local users
  • Implement HELP command responses with service information
  • Process opt-out requests immediately
  • Send confirmation messages in the user's preferred language

Chinese keyword translations:

  • STOP = 停止 (tíngzhǐ) or 取消 (qǔxiāo)
  • UNSUBSCRIBE = 退訂 (tuìdìng) or 取消訂閱 (qǔxiāo dìngyuè)
  • CANCEL = 取消 (qǔxiāo)
  • HELP = 幫助 (bāngzhù) or 帮助 (bāngzhù - simplified)
  • YES/CONFIRM = 是 (shì) or 確認 (quèrèn)

Example HELP response template:

  • English: "You're subscribed to [Company] updates. Reply STOP to unsubscribe. Msg frequency: 2-4/month. Help: [phone/email]"
  • Chinese: "您已訂閱[公司]更新。回覆停止以取消訂閱。訊息頻率:每月2-4次。協助:[電話/電郵]"

Example STOP confirmation:

  • English: "You've been unsubscribed from [Company] SMS. You won't receive further messages. Reply START to resubscribe."
  • Chinese: "您已取消訂閱[公司]短訊。您將不會再收到訊息。回覆開始以重新訂閱。"

Do Not Call / Do Not Disturb Registries

While Macao doesn't maintain an official Do Not Call registry, you must:

  • Maintain internal suppression lists
  • Honor opt-out requests within 24 hours
  • Regularly clean contact lists
  • Document all opt-out requests
  • Implement automated opt-out processing
  • Respect data subjects' right to object to direct marketing free of charge (Law No. 8/2005, Article 11)

Time Zone Sensitivity

Macao follows China Standard Time (UTC+8)

Recommended Sending Windows:

  • Business messages: 9:00 AM – 6:00 PM local time
  • Marketing messages: 10:00 AM – 8:00 PM local time
  • Urgent notifications: Can be sent 24/7 if necessary
  • Avoid sending during major holidays unless urgent

Major holidays to avoid for marketing messages (2025 calendar):

  • Lunar New Year: January 29-31 (plus extended celebration period through early February)
  • Cheng Ming Festival (Tomb Sweeping Day): April 4
  • Labour Day: May 1
  • Buddha's Birthday: May 5
  • Dragon Boat Festival: May 31
  • National Day: October 1-2
  • Mid-Autumn Festival: October 6-7
  • Chong Yeung Festival: October 29
  • Macao SAR Establishment Day: December 20
  • Christmas: December 24-25 (Macao Government Public Holidays 2025)

Phone Number Options and SMS Sender Types in Macao

Alphanumeric Sender ID

Operator network capability: Supported by CTM, 3 Macau (Hutchison), and SmarTone (ceased operations November 2024)

Important limitation: China Telecom Macau (MNC 45507) does not preserve alphanumeric sender IDs. All sender IDs will be overwritten to a random Hong Kong long code or generic sender ID to ensure delivery.

Registration requirements: Pre-registration not required for most carriers

Sender ID preservation:

  • CTM, 3 Macau, Hutchison: Yes, sender IDs are preserved as sent
  • China Telecom: No, sender IDs are converted to generic format

Dynamic usage: Supported for compatible carriers (CTM, 3 Macau, Hutchison)

Format specifications: 3–11 characters, including letters (a-z, A-Z), numbers (0-9), and spaces

Note: Generic sender IDs such as INFO, SMS, NOTICE are prohibited

Sender ID best practices:

Good sender ID examples:

  • Company brand names: "MacaoBank", "TravelCo", "MedClinic"
  • Service identifiers: "OrderAlert", "PayNotify", "BookingMO"
  • Short brand names: "CTM", "ShopMO", "FoodApp"

Bad sender ID examples:

  • Generic terms: "INFO", "SMS", "ALERT", "NOTICE" (prohibited)
  • All numbers: "12345678" (may be filtered as spam)
  • Special characters: "@Company", "#Alert" (may not render correctly)
  • Too long: "MacaoTravelServices" (exceeds 11 characters)
  • Misleading: "Gov-Alert" (impersonating government)

Decision matrix for sender ID type:

  • Use alphanumeric sender ID if: Brand recognition is priority, one-way communication only, targeting CTM/3 Macau subscribers primarily
  • Use international long code if: Need reliable delivery to all carriers including China Telecom, may want two-way capability in future, sending high-value transactional messages
  • Avoid short codes if: Limited carrier support makes them unreliable for primary messaging strategy

Long Codes

Domestic vs. International:

  • Domestic long codes: Not supported
  • International long codes: Fully supported across all carriers

Sender ID preservation: Yes, original sender ID is preserved

Provisioning time: Immediate to 24 hours

Use cases:

  • Transactional messages
  • Customer support communications
  • Two-factor authentication (2FA)
  • One-time passwords (OTP)
  • Appointment reminders

Costs for international long codes: Acquiring international long codes typically costs $1–$5/month per number plus per-message sending fees. Volume discounts available. Contact your SMS API provider (Twilio, Plivo, Sinch, MessageBird) for specific pricing based on originating country and monthly volume.

Short Codes

Support: Available but not widely supported across all carriers

Provisioning time: N/A

Use cases: Not recommended for primary messaging strategy due to limited carrier support

Specific carrier support: Short code support in Macao is limited. CTM may support short codes for specific enterprise agreements, but 3 Macau and China Telecom have inconsistent support. Verify carrier-specific capabilities before investing in short code infrastructure.

Restricted SMS Content, Industries, and Use Cases

Prohibited Content:

  • P2P (Person-to-Person) traffic is prohibited
  • Political content
  • Religious promotional content
  • Adult content
  • Gambling (unless licensed in Macao)
  • Cryptocurrency promotions
  • Unlicensed financial services
  • Unsolicited promotions without prior consent

What qualifies as P2P traffic vs legitimate business messaging:

P2P (Person-to-Person) traffic refers to individual-to-individual personal communications sent through consumer devices or platforms. In Macao's A2P (Application-to-Person) SMS context, P2P traffic is prohibited because:

  • It involves personal messages between individuals (not business-to-consumer)
  • Messages originate from individual users, not business applications
  • Volume and patterns resemble personal conversation rather than business campaigns

Legitimate A2P business messaging includes:

  • Transactional notifications (order confirmations, shipping updates, appointment reminders)
  • Authentication messages (OTP, 2FA codes, password resets)
  • Marketing messages with prior consent
  • Customer service updates
  • Alerts and notifications from business applications

Key distinction: Business SMS must originate from registered business applications/platforms, be sent at scale through APIs, and serve business purposes (marketing, transactions, notifications). Individual personal texts between people are not permitted through business SMS channels (Twilio P2P Definition).

Sensitive Industries Requiring Special Consideration:

  • Banking and finance (may require additional verification)
  • Healthcare (subject to data privacy requirements for health data)
  • Insurance
  • Government services

Specific requirements for sensitive industries:

  • Banking/Finance: Comply with Monetary Authority of Macao (AMCM) regulations, implement strong authentication for transaction messages, obtain prior authorization from OPDP for processing financial data
  • Healthcare: Requires prior authorization from OPDP for processing health data (sensitive personal data under Law No. 8/2005), implement enhanced security measures, obtain patient consent for each communication type
  • Insurance: Subject to insurance sector data protection requirements, clearly identify insurance provider in messages, obtain explicit consent for marketing
  • Government services: Clearly identify government agency, cannot be used for political campaigning, subject to additional verification requirements

Marketing Traffic Requirements: Obtain opt-in consent from recipients before sending any marketing traffic.

Content Filtering

Known Carrier Rules:

  • Avoid excessive punctuation or special characters
  • Do not use all-capital messages
  • Avoid misleading sender IDs
  • Generic sender IDs (INFO, SMS, NOTICE) are prohibited
  • Messages must comply with Acceptable Use Policy requirements

Definition of "excessive" with examples:

  • Excessive punctuation: More than 3 consecutive punctuation marks (e.g., "Sale!!!" is acceptable, "Sale!!!!!!!!" is excessive)
  • Excessive special characters: More than 5 special characters total or 2+ consecutive (e.g., "URGENT" may be filtered)
  • Excessive capitalization: More than 50% of message in ALL CAPS (e.g., "FINAL SALE TODAY ONLY!!!" may be filtered)
  • Spam indicators: Phrases like "FREE!!!", "ACT NOW!!!", "LIMITED TIME!!!" combined with excessive punctuation

Tips to Avoid Blocking:

  • Use consistent sender IDs across campaigns
  • Maintain regular sending patterns to establish sender reputation
  • Avoid URL shorteners (use full URLs when possible)
  • Include clear company identification in message content
  • Keep content professional, relevant, and compliant
  • Test messages across all three carriers before bulk sending

Best Practices for Sending SMS in Macao

Messaging Strategy

  • Keep messages under 160 characters when possible (165 character limit in Macao)
  • Include clear calls-to-action that guide recipients
  • Use personalization thoughtfully to improve engagement
  • Maintain consistent branding across all messages
  • Include your company name in the message body
  • For Chinese characters, use UCS-2 encoding (70 characters per segment)

Sending Frequency and Timing

  • Limit marketing messages to 2–4 per month per recipient
  • Space out messages appropriately to avoid overwhelming recipients
  • Respect local holidays and customs (Chinese New Year, Mid-Autumn Festival, etc.)
  • Monitor engagement metrics to optimize timing
  • Adjust frequency based on user engagement and opt-out rates
  • Send during recommended time windows (10:00 AM – 8:00 PM CST)

Localization

  • Support both Traditional Chinese and English
  • Consider Portuguese for specific audiences (official language alongside Chinese)
  • Use appropriate character encoding (UCS-2 for Chinese characters)
  • Respect local cultural nuances and communication styles
  • Test messages in all supported languages before deployment
  • Provide opt-out instructions in the recipient's preferred language

Cultural nuances and communication preferences:

  • Formal tone: Macao business culture values respect and formality. Use polite language (您 "nín" instead of 你 "nǐ" for "you" in Chinese)
  • Indirect communication: Avoid overly aggressive sales language or urgent pressure tactics
  • Numbers: Avoid number 4 (sounds like "death" in Chinese); numbers 8 and 9 are considered lucky
  • Color associations: Red signifies luck and prosperity (good for promotions); white is associated with mourning (avoid in marketing)
  • Holiday respect: Do not send promotional messages during Lunar New Year family time (first 3 days) or during Cheng Ming Festival (tomb-sweeping)
  • Language mixing: Educated Macao residents are comfortable with mixed Chinese-English messages for technical terms

Opt-Out Management

  • Process opt-outs in real-time or within 24 hours maximum
  • Maintain a centralized opt-out database across all campaigns
  • Send opt-out confirmation messages to users
  • Conduct regular audits of opt-out lists for accuracy
  • Train staff on proper opt-out procedures and compliance requirements
  • Respect data subjects' right to object to direct marketing (Law No. 8/2005)

Testing and Monitoring

  • Test across all three major carriers (CTM, 3 Macau, China Telecom)
  • Verify sender ID behavior on China Telecom (may override to generic ID)
  • Monitor delivery rates daily and investigate any drops
  • Track engagement metrics (open rates, click-through rates, conversions)
  • Perform regular content audits for compliance
  • Test message rendering on popular devices and operating systems

Delivery rate benchmarks for Macao:

  • Excellent: >95% delivery rate across all carriers
  • Good: 90-95% delivery rate
  • Acceptable: 85-90% delivery rate
  • Poor: <85% delivery rate (investigate carrier filtering, number quality, content issues)

Common delivery issues and troubleshooting:

  • Low delivery to China Telecom subscribers: Alphanumeric sender ID being overridden → Switch to international long code
  • High rejection rate: Content filtering triggered → Remove excessive punctuation, reduce CAPS usage, test message phrasing
  • Intermittent failures: Rate limiting → Implement exponential backoff, reduce sending speed
  • Specific numbers failing: Invalid/inactive numbers → Implement number validation, clean contact lists regularly
  • Time-based delivery drops: Carrier maintenance windows → Avoid sending 2-4 AM local time

SMS API Integration for Macao

Twilio SMS API for Macao

Twilio provides robust SMS capabilities for sending messages to Macao. Integration requires your Account SID and Auth Token for authentication.

Key Parameters:

  • from: Alphanumeric sender ID or long code
  • to: Recipient number in E.164 format (+853XXXXXXXX)
  • body: Message content (supports Unicode for Chinese characters)
typescript
import * as Twilio from 'twilio';

// Initialize Twilio client with credentials
const client = new Twilio('YOUR_ACCOUNT_SID', 'YOUR_AUTH_TOKEN');

async function sendSMSToMacao(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper E.164 formatting for Macao numbers
    const formattedNumber = to.startsWith('+853') ? to : `+853${to}`;

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

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

Note: If sending to China Telecom subscribers (MNC 45507), alphanumeric sender IDs may be converted to a generic format or Hong Kong long code.

Sinch SMS API for Macao

Sinch offers direct carrier connections for reliable message delivery to Macao. Authentication uses API token and project ID.

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

// Initialize Sinch client with credentials
const sinchClient = new SinchClient({
  projectId: 'YOUR_PROJECT_ID',
  apiToken: 'YOUR_API_TOKEN'
});

async function sendSinchSMS(
  phoneNumber: string,
  message: string
): Promise<void> {
  try {
    const response = await sinchClient.sms.batches.send({
      to: [phoneNumber], // E.164 format: +853XXXXXXXX
      message: message,
      // Encoding options for Macao
      encoding: 'AUTO', // Handles both GSM-7 and Unicode (UCS-2 for Chinese)
      sendAt: new Date().toISOString(),
    });

    console.log('Message batch ID:', response.id);
    console.log('Batch created at:', response.createdAt);
  } catch (error) {
    console.error('Sinch SMS error:', error);
    throw error;
  }
}

MessageBird SMS API for Macao

MessageBird provides high-quality SMS delivery to Macao with support for Unicode messages.

typescript
import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

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

  async sendSMS(
    recipient: string,
    message: string,
    originator: string
  ): Promise<void> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator: originator, // Alphanumeric sender ID or long code
        recipients: [recipient], // E.164 format: +853XXXXXXXX
        body: message,
        datacoding: 'unicode', // Required for Chinese characters
      }, (err: any, response: any) => {
        if (err) {
          console.error('MessageBird error:', err);
          reject(err);
        } else {
          console.log('Message ID:', response.id);
          console.log('Recipients:', response.recipients);
          resolve(response);
        }
      });
    });
  }
}

Note: Test sender ID preservation across all carriers, especially China Telecom.

Plivo SMS API for Macao

Plivo offers reliable SMS delivery to Macao with support for high-volume sending.

typescript
import plivo from 'plivo';

class PlivoService {
  private client: any;

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

  async sendSMS(
    src: string,
    dst: string,
    text: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: src, // Alphanumeric sender ID or international long code
        dst: dst, // Destination in E.164 format: +853XXXXXXXX
        text: text, // Message content (supports Unicode)
        url_strip_query_params: false // Preserve URLs in messages
      });

      console.log('Message UUID:', response.messageUuid);
      console.log('API ID:', response.apiId);
    } catch (error) {
      console.error('Plivo error:', error);
      throw error;
    }
  }
}

Enhanced error handling and retry strategies:

typescript
interface RetryConfig {
  maxRetries: number;
  initialDelayMs: number;
  maxDelayMs: number;
  backoffMultiplier: number;
}

async function sendSMSWithRetry(
  sendFunction: () => Promise<void>,
  config: RetryConfig = {
    maxRetries: 3,
    initialDelayMs: 1000,
    maxDelayMs: 10000,
    backoffMultiplier: 2
  }
): Promise<void> {
  let lastError: Error;
  let delay = config.initialDelayMs;

  for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
    try {
      await sendFunction();
      return; // Success
    } catch (error: any) {
      lastError = error;

      // Don't retry on permanent failures
      if (error.code === 21614 || // Invalid number (Twilio)
          error.status === 400 ||   // Bad request
          error.status === 403) {   // Forbidden
        throw error;
      }

      // Calculate exponential backoff delay
      if (attempt < config.maxRetries) {
        const jitter = Math.random() * 0.3 * delay; // Add 0-30% jitter
        await new Promise(resolve => setTimeout(resolve, delay + jitter));
        delay = Math.min(delay * config.backoffMultiplier, config.maxDelayMs);
      }
    }
  }

  throw lastError!;
}

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 rate limit errors
  • Use message queuing systems (Redis, RabbitMQ, AWS SQS)
  • Batch messages when possible to optimize API calls
  • Monitor delivery rates and adjust sending speed accordingly
  • Distribute traffic across multiple API providers if needed

Error Handling and Reporting

Common Error Scenarios:

  • Invalid phone number format
  • Landline number attempts (error code 21614)
  • Rate limit exceeded (HTTP 429)
  • Sender ID rejection by carrier
  • Content filtering violations

Best Practices:

  • Log all API responses with timestamps
  • Implement retry logic with exponential backoff for temporary failures
  • Monitor delivery receipts (DLRs) to track message status
  • Track common error codes by carrier
  • Set up alerts for unusual error rates or delivery failures
  • Maintain separate error logs for each carrier to identify patterns

Comprehensive error code reference:

Error CodeProviderDescriptionAction Required
21614TwilioInvalid phone number (landline or inactive)Validate number format, remove from list
21408TwilioPermission denied (country not enabled)Enable Macao in account geo-permissions
21211TwilioInvalid 'To' numberVerify E.164 format (+853XXXXXXXX)
429AllRate limit exceededImplement exponential backoff, reduce send rate
400AllBad request (invalid parameters)Check API parameters, message encoding
401AllAuthentication failedVerify API credentials
402TwilioInsufficient balanceAdd funds to account
403AllForbidden (sender ID rejected)Use approved sender ID or long code
500-503AllServer errorRetry with exponential backoff

Recap and Additional Resources

Key Takeaways:

  • Ensure proper phone number formatting (+853 prefix for E.164 format)
  • Support Unicode (UCS-2) encoding for Traditional Chinese characters
  • Implement proper opt-out handling within 24 hours (Law No. 8/2005 requirement)
  • Notify OPDP within 8 days of commencing personal data processing
  • Monitor delivery rates across all carriers (CTM, 3 Macau, China Telecom)
  • Be aware that China Telecom may override alphanumeric sender IDs
  • Follow China Standard Time (UTC+8) for sending windows
  • Obtain explicit consent before sending marketing messages

Next Steps:

  1. Review Macao Personal Data Protection Law No. 8/2005 requirements
  2. Register data processing activities with OPDP (within 8 days of commencement)
  3. Set up proper error monitoring and delivery tracking systems
  4. Implement comprehensive delivery tracking across all three carriers
  5. Establish opt-out handling procedures compliant with Law No. 8/2005
  6. Test sender ID preservation on China Telecom network

Official Regulatory Resources:

Industry Resources:

Important Notes:

  • Administrative Regulation No. 42/2023 (effective February 1, 2024) reorganized the data protection authority structure
  • Radio Communications Law No. 21/2024 (effective January 1, 2025) updated telecommunications equipment and licensing requirements
  • Number portability is not available in Macao, simplifying carrier routing
  • No official Do Not Call registry exists, but you must maintain internal suppression lists

Frequently Asked Questions (FAQ)

What are the main mobile operators in Macao?

Macao has three major mobile operators: CTM (Companhia de Telecomunicações de Macau) with 45% market share, 3 Macau (Hutchison), and China Telecom Macau. SmarTone ceased operations on November 11, 2024.

Are alphanumeric sender IDs supported in Macao?

Yes, alphanumeric sender IDs are supported by CTM, 3 Macau, and Hutchison without pre-registration. However, China Telecom Macau (MNC 45507) overrides all sender IDs to a generic format or Hong Kong long code.

What are Macao's SMS data protection requirements?

Comply with Personal Data Protection Law No. 8/2005. This requires obtaining explicit consent before sending marketing messages, notifying the Office for Personal Data Protection (OPDP) within 8 days of starting data processing, and implementing proper security measures.

Do I need to register SMS campaigns with Macao authorities?

Yes. Under Law No. 8/2005, notify the OPDP within 8 days of commencing personal data processing activities. Prior authorization is required for processing sensitive personal data or credit/solvency data.

What encoding should I use for Chinese characters in Macao SMS?

Use UCS-2 (Unicode) encoding for Traditional Chinese characters. This limits messages to 70 characters per segment. GSM-7 encoding supports up to 160 characters for English text.

What is the maximum SMS message length in Macao?

Standard SMS limits apply: 160 characters for GSM-7 encoding (English), 70 characters for UCS-2 encoding (Chinese). Macao supports 165-character messages. Concatenated messages are supported by most carriers.

Is two-way SMS supported in Macao?

No. Two-way SMS is not currently supported in Macao. Design your SMS strategies around one-way communications only. If you need customer responses, implement alternative channels.

What are the permitted sending hours for SMS in Macao?

Recommended sending windows: business messages 9:00 AM – 6:00 PM CST, marketing messages 10:00 AM – 8:00 PM CST. Send urgent notifications 24/7 if necessary. Macao follows China Standard Time (UTC+8).

How much does it cost to send SMS in Macao?

International SMS API providers charge approximately $0.02–$0.06 per message (Sinch: $0.02835, Plivo: $0.02952, Twilio: $0.059). Local prepaid SMS costs MOP 0.10–0.50 per message. Volume discounts available.

What are typical SMS delivery times in Macao?

Most SMS messages are delivered within 5-30 seconds during normal network conditions. Peak hours (12-1 PM, 6-8 PM) may experience slight delays. Delivery confirmation via DLR (Delivery Receipt) typically arrives within 1-2 minutes.

What should I do if my delivery rates are low?

Check for: (1) Content filtering issues (excessive punctuation/caps), (2) China Telecom sender ID override (switch to long code), (3) Invalid/landline numbers (validate with 6XXX XXXX format), (4) Rate limiting (implement backoff), (5) Carrier-specific blocks (test each carrier separately).

Frequently Asked Questions

How to send SMS messages to Macao?

Use an SMS API like Twilio, Sinch, MessageBird, or Plivo. Ensure recipient numbers are in E.164 format (+853) and encode messages in Unicode to support Chinese characters. Remember to handle opt-outs and monitor delivery rates.

What is the character limit for SMS in Macao?

Macao SMS follows standard length limits: 160 characters for GSM-7 encoding and 70 characters for UCS-2 encoding. Concatenated messages are supported to send longer texts, but each segment is still subject to these limits.

Why does SMS delivery fail for landlines in Macao?

SMS to landline numbers isn't supported in Macao. Attempts to send to landlines will result in delivery failure and API errors (like error code 21614 for Twilio) without incurring charges.

When should I send marketing SMS in Macao?

The recommended window for marketing SMS is between 10:00 AM and 8:00 PM Macao local time (UTC+8). Respect local holidays and avoid sending during major holidays unless it's an urgent notification.

Can I use alphanumeric sender IDs in Macao?

Yes, alphanumeric sender IDs are supported in Macao and don't require pre-registration. This allows for flexible and dynamic sender ID changes while preserving the sent ID, enhancing brand recognition.

What SMS compliance guidelines apply in Macao?

While Macao lacks specific SMS marketing regulations, adhere to international best practices and data privacy principles. Obtain explicit consent before sending marketing messages, support opt-out keywords (STOP, CANCEL, UNSUBSCRIBE, and Chinese equivalents), and maintain meticulous consent records.

How to handle opt-outs for SMS in Macao?

Process opt-out requests immediately, within 24 hours, and send confirmation messages. Maintain a centralized opt-out database and regularly audit these lists. Train staff on opt-out procedures and ensure automated processing.

What is the best encoding for Macao SMS?

Both GSM-7 and UCS-2 encodings are supported. However, if your message includes Chinese characters, you must use UCS-2 encoding, limiting each segment to 70 characters. For messages without special characters, GSM-7 allows 160 characters per segment.

What are the restricted SMS content types in Macao?

Restricted content includes gambling (unless licensed), adult content, cryptocurrency promotions, and unlicensed financial services. Sensitive industries like banking, healthcare, insurance, and government services require special consideration and adherence to stricter guidelines.

How to optimize SMS messaging strategy in Macao?

Keep messages concise (under 160 characters), include clear calls-to-action, and personalize thoughtfully. Maintain consistent branding, include your company name, and localize content in Traditional Chinese, English, and potentially Portuguese.

What are the API rate limits for sending SMS to Macao?

Rate limits vary by provider: Twilio (100/second), Sinch (30/second), MessageBird (60/second), and Plivo (50/second). Manage throughput by implementing exponential backoff for retries, using message queues, batching messages, and monitoring delivery rates.

What are the best practices for error handling when sending SMS to Macao?

Log all API responses, implement retry logic for temporary failures, monitor delivery receipts, track common error codes, and set up alerts for unusual error rates to ensure efficient and reliable SMS delivery.

What phone number types are supported for sending SMS to Macao?

International long codes are fully supported for sending SMS to Macao. Domestic long codes and short codes are not recommended as primary messaging channels, while alphanumeric sender IDs are fully supported and offer flexibility.

Is MMS supported in Macao?

No, MMS is not currently available in Macao. If you need to send rich media content, include a URL within your SMS message directing the recipient to the content hosted online.

Is two-way SMS supported in Macao?

No, two-way SMS is not supported in Macao. Businesses should design their SMS communication strategies around one-way communication only.