sms compliance

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

Bangladesh SMS Guide

A technical guide to SMS in Bangladesh, covering compliance, features, and delivery. Learn about sender ID registration (3-week approval for some), GSM-7 (160 chars) vs UCS-2 encoding, and two-way SMS limitations. Includes API integration examples (Twilio, Sinch) and BTRC guidelines.

Bangladesh SMS Best Practices, Compliance, and Features

Bangladesh SMS Market Overview

Locale name:Bangladesh
ISO code:BD
RegionAsia
Mobile country code (MCC)470
Dialing Code+880

Market Conditions: Bangladesh has a vibrant mobile communications market with over 180 million mobile subscribers. The major mobile operators include Grameenphone (market leader), Robi, Banglalink, and Teletalk. While OTT messaging apps like WhatsApp and Facebook Messenger are popular in urban areas, SMS remains crucial for business communications, authentication, and reaching rural populations. Android devices dominate the market with over 95% market share, while iOS devices represent less than 5% of mobile users.


Key SMS Features and Capabilities in Bangladesh

Bangladesh supports basic SMS functionality with some limitations on two-way messaging and specific requirements for sender ID registration, particularly for major operators like Robi, Teletalk, and Grameenphone.

Two-way SMS Support

Two-way SMS is not supported in Bangladesh. Recipients cannot reply to messages sent through standard SMS APIs and platforms.

Concatenated Messages (Segmented SMS)

Support: Yes, concatenated messaging is supported, though availability may vary by sender ID type.
Message length rules: Standard 160 characters for GSM-7 encoding before splitting occurs. Messages using UCS-2 encoding are limited to 70 characters before concatenation.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. UCS-2 is required for Bangla text and special characters.

MMS Support

MMS is not directly supported in Bangladesh. When MMS messages are sent, they are automatically converted to SMS messages containing a URL link to view the multimedia content. This ensures compatibility while still allowing rich media sharing.

Recipient Phone Number Compatibility

Number Portability

Number portability is available in Bangladesh, allowing users to keep their phone numbers when switching between mobile operators. This feature does not significantly impact SMS delivery or routing as messages are properly directed to the current carrier.

Sending SMS to Landlines

Sending SMS to landline numbers is not possible in Bangladesh. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) from SMS APIs, and the message will not be delivered or charged to the sender's account.

Compliance and Regulatory Guidelines for SMS in Bangladesh

The Bangladesh Telecommunication Regulatory Commission (BTRC) oversees SMS communications and enforces regulations for marketing messages. All A2P SMS providers must be licensed by BTRC, and promotional content must receive approval before distribution. The Digital Security Act 2018 also applies to SMS communications, particularly regarding data privacy and security.

Explicit Consent Requirements:

  • Written or digital confirmation required before sending marketing messages
  • Maintain detailed records of opt-in dates, sources, and methods
  • Double opt-in recommended for marketing campaigns
  • Clear disclosure of message frequency and purpose at signup

Best Practices for Documentation:

  • Store consent records for at least 2 years
  • Include timestamp and source of consent
  • Maintain audit trail of consent changes
  • Regular validation of consent database

HELP/STOP and Other Commands

  • All SMS campaigns must support standard opt-out keywords: STOP, UNSUBSCRIBE, CANCEL
  • HELP command must provide customer support information
  • Keywords must work in both English and Bangla
  • Response to STOP/HELP commands must be immediate and free of charge
  • Common Bangla keywords must also be supported: "????????????" (stop), "?????????????????????" (help)

Do Not Call / Do Not Disturb Registries

Bangladesh maintains a National Do Not Call Registry (NDNC) managed by BTRC.

  • Regular checks against NDNC database required
  • Maintain internal suppression lists
  • Update opt-out lists across all campaigns within 24 hours
  • Implement automated filtering system for NDNC numbers
  • Quarterly audit of compliance recommended

Time Zone Sensitivity

Bangladesh follows GMT+6 timezone (BST).

  • Restrict marketing messages to 9 AM - 9 PM BST
  • Emergency and transactional messages allowed 24/7
  • Respect religious and national holidays
  • Avoid sending during prayer times
  • Consider Ramadan timing adjustments

Phone Numbers Options and SMS Sender Types for Bangladesh

Alphanumeric Sender ID

Operator network capability: Supported by all major operators
Registration requirements:

  • Pre-registration required for Robi, Teletalk, and Grameenphone
  • 3-week approval process
  • Business documentation required
  • Dynamic usage supported after registration

Sender ID preservation: Yes, registered IDs are preserved across networks

Long Codes

Domestic vs. International:

  • Domestic long codes not supported
  • International long codes blocked on Robi, Teletalk, and Grameenphone

Sender ID preservation: No, international long codes may be modified Provisioning time: N/A Use cases: Not recommended for Bangladesh market

Short Codes

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

Restricted SMS Content, Industries, and Use Cases

Restricted Industries:

  • Gambling and betting
  • Adult content
  • Unauthorized financial services
  • Political messaging without approval
  • Cryptocurrency promotion

Regulated Industries:

  • Banking (requires BTRC approval)
  • Insurance (needs regulatory clearance)
  • Healthcare (patient privacy rules apply)
  • Education (must follow ministry guidelines)

Content Filtering

Carrier Filtering Rules:

  • Keywords related to restricted industries
  • Links from unauthorized domains
  • Excessive punctuation or capitalization
  • Multiple consecutive spaces
  • Suspected spam patterns

Best Practices to Avoid Blocking:

  • Use registered sender IDs
  • Avoid URL shorteners
  • Maintain consistent sending patterns
  • Keep message format professional
  • Use approved templates for regulated industries

Best Practices for Sending SMS in Bangladesh

Messaging Strategy

  • Limit messages to 160 characters when possible
  • Include clear call-to-action
  • Personalize using recipient's name
  • Maintain consistent sender ID
  • Use templates for common messages

Sending Frequency and Timing

  • Maximum 3 marketing messages per week per user
  • Respect religious prayer times
  • Avoid late night/early morning sends
  • Plan around Ramadan schedules
  • Consider Friday as weekly holiday

Localization

  • Bangla required for promotional messages
  • English allowed for transactional/OTP
  • Use proper Bangla font encoding
  • Consider regional language variations
  • Test Bangla character rendering

Opt-Out Management

  • Process opt-outs within 24 hours
  • Confirm opt-out with acknowledgment
  • Maintain centralized opt-out database
  • Regular audit of opt-out lists
  • Train support staff on opt-out handling

Testing and Monitoring

  • Test across all major carriers
  • Monitor delivery rates by operator
  • Track opt-out rates
  • Analyze engagement patterns
  • Regular content compliance checks

SMS API integrations for Bangladesh

Twilio

Twilio provides a robust SMS API with specific support for Bangladesh's requirements. Authentication uses account SID and auth token, with mandatory sender ID registration for major carriers.

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 Bangladesh
async function sendSmsToBangladesh(
  to: string,
  message: string,
  senderId: string
): Promise<void> {
  try {
    // Ensure proper number formatting for Bangladesh
    const formattedNumber = to.startsWith('+880') ? to : `+880${to}`;

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

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

Sinch

Sinch offers comprehensive SMS capabilities for Bangladesh with support for both transactional and promotional messages.

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

// Initialize Sinch client
const sinchClient = new SinchClient({
  servicePlanId: process.env.SINCH_SERVICE_PLAN_ID,
  apiToken: process.env.SINCH_API_TOKEN,
  region: 'asia' // Specify Asia region for better latency
});

// Function to send batch SMS
async function sendBatchSms(
  recipients: string[],
  message: string,
  senderId: string
): Promise<void> {
  try {
    const response = await sinchClient.sms.batches.create({
      from: senderId,
      to: recipients.map(num => num.startsWith('+880') ? num : `+880${num}`),
      body: message,
      delivery_report: 'summary',
      // Support for Bangla characters
      encoding: 'UCS2'
    });

    console.log(`Batch ID: ${response.id}`);
  } catch (error) {
    console.error('Batch sending failed:', error);
    throw error;
  }
}

MessageBird

MessageBird provides reliable SMS delivery in Bangladesh with support for local language content.

typescript
import { MessageBird } from 'messagebird';

// Initialize MessageBird client
const messagebird = MessageBird(process.env.MESSAGEBIRD_API_KEY);

// Function to send SMS with delivery tracking
async function sendSmsWithTracking(
  recipient: string,
  message: string,
  senderId: string
): Promise<void> {
  const params = {
    originator: senderId,
    recipients: [recipient],
    body: message,
    // Optional parameters
    reportUrl: 'https://your-webhook.com/delivery',
    encoding: 'unicode' // For Bangla text
  };

  try {
    const response = await new Promise((resolve, reject) => {
      messagebird.messages.create(params, (err, response) => {
        if (err) reject(err);
        else resolve(response);
      });
    });

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

Plivo

Plivo offers high-throughput SMS capabilities with specific features for Bangladesh market requirements.

typescript
import { Client } from 'plivo';

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

// Function to send SMS with retry logic
async function sendSmsWithRetry(
  to: string,
  message: string,
  senderId: string,
  maxRetries = 3
): Promise<void> {
  let attempts = 0;

  while (attempts < maxRetries) {
    try {
      const response = await plivo.messages.create({
        src: senderId,
        dst: to.startsWith('+880') ? to : `+880${to}`,
        text: message,
        // Optional parameters
        url_strip_query: false, // Preserve URL parameters
        method: 'POST'
      });

      console.log(`Message sent successfully. ID: ${response.messageUuid}`);
      return;
    } catch (error) {
      attempts++;
      if (attempts === maxRetries) throw error;
      await new Promise(resolve => setTimeout(resolve, 1000 * attempts));
    }
  }
}

API Rate Limits and Throughput

  • Twilio: 100 messages/second
  • Sinch: 50 messages/second
  • MessageBird: 75 messages/second
  • Plivo: 30 messages/second

Throughput Management Strategies:

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

Error Handling and Reporting

  • Implement comprehensive logging with correlation IDs
  • Monitor delivery receipts via webhooks
  • Track carrier-specific error codes
  • Set up alerts for delivery rate drops
  • Maintain error rate dashboards by carrier

Recap and Additional Resources

Key Takeaways:

  • Pre-register sender IDs for major carriers
  • Support both English and Bangla content
  • Implement proper opt-out handling
  • Monitor delivery rates by carrier
  • Follow time-sensitive sending guidelines

Next Steps:

  1. Review BTRC guidelines for SMS marketing
  2. Register sender IDs with major carriers
  3. Implement proper consent management
  4. Set up delivery monitoring systems

Additional Information:

Frequently Asked Questions

How to send SMS messages in Bangladesh?

Use a registered alphanumeric sender ID with an SMS API like Twilio, Sinch, MessageBird, or Plivo. Ensure the recipient number starts with +880 and the content complies with BTRC regulations. Pre-registering your sender ID with major operators like Robi, Teletalk, and Grameenphone is essential.

What is the SMS market like in Bangladesh?

Bangladesh has over 180 million mobile subscribers. While OTT apps are popular, SMS remains vital, especially for reaching rural areas. Android dominates the market, with iOS holding less than 5% share.

Why does Bangladesh not support two-way SMS?

Standard SMS APIs and platforms in Bangladesh do not support two-way messaging. Recipients cannot reply to messages sent via these methods.

When should I send marketing SMS in Bangladesh?

Send marketing messages between 9 AM and 9 PM BST, considering religious holidays and Ramadan. Avoid sending during prayer times and respect the weekly holiday on Friday.

Can I use a short code for sending SMS in Bangladesh?

No, short codes are not currently supported in Bangladesh. Alphanumeric sender IDs are the preferred option and require registration with major operators.

What is the process for sender ID registration in Bangladesh?

Registration is required for alphanumeric sender IDs, especially with Robi, Teletalk, and Grameenphone. It involves a 3-week approval process and requires submitting business documentation to the respective operators.

What are the character limits for SMS in Bangladesh?

GSM-7 encoding allows 160 characters before splitting, while UCS-2 allows 70 characters. UCS-2 is required for Bangla text and special characters.

How to handle opt-outs for SMS campaigns in Bangladesh?

Process opt-out requests (STOP, UNSUBSCRIBE, CANCEL, and Bangla equivalents) within 24 hours and send a confirmation. Maintain a centralized opt-out database and regularly audit it.

What are the restrictions on SMS content in Bangladesh?

Gambling, adult content, unauthorized financial services, and political messaging without approval are prohibited. Regulated industries like banking and healthcare have specific content rules.

What are the best practices for SMS marketing in Bangladesh?

Use registered sender IDs, personalize messages, limit frequency to 3 per week per user, localize content in Bangla, and respect local time zones and cultural sensitivities.

How to send SMS to Bangladesh using Twilio?

Initialize the Twilio client with your credentials. Format the recipient number with +880, use a pre-registered sender ID, and utilize the client's messages.create method to send the message.

How are MMS messages handled in Bangladesh?

MMS is not directly supported. They are converted to SMS messages containing a URL to view the multimedia content.

Can I send SMS messages to landlines in Bangladesh?

No, sending SMS to landlines in Bangladesh is not possible and will result in a 400 response error (code 21614) from SMS APIs.

What is the role of BTRC in SMS communications in Bangladesh?

The Bangladesh Telecommunication Regulatory Commission (BTRC) oversees SMS communications, enforces regulations, licenses A2P SMS providers, and requires approval for promotional content.

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

Rate limits vary by provider: Twilio (100/second), Sinch (50/second), MessageBird (75/second), and Plivo (30/second). Use batch APIs and queueing to manage throughput.