Philippines SMS Best Practices, Compliance, and Features
Philippines SMS Market Overview
Locale name: | Philippines |
---|---|
ISO code: | PH |
Region | Asia |
Mobile country code (MCC) | 515 |
Dialing Code | +63 |
Market Conditions: The Philippines has a vibrant mobile messaging ecosystem with high SMS adoption rates. Major mobile operators include Globe Telecom and Smart Communications. While OTT messaging apps like Facebook Messenger and Viber are popular, SMS remains crucial for business communications and authentication. Android devices dominate the market, though iOS usage continues to grow among urban populations.
Key SMS Features and Capabilities in Philippines
The Philippines supports comprehensive SMS capabilities including two-way messaging, concatenation, and number portability, though with specific regulatory requirements around sender registration and content restrictions.
Two-way SMS Support
Two-way SMS is fully supported in the Philippines, allowing businesses to engage in interactive messaging with customers. No special restrictions apply to two-way messaging beyond standard compliance requirements.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported across all major carriers.
Message length rules: Messages are limited to 160 characters before splitting occurs. Messages using GSM-7 encoding can contain up to 160 characters in a single segment.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. UCS-2 messages are limited to 70 characters per segment.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This ensures compatibility across all devices while still allowing rich media content to be shared. Best practice is to use short, branded URLs and include clear context in the message body.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in the Philippines, allowing users to keep their numbers when switching carriers. This feature does not significantly impact message delivery or routing as the network infrastructure handles porting transparently.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in the Philippines. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) from the API, with no message delivery and no charges applied.
Compliance and Regulatory Guidelines for SMS in Philippines
The Philippines enforces strict SMS regulations under the Data Privacy Act of 2012 and guidelines from the National Telecommunications Commission (NTC). All businesses must comply with these regulations when sending commercial SMS messages.
Consent and Opt-In
Explicit consent is mandatory before sending any commercial or promotional messages. Best practices for consent management include:
- Maintaining detailed records of when and how consent was obtained
- Using clear, unambiguous language when requesting consent
- Providing specific information about the types of messages subscribers will receive
- Implementing double opt-in verification for marketing campaigns
- Regular consent refresh campaigns every 12-24 months
HELP/STOP and Other Commands
- All messages must include opt-out instructions
- Standard keywords must be supported:
- STOP, CANCEL, END, QUIT for opt-out
- HELP, INFO for assistance
- Commands should work in both English and Filipino
- Opt-out instructions must be sent weekly for daily subscriptions and monthly for weekly subscriptions
Do Not Call / Do Not Disturb Registries
While the Philippines doesn't maintain a centralized Do Not Call registry, businesses must:
- Maintain their own suppression lists
- Honor opt-out requests within 24 hours
- Implement automated STOP command processing
- Regularly clean contact lists to remove unsubscribed numbers
- Document all opt-out requests for compliance purposes
Time Zone Sensitivity
The Philippines observes Philippine Time (PHT/UTC+8). Best practices include:
- Sending messages between 9:00 AM and 9:00 PM PHT
- Avoiding messages during major holidays
- Only sending urgent messages (e.g., security alerts) outside these hours
- Considering regional time differences for nationwide campaigns
Phone Numbers Options and SMS Sender Types for in Philippines
Alphanumeric Sender ID
Operator network capability: Fully supported
Registration requirements: Pre-registration required, with enforcement of blocking unregistered IDs postponed to Q1 2025
Sender ID preservation: Registered IDs are preserved; unregistered IDs are overwritten with generic alternatives
Long Codes
Domestic vs. International: Domestic long codes supported; international long codes not supported
Sender ID preservation: Domestic sender IDs preserved; international ones overwritten
Provisioning time: Immediate for domestic numbers
Use cases: Ideal for transactional messages and two-way communication
Short Codes
Support: Available through major carriers
Provisioning time: 2-4 weeks for approval
Use cases: High-volume marketing campaigns, 2FA, customer service
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Adult content
- Firearms and weapons
- Political messages
- Gambling (except registered PIGO operators)
- Financial loans
- Controlled substances
- Cannabis
- Tobacco
- Alcohol
Content Filtering
Known Carrier Filters:
- Shortened URLs are blocked
- Phone numbers in message content not allowed
- Banking-related URLs must be pre-approved
- Keywords suggesting spam or scams
Tips to Avoid Blocking:
- Use registered sender IDs
- Avoid spam trigger words
- Use full, transparent URLs
- Maintain consistent sending patterns
- Keep message content clear and professional
Best Practices for Sending SMS in Philippines
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear calls-to-action
- Personalize using recipient's name or relevant details
- Maintain consistent branding
Sending Frequency and Timing
- Limit to 1-2 messages per day per recipient
- Respect Filipino holidays and observances
- Schedule campaigns during business hours
- Space out bulk sends to prevent network congestion
Localization
- Support both English and Filipino (Tagalog)
- Consider regional dialects for targeted campaigns
- Use culturally appropriate content and references
- Format dates as DD/MM/YYYY
Opt-Out Management
- Process opt-outs in real-time
- Maintain centralized opt-out database
- Confirm opt-out with one final message
- Regular audit of opt-out compliance
Testing and Monitoring
- Test across Globe and Smart networks
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular testing of opt-out functionality
- A/B test message content and timing
SMS API integrations for Philippines
Twilio
Twilio provides a robust SMS API with specific support for Philippines messaging requirements. Authentication uses Account SID and Auth Token credentials.
import * as 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 Philippines number
async function sendPhilippinesSMS(to: string, message: string) {
try {
// Ensure number is in E.164 format for Philippines (+63)
const formattedNumber = to.startsWith('+63') ? to : `+63${to.replace(/^0/, '')}`;
const response = await client.messages.create({
body: message,
to: formattedNumber,
// Use registered Alphanumeric Sender ID for Philippines
from: 'YOUR_SENDER_ID',
// Optional: Specify status callback URL
statusCallback: 'https://your-domain.com/twilio/status'
});
return response;
} catch (error) {
console.error('Twilio SMS Error:', error);
throw error;
}
}
Sinch
Sinch offers comprehensive SMS capabilities for the Philippines market with REST API support.
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(to: string, message: string) {
try {
const response = await sinchClient.sms.batches.send({
sendSMSRequestBody: {
to: [to], // Number in E.164 format
from: 'YOUR_SENDER_ID',
body: message,
// Optional: Delivery report URL
deliveryReport: 'URL'
}
});
return response;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
MessageBird
MessageBird provides reliable SMS delivery in the Philippines with straightforward API integration.
import messagebird from 'messagebird';
// Initialize MessageBird client
const mbClient = messagebird(process.env.MESSAGEBIRD_API_KEY);
// Function to send SMS via MessageBird
function sendMessageBirdSMS(to: string, message: string): Promise<any> {
return new Promise((resolve, reject) => {
mbClient.messages.create({
originator: 'YOUR_SENDER_ID',
recipients: [to],
body: message,
// Optional: Schedule message delivery
scheduledDatetime: null
}, (err, response) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
Plivo
Plivo offers advanced SMS features with specific support for Philippines regulations.
import plivo from 'plivo';
// Initialize Plivo client
const plivoClient = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
// Function to send SMS using Plivo
async function sendPlivoSMS(to: string, message: string) {
try {
const response = await plivoClient.messages.create({
src: 'YOUR_SENDER_ID', // Registered Sender ID
dst: to, // Destination number
text: message,
// Optional: URL to receive delivery status
url: 'https://your-domain.com/plivo/status'
});
return response;
} catch (error) {
console.error('Plivo SMS Error:', error);
throw error;
}
}
API Rate Limits and Throughput
- Default rate limits vary by provider (typically 1-30 messages per second)
- Implement exponential backoff for retry logic
- Use queuing systems (Redis, RabbitMQ) for high-volume sending
- Batch messages when possible (up to 100 recipients per request)
Error Handling and Reporting
- Implement comprehensive error logging
- Monitor delivery receipts
- Track common error codes:
- 21614: Invalid number format
- 30007: Carrier rejection
- 30008: Blocked content
- Store message status updates for compliance
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities
- Register Sender IDs before Q1 2025
- Maintain proper consent records
- Honor opt-out requests promptly
-
Best Practices
- Use registered Alphanumeric Sender IDs
- Send during business hours (9 AM - 9 PM PHT)
- Support both English and Filipino languages
-
Technical Considerations
- Implement proper error handling
- Monitor delivery rates
- Use queuing for high-volume sending
Next Steps
- Review the Data Privacy Act of 2012
- Register Sender IDs with carriers
- Implement opt-out handling
- Set up delivery monitoring