Bangladesh SMS Best Practices, Compliance, and Features
Bangladesh SMS Market Overview
Locale name: | Bangladesh |
---|---|
ISO code: | BD |
Region | Asia |
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.
Consent and Opt-In
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.
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.
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.
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.
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:
- Review BTRC guidelines for SMS marketing
- Register sender IDs with major carriers
- Implement proper consent management
- Set up delivery monitoring systems
Additional Information:
- BTRC Official Website: www.btrc.gov.bd
- Digital Security Act 2018: www.ictd.gov.bd
- Bangladesh Mobile Operators Association: www.amtob.org.bd