Brunei SMS Best Practices, Compliance, and Features
Brunei SMS Market Overview
Locale name: | Brunei |
---|---|
ISO code: | BN |
Region | Asia |
Mobile country code (MCC) | 528 |
Dialing Code | +673 |
Market Conditions: Brunei has a highly developed mobile telecommunications infrastructure with widespread SMS usage. The market is dominated by major operators including DST, Progresif, and imagine. While OTT messaging apps like WhatsApp and WeChat are popular, SMS remains crucial for business communications and authentication services due to its reliability and universal reach.
Key SMS Features and Capabilities in Brunei
Brunei supports standard SMS features including alphanumeric sender IDs and concatenated messages, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Brunei for A2P messaging.
No special requirements are available as this feature is not currently supported.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported, though availability may vary by sender ID type.
Message length rules: Standard SMS length limits apply - 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported, with messages automatically split and rejoined based on the encoding used.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link for accessing multimedia content.
Best Practice: When sending multimedia content, ensure the URL is short and clearly labeled, and consider including the content's file size in the message.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Brunei.
This means phone numbers remain tied to their original mobile network operators, simplifying message routing and delivery.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Brunei.
Attempts to send SMS to landline numbers will result in a 400 response with error code 21614, and the message will not be delivered or charged to the account.
Compliance and Regulatory Guidelines for SMS in Brunei
The Authority for Info-communications Technology Industry (AITI) oversees SMS communications in Brunei under the Telecommunications Order, 2001. AITI enforces strict regulations focusing on consumer protection and data privacy.
Consent and Opt-In
Explicit Consent Requirements:
- Implement a multi-layer consent capture system
- Record timestamps and consent actions
- Generate unique consent identifiers
- Maintain consent records for minimum 2 years
Documentation Must Include:
- User ID
- Phone number
- Consent timestamp
- Consent channel
- Purpose codes
- Terms version
HELP/STOP and Other Commands
Required Keywords:
- English: "STOP", "CANCEL", "UNSUBSCRIBE", "END"
- Malay: "BERHENTI", "TAMAT"
Implementation Requirements:
- Process opt-out requests within 24 hours
- Send confirmation messages in both English and Malay
- Update centralized opt-out database in real-time
Do Not Call / Do Not Disturb Registries
While Brunei doesn't maintain a centralized DNC registry, businesses must:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Document all opt-out actions
- Regularly audit and update suppression lists
Time Zone Sensitivity
Regulated Hours:
- Permitted sending window: 8:00 AM - 8:00 PM Brunei Standard Time (UTC+8)
- Automated business hours validation required
- Exception for urgent messages (must be clearly marked as urgent)
Phone Numbers Options and SMS Sender Types for Brunei
Alphanumeric Sender ID
Operator network capability: Supported
Registration requirements: Pre-registration not required, dynamic usage supported
Sender ID preservation: Yes, sender IDs are preserved as specified
Long Codes
Domestic vs. International:
- Domestic long codes: Not supported
- International long codes: Supported
Sender ID preservation: Yes, original sender ID is preserved
Provisioning time: Immediate to 24 hours
Use cases: Ideal for transactional messages and two-factor authentication
Short Codes
Support: Not supported in Brunei
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Gambling and betting services
- Adult content or explicit material
- Unauthorized financial services
- Cryptocurrency promotions without proper licensing
- Political campaign messages without authorization
Content Filtering
Carrier Filtering Rules:
- Messages containing restricted keywords are automatically blocked
- URLs must be from approved domains
- Message content must comply with local cultural and religious sensitivities
Best Practices to Avoid Blocking:
- Avoid excessive punctuation and special characters
- Use approved URL shorteners
- Include clear business identification
- Follow character encoding standards
Best Practices for Sending SMS in Brunei
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Use business name consistently
- Avoid excessive capitalization
Sending Frequency and Timing
- Maximum 3 messages per recipient per day
- Respect religious observances (especially during Ramadan)
- Avoid sending during Friday prayers (12:00 PM - 2:00 PM)
- Consider public holidays and royal celebrations
Localization
- Use both English and Malay for wider reach
- Malay language messages should use proper formal Malay
- Consider cultural sensitivities in message content
- Use appropriate honorifics when addressing recipients
Opt-Out Management
- Include clear opt-out instructions in every message
- Process opt-outs within 24 hours
- Send opt-out confirmation in both English and Malay
- Maintain accurate opt-out records
Testing and Monitoring
- Test messages across all major carriers (DST, Progresif, imagine)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular audit of consent records and suppression lists
SMS API integrations for Brunei
Twilio
Twilio provides a robust SMS API with comprehensive support for Brunei. Integration requires an Account SID and Auth Token from your Twilio dashboard.
import * as Twilio from 'twilio';
// Initialize Twilio client
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID, // Your Account SID
process.env.TWILIO_AUTH_TOKEN // Your Auth Token
);
// Function to send SMS to Brunei
async function sendSmsToBrunei(
to: string, // Recipient number (format: +673XXXXXXX)
message: string, // Message content
senderId: string = 'YOUR_SENDER' // Alphanumeric sender ID
) {
try {
const response = await client.messages.create({
body: message,
to: to, // Brunei number in E.164 format
from: senderId, // Your approved sender ID
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers direct carrier connections in Brunei with high deliverability rates. Authentication uses a service plan ID and API token.
import axios from 'axios';
class SinchSmsService {
private readonly apiToken: string;
private readonly servicePlanId: string;
private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';
constructor(servicePlanId: string, apiToken: string) {
this.servicePlanId = servicePlanId;
this.apiToken = apiToken;
}
async sendSmsToBrunei(
to: string, // Recipient number
message: string, // Message content
senderId: string // Sender ID
) {
try {
const response = await axios.post(
`${this.baseUrl}/${this.servicePlanId}/batches`,
{
from: senderId,
to: [to],
body: message,
// Brunei-specific delivery options
delivery_report: 'summary'
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
}
MessageBird
MessageBird provides reliable SMS delivery in Brunei with support for both alphanumeric and numeric sender IDs.
import { MessageBird } from 'messagebird';
class MessageBirdService {
private client: MessageBird;
constructor(apiKey: string) {
this.client = new MessageBird(apiKey);
}
sendMessage(
recipient: string, // Brunei number
message: string, // Message content
originator: string // Sender ID
): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator,
recipients: [recipient],
body: message,
// Brunei-specific parameters
datacoding: 'auto', // Automatic character encoding
type: 'sms' // Message type
}, (err, response) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
API Rate Limits and Throughput
Rate Limits for Brunei:
- Maximum 3 messages per recipient per day
- Batch sending limit: 100 messages per request
- API calls: 100 requests per second
Throughput Management Strategies:
- Implement message queuing using Redis or RabbitMQ
- Use batch sending for large campaigns
- Implement exponential backoff for retries
- Monitor delivery rates and adjust sending speed
Error Handling and Reporting
Logging Best Practices:
- Log all API responses and delivery statuses
- Implement webhook endpoints for delivery receipts
- Track message lifecycle events
- Store delivery receipts for compliance
Troubleshooting Tips:
- Verify phone number format (E.164)
- Check sender ID compliance
- Monitor rate limit headers
- Implement circuit breakers for API calls
Recap and Additional Resources
Key Takeaways:
- Always use E.164 format for phone numbers (+673XXXXXXX)
- Implement proper consent management
- Respect local business hours (8:00 AM - 8:00 PM)
- Support both English and Malay opt-out keywords
Next Steps:
- Review AITI regulations at www.aiti.gov.bn
- Implement consent collection system
- Set up delivery monitoring
- Test message delivery across all carriers
Additional Resources:
- AITI Guidelines: www.aiti.gov.bn/sms-guidelines
- Telecommunications Order, 2001: www.agc.gov.bn
- SMS Best Practices Guide: www.aiti.gov.bn/sms-best-practices
Contact Information:
- AITI Support: +673 232 3232
- Technical Support: support@aiti.gov.bn