sms compliance
sms compliance
How to Send SMS in Singapore: SSIR Registration & PDPA Compliance Guide 2024
Complete guide for businesses sending SMS in Singapore. Step-by-step SSIR sender ID registration, PDPA compliance requirements, DNC Registry checking, and best practices to avoid 'Likely-SCAM' labels on Singtel, StarHub, M1.
Singapore SMS Best Practices, Compliance, and Features
Singapore SMS Market Overview
| Locale name: | Singapore |
|---|---|
| ISO code: | SG |
| Region | Asia |
| Mobile country code (MCC) | 525 |
| Dialing Code | +65 |
Market Conditions: Singapore operates a highly developed mobile market with near-universal smartphone penetration. Businesses sending SMS in Singapore must navigate SSIR registration requirements and PDPA compliance. While OTT messaging apps like WhatsApp and LINE dominate consumer communication, SMS remains critical for business communications – especially authentication, notifications, and marketing. Three major mobile operators control the market: Singtel, StarHub, and M1. Android devices hold approximately 60% market share, with iOS accounting for most of the remainder.
Key SMS Features and Capabilities in Singapore
Singapore offers robust SMS capabilities with support for concatenated messages and alphanumeric sender IDs, though two-way messaging functionality is limited.
Two-way SMS Support
Most A2P channels in Singapore don't support two-way SMS. If you need two-way communication, use alternative methods or dedicated solutions.
Alternative Solutions:
| Solution | Provisioning Time | Best For |
|---|---|---|
| Dedicated short codes | 8–12 weeks | High-volume two-way messaging |
| WhatsApp Business API | 1–2 weeks | Rich media, customer service |
| Mobile-originated (MO) services | Varies | Carrier-specific integrations |
Concatenated Messages (Segmented SMS)
Support: Yes, most sender ID types support concatenation.
Message length rules: Messages split after 160 ASCII characters. GSM-7 encoding allows up to 160 characters per SMS segment. UCS-2 encoding limits you to 70 characters per segment.
Encoding considerations: Use GSM-7 for basic Latin alphabet messages to maximize character count. Use UCS-2 for messages containing Chinese characters or other special characters.
MMS Support
Carriers automatically convert MMS messages to SMS with an embedded URL link. This ensures delivery compatibility while allowing you to share rich media through linked web pages.
Best Practices:
- Use short URLs to preserve character count
- Include clear context in the SMS portion
- Test URL accessibility before sending
Recipient Phone Number Compatibility
Number Portability
Singapore supports number portability. Subscribers can keep their phone numbers when switching between mobile operators. This doesn't significantly affect message delivery or routing, but maintain updated routing tables to ensure optimal delivery.
Sending SMS to Landlines
You cannot send SMS to landline numbers in Singapore. Attempts to send messages to landlines return a 400 response with error code 21614. These messages won't appear in logs, and you won't be charged for failed delivery attempts.
Compliance and Regulatory Guidelines for SMS in Singapore
Singapore maintains strict regulations for SMS communications, primarily governed by the Infocomm Media Development Authority (IMDA) and the Personal Data Protection Commission (PDPC). All organizations sending SMS in Singapore must comply with both the Spam Control Act 2007 and the Personal Data Protection Act 2012 (PDPA). Understanding these compliance requirements is essential for successful SMS marketing and transactional messaging.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain written or verbal consent before sending marketing messages
- Document and store consent for verification purposes
- Clearly state the purpose of messaging during opt-in
- Include timestamp, source, and scope in consent records
Best Practices for Obtaining Consent:
- Use double opt-in processes for marketing lists
- Provide clear terms and conditions during signup
- Maintain detailed consent logs with IP addresses and timestamps
- Regularly audit and clean up consent records
HELP/STOP and Other Commands
Include opt-out instructions in all marketing messages.
Required Keywords:
- STOP: Unsubscribe from all messages
- HELP: Receive information about the service
- UNSUBSCRIBE: Alternative to STOP
Support both English and Chinese commands. Respond immediately and free of charge.
Do Not Call / Do Not Disturb Registries
Singapore maintains an active Do Not Call (DNC) Registry under the PDPA.
Requirements:
- Check numbers against the DNC Registry before sending marketing messages
- Check at least once every 30 days
- Penalties for non-compliance: Up to SGD 10,000 per violation
Best Practice: Implement automated DNC checking before each campaign.
Time Zone Sensitivity
Singapore operates in the GMT+8 timezone (SGT). No strict legal restrictions govern messaging hours, but follow these best practices:
- Recommended Sending Hours: 9:00 AM to 9:00 PM SGT
- Avoid Sending: Public holidays, early mornings, and late nights
- Exception: Critical service updates or emergency notifications
Phone Numbers Options and SMS Sender Types for Singapore
Alphanumeric Sender ID
Operator network capability: Fully supported across all major carriers
SSIR Registration Requirements:
- Register with Singapore SMS Sender ID Registry (SSIR) before sending
- Allow 5 business days for processing after submission
- Pay SGD 500 one-time setup fee
- Pay SGD 200 annual renewal fee per Sender ID
- Provide company UEN (Unique Entity Number) and Corppass verification
Sender ID preservation:
- Registered IDs display as configured
- Unregistered IDs appear as "Likely-SCAM" (effective January 30, 2023)
Long Codes
Domestic vs. International:
- Domestic: Supported but requires registration
- International: Not supported as of January 2023
Sender ID preservation:
- Domestic: Preserved if registered
- International: Overwritten with "Likely-SCAM"
Provisioning time: Immediate for international, 5–7 business days for domestic registration
Use cases:
- Domestic: Customer service, notifications
- Not recommended for P2P messaging
Short Codes
Support: Major carriers offer short codes Provisioning time: 8–12 weeks
Use cases:
- High-volume marketing campaigns
- Two-factor authentication
- Customer service
- Two-way messaging
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Gambling and betting
- Adult content
- Religious or political messages
- Money lending/loan services
- Controlled substances
- Cannabis products
- Alcohol-related content
- WhatsApp/LINE chat links
Content Filtering
Carrier Filtering Rules:
- Carriers block messages containing prohibited keywords
- URLs must come from approved domains
- All message content undergoes compliance scanning
Tips to Avoid Blocking:
- Avoid excessive punctuation (!!!, ???)
- Don't use all caps
- Limit URLs to necessary links only
- Use registered short URLs
- Avoid common spam trigger words (FREE, WIN, URGENT)
Best Practices for Sending SMS in Singapore
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear calls-to-action
- Use personalization tokens thoughtfully
- Maintain consistent sender ID across campaigns
Sending Frequency and Timing
- Send 4–6 messages maximum per month per recipient
- Respect Singapore public holidays
- Schedule around peak business hours (9 AM – 6 PM SGT)
- Space out messages to avoid overwhelming recipients
Localization
- Support both English and Chinese
- Use simplified Chinese characters
- Consider cultural sensitivities in your content
- Include opt-out instructions in both English and Chinese
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Confirm opt-outs with acknowledgment message
- Regularly audit opt-out list compliance
Testing and Monitoring
- Test across all three major carriers (Singtel, StarHub, M1)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Run regular A/B tests on message content
- Monitor carrier filtering changes
SMS API integrations for Singapore
Twilio
Twilio provides a robust SMS API with specific support for Singapore's compliance requirements. You'll need your Account SID and Auth Token from the Twilio Console.
Key Parameters:
from: Registered alphanumeric sender ID or Twilio phone numberto: Recipient number in E.164 format (+65XXXXXXXX)body: Message content (max 1600 characters)
import { Twilio } from 'twilio';
// Initialize Twilio client
const client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
async function sendSMSSingapore(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Validate Singapore phone number format
if (!to.startsWith('+65')) {
throw new Error('Singapore numbers must start with +65');
}
const response = await client.messages.create({
from: senderId, // Your registered Sender ID
to: to, // Recipient number
body: message, // Message content
// 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 a REST API for SMS delivery in Singapore, requiring API Token and Service Plan ID authentication.
Key Parameters:
from: Registered sender IDto: Array of recipient numbersbody: Message textdelivery_report: Delivery status tracking
import axios from 'axios';
class SinchSMSService {
private readonly baseUrl: string;
private readonly headers: Record<string, string>;
constructor(
private servicePlanId: string,
private apiToken: string,
private region: string = 'sg'
) {
this.baseUrl = `https://${region}.sms.api.sinch.com/xms/v1/${servicePlanId}`;
this.headers = {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'application/json'
};
}
async sendSMS(
from: string,
to: string,
message: string
): Promise<any> {
try {
const response = await axios.post(
`${this.baseUrl}/batches`,
{
from,
to: [to],
body: message,
delivery_report: 'summary'
},
{ headers: this.headers }
);
return response.data;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
}MessageBird
MessageBird (formerly Bird) provides a straightforward API for sending SMS messages in Singapore.
Key Parameters:
originator: Your registered sender IDrecipients: Array of recipient numberscontent: Message contentreportUrl: Webhook URL for delivery reports
import { MessageBirdClient, MessageParameters } from 'messagebird';
class MessageBirdService {
private client: MessageBirdClient;
constructor(apiKey: string) {
this.client = new MessageBirdClient(apiKey);
}
async sendSMS(
senderId: string,
recipient: string,
message: string
): Promise<void> {
const params: MessageParameters = {
originator: senderId,
recipients: [recipient],
body: message,
reportUrl: 'https://your-webhook.com/delivery-reports'
};
return new Promise((resolve, reject) => {
this.client.messages.create(params, (err, response) => {
if (err) {
console.error('MessageBird Error:', err);
reject(err);
} else {
resolve(response);
}
});
});
}
}API Rate Limits and Throughput
Singapore carriers implement various rate limits:
- Per Second: 50–100 messages
- Per Minute: 1,000–2,000 messages
- Per Hour: 10,000–20,000 messages
Strategies for Large-Scale Sending:
- Implement queuing systems (Redis/RabbitMQ)
- Use batch sending APIs where available
- Implement exponential backoff for retries
- Monitor throughput and adjust sending rates
Error Handling and Reporting
Best Practices:
- Log all API responses and errors
- Implement retry logic for temporary failures
- Monitor delivery rates by carrier
- Set up alerting for unusual error rates
// Example error handling implementation
async function handleSMSError(error: any): Promise<void> {
const errorCode = error.code || 'UNKNOWN';
const errorMessage = error.message || 'Unknown error';
// Log error details
console.error(`SMS Error ${errorCode}: ${errorMessage}`);
// Determine if retry is appropriate
if (isRetryableError(errorCode)) {
await retryWithBackoff(async () => {
// Retry logic here
});
}
// Alert if error rate exceeds threshold
await checkErrorThreshold(errorCode);
}Recap and Additional Resources
Key Takeaways
- Compliance First: Register sender IDs with SSIR before sending
- Message Content: Follow content restrictions and avoid prohibited topics
- Timing: Respect local time zones and sending frequency limits
- Error Handling: Implement robust error handling and monitoring
Next Steps
-
Registration:
- Register with SSIR (https://sgnic.sg/smsregistry)
- Complete provider-specific registration processes
- Allow 5 business days for SSIR approval
- Budget SGD 500 setup + SGD 200 annual fees
-
Technical Setup:
- Implement proper error handling
- Set up delivery reporting
- Configure monitoring systems
- Test across all three carriers
-
Compliance Review:
- Consult with legal counsel
- Review PDPA requirements
- Set up DNC registry checking
- Document consent collection processes
Additional Resources
- IMDA Guidelines - Infocomm Media Development Authority official site
- PDPC Resources - Personal Data Protection Commission compliance guides
- Singapore SMS Sender ID Registry (SSIR) - Official registration portal
- DNC Registry - Do Not Call Registry for marketing compliance
- E.164 Phone Number Format Guide - International phone number formatting
- 10DLC SMS Registration - US SMS registration requirements
FAQ
What is the Singapore SMS Sender ID Registry (SSIR) and is registration mandatory?
The SSIR (Singapore SMS Sender ID Registry) is Singapore's mandatory registry for alphanumeric sender IDs, administered by SGNIC under IMDA guidelines. As of January 30, 2023, all unregistered sender IDs are automatically replaced with "Likely-SCAM" to combat SMS fraud and phishing scams. SSIR registration requires a 5-business-day processing time, SGD 500 one-time setup fee, and SGD 200 annual renewal fee per sender ID. Registration is mandatory for all businesses and organizations sending commercial SMS in Singapore to avoid the "Likely-SCAM" label that damages deliverability and brand trust.
How does Singapore's Do Not Call (DNC) Registry work for SMS marketing?
Under the Personal Data Protection Act 2012 (PDPA), organizations must check recipient numbers against the DNC Registry before sending marketing messages. Check at least once every 30 days. Violations carry penalties up to SGD 10,000 per violation. The Personal Data Protection Commission (PDPC) maintains the registry at dnc.gov.sg and it covers SMS, voice calls, and fax messages.
What are the penalties for sending SMS without SSIR registration in Singapore?
Since January 30, 2023, unregistered sender IDs are automatically overwritten with "Likely-SCAM" by all Singapore carriers (Singtel, StarHub, M1). This severely damages brand reputation and message deliverability. Additionally, violations of the Spam Control Act 2007 can result in fines up to SGD 1 million for organizations and SGD 10,000 for individuals, plus potential PDPA penalties for data protection violations.
What SMS content is prohibited in Singapore?
Prohibited content includes: gambling and betting, adult content, religious or political messages (without proper authorization), money lending/loan services, controlled substances, cannabis products, alcohol-related content, and WhatsApp/LINE chat links. Carriers automatically filter messages containing these topics. Content violations can result in immediate blocking, account suspension, and regulatory penalties from IMDA.
How long does SSIR sender ID registration take in Singapore?
Standard SSIR registration takes 5 business days for processing after submitting complete documentation through the SSIR portal. You must provide: company registration details (ACRA registration for Singapore companies), authorized signatory information, sender ID justification, and intended use cases. The one-time setup fee is SGD 500, with an annual renewal fee of SGD 200 per sender ID. Plan SSIR registration at least 2 weeks before your campaign launch date to account for processing time and potential resubmissions.
Is two-way SMS supported in Singapore for business messaging?
Most Application-to-Person (A2P) channels in Singapore don't support two-way SMS. If you need two-way communication, use alternative methods such as dedicated short codes (8–12 week provisioning time), mobile-originated (MO) services with carrier partnerships, or alternative channels like WhatsApp Business API. Standard alphanumeric sender IDs only support outbound messaging.
What are the recommended SMS sending hours in Singapore?
Singapore has no strict legal restrictions on SMS sending times, but best practices recommend 9:00 AM to 9:00 PM Singapore Standard Time (SGT, GMT+8). Avoid sending during: public holidays (check Singapore's gazetted holidays), early mornings (before 9 AM), and late nights (after 9 PM). Exceptions include critical service updates, emergency notifications, and time-sensitive authentication codes (OTP).
How do I format phone numbers for SMS in Singapore?
Singapore phone numbers must use E.164 format: +65 followed by 8 digits (e.g., +6591234567). Singapore mobile numbers typically start with 8 or 9. Landline numbers (starting with 6) cannot receive SMS. Validate numbers before sending to avoid 400 errors (code 21614). Number portability is supported, so subscribers can keep their numbers when switching between Singtel, StarHub, and M1.
What is the maximum character limit for SMS in Singapore?
Standard GSM-7 encoding allows 160 characters per SMS segment. Unicode/UCS-2 encoding (required for Chinese characters) allows 70 characters per segment. Concatenated messages are supported, allowing up to 1,600 characters across multiple segments. For best deliverability and cost efficiency, keep marketing messages under 160 characters. Each segment is billed separately.
How do I handle opt-outs and STOP commands in Singapore SMS?
Include clear opt-out instructions in all marketing SMS. Support these mandatory keywords: STOP (unsubscribe from all messages), HELP (service information), and UNSUBSCRIBE (alternative to STOP). Process opt-outs within 24 hours and send confirmation messages. Maintain a centralized opt-out database and regularly audit compliance. Support both English and Chinese commands (停止, 帮助) for Singapore's bilingual population. Store opt-out records for regulatory compliance verification.
Frequently Asked Questions
how to send sms in singapore
Use a registered alphanumeric sender ID and an SMS API like Twilio, Sinch, or MessageBird. Ensure your message content complies with local regulations and respects user consent. Consider using shortcodes for high-volume campaigns and long codes for domestic customer service or notifications. Remember to handle errors robustly and monitor delivery rates across all major carriers (Singtel, StarHub, and M1).
what is the sms sender id registration process in singapore
Register your alphanumeric sender ID with the Singapore SMS Sender ID Registry (SSIR). There's a one-time setup fee of SGD 500 and an annual charge of SGD 200 per Sender ID. Pre-registration is mandatory, with a processing time of approximately five days. As of January 30, 2023, unregistered IDs are replaced with "Likely-SCAM".
why does singapore require sender id registration
Singapore requires sender ID registration to combat spam and fraudulent messages, enhancing trust and transparency in SMS communication. This measure helps protect consumers from scams and ensures businesses are accountable for their messaging practices.
when should I send sms messages in singapore
The best time to send SMS messages in Singapore is between 9:00 AM and 9:00 PM SGT. Avoid sending during public holidays, early mornings, or late nights. Critical service updates or emergency notifications can be exceptions to this rule.
can i send sms to landlines in singapore
No, sending SMS to landline numbers in Singapore is not possible. Attempts to do so will result in a 400 response with error code 21614. Messages won't be logged, and your account won't be charged for these failed attempts.
what is the character limit for sms in singapore
SMS messages in Singapore are limited to 160 characters using GSM-7 encoding (basic Latin alphabet) or 70 characters with UCS-2 encoding (for special characters like Chinese). Longer messages are concatenated (segmented) to deliver the full content.
how to comply with sms regulations in singapore
Comply with the Spam Control Act 2007 and the Personal Data Protection Act 2012 (PDPA) by obtaining explicit consent before sending marketing messages, providing clear opt-out instructions ("STOP", "HELP", "UNSUBSCRIBE"), and scrubbing against the Do Not Call (DNC) registry at least every 30 days.
what are the penalties for violating dnc rules
Penalties for violating the Do Not Call (DNC) registry rules in Singapore can reach up to SGD 10,000 per violation. Ensure your organization regularly checks numbers against the DNC registry to avoid these penalties.
how to get consent for sms marketing in singapore
Obtain explicit written or verbal consent before sending marketing messages. Document consent (timestamp, source, scope), clearly state the messaging purpose, and utilize double opt-in processes. Regular audits and cleanup of consent records are also recommended.
what sms content is prohibited in singapore
Prohibited SMS content includes gambling, adult content, religious or political messages, money lending, controlled substances (including cannabis), alcohol, and WhatsApp/LINE chat links. Ensure your messages adhere to these restrictions to avoid being blocked by carriers.
what are the best practices for sms marketing in singapore
Keep messages concise (under 160 characters), include clear calls-to-action, and use personalization thoughtfully. Send no more than 4-6 messages monthly per recipient, respecting public holidays and peak business hours. Localize for both English and Chinese and diligently manage opt-outs.
how to handle sms api errors in singapore
Implement robust error handling by logging API responses and errors, retrying temporary failures with exponential backoff, monitoring delivery rates by carrier, and setting up alerts for unusual error spikes. Consult the documentation for specific error codes and their meanings.
what are the sms api rate limits in singapore
Singapore carriers typically impose rate limits of 50-100 messages per second, 1,000-2,000 messages per minute, and 10,000-20,000 messages per hour. Manage large-scale sends with queuing systems, batch APIs, exponential backoff, and throughput monitoring.
what are the key parameters for twilio sms api in singapore
The key parameters for Twilio's SMS API in Singapore include the `from` (registered sender ID or Twilio number), `to` (recipient number in E.164 format: +65XXXXXXXX), and `body` (message content, up to 1600 characters). You can also include optional parameters like `statusCallback` for delivery tracking.