Swaziland SMS Best Practices, Compliance, and Features
Swaziland SMS Market Overview
Locale name: | Swaziland |
---|---|
ISO code: | SZ |
Region | Middle East & Africa |
Mobile country code (MCC) | 653 |
Dialing Code | +268 |
Market Conditions: Swaziland's mobile market is characterized by growing SMS adoption for business communications and customer engagement. While Over-The-Top (OTT) messaging apps are gaining popularity, SMS remains a reliable channel for reaching customers due to its universal accessibility and high open rates. The market is primarily served by major mobile operators providing consistent SMS delivery infrastructure.
Key SMS Features and Capabilities in Swaziland
Swaziland offers basic SMS capabilities with some limitations on advanced features like two-way messaging and concatenation.
Two-way SMS Support
Two-way SMS is not supported in Swaziland through standard API providers. Your applications should be designed for one-way communications only, typically focusing on notifications, alerts, and marketing messages.
Concatenated Messages (Segmented SMS)
Support: Concatenated messaging is not supported in Swaziland.
Message length rules: Messages must be kept within standard SMS length limits.
Encoding considerations: Both GSM-7 and UCS-2 encoding are supported, with UCS-2 being particularly important for local language support.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This means that when sending rich media content, recipients will receive a text message containing a link to view the media content online.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Swaziland. This means mobile numbers remain tied to their original network operators, which helps ensure more reliable message routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Swaziland. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) through the API, with no message delivery and no charges incurred.
Compliance and Regulatory Guidelines for SMS in Swaziland
SMS communications in Swaziland are governed by the Swaziland Communications Commission (Subscriber Registration) Regulations, 2016. The primary regulatory body is the Swaziland Communications Commission (ESCCOM), which oversees telecommunications services and data protection requirements.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain and document clear opt-in consent before sending any marketing messages
- Maintain detailed records of when and how consent was obtained
- Include clear terms and conditions during the opt-in process
- Provide transparent information about message frequency and content type
HELP/STOP and Other Commands
- All SMS campaigns must support standard HELP and STOP commands
- Keywords should be recognized in both English and siSwati
- Common commands include:
- STOP, CANCEL, UNSUBSCRIBE, END
- HELP, INFO
- Responses to these commands should be immediate and in the user's preferred language
Do Not Call / Do Not Disturb Registries
While Swaziland does not maintain an official Do Not Call registry, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests within 24 hours
- Document all opt-out requests for compliance purposes
- Regularly clean contact lists to remove unsubscribed numbers
Time Zone Sensitivity
Swaziland follows SAST (South African Standard Time, UTC+2) Recommended Sending Hours:
- Business messages: 8:00 AM to 6:00 PM SAST
- Marketing messages: 9:00 AM to 5:00 PM SAST
- Urgent notifications: Can be sent 24/7 if critical
Phone Numbers Options and SMS Sender Types for in Swaziland
Alphanumeric Sender ID
Operator network capability: Supported with pre-registration
Registration requirements: Global pre-registration required; no dynamic usage allowed
Sender ID preservation: Yes, registered IDs are preserved
Additional notes:
- Promotional content is not allowed for registered sender IDs
- Generic sender IDs (e.g., InfoSMS, INFO, Verify) are discouraged
- Registration process takes approximately 3 weeks
Long Codes
Domestic vs. International: Neither domestic nor international long codes are supported
Sender ID preservation: N/A
Provisioning time: N/A
Use cases: Not available for SMS messaging in Swaziland
Short Codes
Support: Not currently supported in Swaziland
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Content Types:
- Gambling and betting services
- Adult content or explicit material
- Unauthorized financial services
- Cryptocurrency promotions
- Political campaign messages without proper authorization
Content Filtering
Known Carrier Filtering Rules:
- Messages containing certain keywords may be blocked
- URLs should be from reputable domains
- Avoid excessive punctuation and all-caps text
Best Practices to Avoid Filtering:
- Use clear, professional language
- Avoid spam trigger words
- Include company name in messages
- Keep URLs to a minimum
Best Practices for Sending SMS in Swaziland
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Personalize messages using recipient's name
- Maintain consistent branding across messages
Sending Frequency and Timing
- Limit marketing messages to 2-4 per month per recipient
- Respect local holidays and cultural events
- Avoid sending during major religious observances
- Space out messages to prevent recipient fatigue
Localization
- Support both English and siSwati
- Consider cultural context in message content
- Use appropriate date and time formats
- Respect local customs and sensitivities
Opt-Out Management
- Process opt-outs within 24 hours
- Send confirmation of opt-out completion
- Maintain accurate opt-out records
- Regular audit of opt-out list compliance
Testing and Monitoring
- Test messages across major local carriers
- Monitor delivery rates and engagement
- Track opt-out rates and patterns
- Regular review of message performance metrics
SMS API integrations for Swaziland
Twilio
Twilio provides a robust SMS API for sending messages to Swaziland. Here's how to implement it:
import * as Twilio from 'twilio';
// Initialize the Twilio client with your credentials
const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
// Create Twilio client instance
const client = new Twilio(accountSid, authToken);
// Function to send SMS to Swaziland
async function sendSMSToSwaziland(
to: string,
message: string,
senderId: string
) {
try {
// Ensure number is in E.164 format for Swaziland (+268)
const formattedNumber = to.startsWith('+268') ? to : `+268${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Must be pre-registered alphanumeric sender ID
to: formattedNumber
});
console.log(`Message sent successfully! SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers SMS capabilities for Swaziland through their REST API:
import { SinchClient } from '@sinch/sdk-core';
// Initialize Sinch client
const sinchClient = new SinchClient({
projectId: process.env.SINCH_PROJECT_ID,
keyId: process.env.SINCH_KEY_ID,
keySecret: process.env.SINCH_KEY_SECRET
});
// Function to send SMS using Sinch
async function sendSinchSMS(
recipientNumber: string,
messageText: string
) {
try {
const response = await sinchClient.sms.batches.send({
sendSMSRequestBody: {
to: [recipientNumber], // Must include country code +268
from: "YourBrand", // Pre-registered sender ID
body: messageText
}
});
console.log('Message sent:', response);
return response;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
MessageBird
MessageBird (referenced as "Bird" in the template) provides SMS services for Swaziland:
import { MessageBird } from 'messagebird';
// Initialize MessageBird client
const messagebird = new MessageBird(process.env.MESSAGEBIRD_API_KEY);
// Function to send SMS via MessageBird
async function sendMessageBirdSMS(
to: string,
message: string,
originator: string
) {
return new Promise((resolve, reject) => {
messagebird.messages.create({
originator: originator, // Pre-registered sender ID
recipients: [to], // Must include +268 prefix
body: message
}, (err, response) => {
if (err) {
console.error('MessageBird Error:', err);
reject(err);
} else {
console.log('Message sent successfully:', response);
resolve(response);
}
});
});
}
Plivo
Plivo's API can be used to send SMS to Swaziland:
import * as plivo from 'plivo';
// Initialize Plivo client
const client = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
// Function to send SMS via Plivo
async function sendPlivoSMS(
destination: string,
message: string,
senderId: string
) {
try {
const response = await client.messages.create({
src: senderId, // Pre-registered sender ID
dst: destination, // Include +268 prefix
text: message
});
console.log('Plivo message sent:', response);
return response;
} catch (error) {
console.error('Plivo Error:', error);
throw error;
}
}
API Rate Limits and Throughput
- Default rate limit: 100 messages per second
- Batch processing recommended for large volumes
- Implement exponential backoff for retry logic
- Queue messages during peak times
Throughput Management Strategies:
- Use message queuing systems (Redis, RabbitMQ)
- Implement rate limiting middleware
- Monitor delivery rates and adjust sending patterns
- Batch similar messages for efficient processing
Error Handling and Reporting
- Implement comprehensive error logging
- Monitor delivery receipts (DLRs)
- Track common error codes:
- 4001: Invalid number format
- 4002: Network not available
- 4003: Message content rejected
- Store message metadata for troubleshooting
Recap and Additional Resources
Key Takeaways:
- Always use pre-registered alphanumeric sender IDs
- Implement proper error handling and retry logic
- Follow local time zone restrictions
- Maintain proper opt-out management
- Monitor delivery rates and user engagement
Next Steps:
- Review the Swaziland Communications Commission Regulations
- Implement proper consent management systems
- Set up monitoring and reporting tools
- Test message delivery across different carriers
Additional Resources: