India SMS Best Practices, Compliance, and Features
India SMS Market Overview
Locale name: | India |
---|---|
ISO code: | IN |
Region | Asia |
Mobile country code (MCC) | 404, 405 |
Dialing Code | +91 |
Market Conditions: India represents one of the world's largest and most dynamic SMS markets, with over 1.2 billion mobile subscribers. The market is dominated by major operators including Reliance Jio, Airtel, and Vodafone Idea. While OTT messaging apps like WhatsApp are extremely popular, SMS remains crucial for business communications and authentication. Android devices command approximately 95% market share, with iOS devices accounting for about 5% of the mobile ecosystem.
Key SMS Features and Capabilities in India
India offers comprehensive SMS capabilities with support for both international and domestic routes, though certain features are restricted based on regulatory requirements and routing choices.
Two-way SMS Support
Two-way SMS is not supported in India through standard A2P channels. Businesses looking to implement two-way communication typically need to explore alternative solutions or dedicated short code services.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenated messages are supported, though availability may vary based on sender ID type.
Message length rules: Messages are limited to 160 characters before splitting occurs when using GSM-7 encoding.
Encoding considerations: Messages using GSM-7 encoding can contain up to 160 characters in a single segment, while UCS-2 encoding (used for Unicode/local language support) allows up to 70 characters per segment.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures compatibility across all devices while still allowing rich media content to be shared through a web-based interface.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in India, allowing users to switch carriers while keeping their phone numbers. This feature is fully supported and doesn't significantly impact message delivery or routing.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in India. Attempts to send messages to landline numbers will result in a 400 response error (code 21614) from the API, and no charges will be incurred.
Compliance and Regulatory Guidelines for SMS in India
India maintains strict regulatory oversight of SMS communications through the Telecom Regulatory Authority of India (TRAI). All businesses must comply with the Telecom Commercial Communications Customer Preference Regulations (TCCCPR) and register with the Distributed Ledger Technology (DLT) platform before sending commercial messages.
Consent and Opt-In
Explicit consent is mandatory for all commercial communications in India. Best practices include:
- Maintaining detailed records of when and how consent was obtained
- Using double opt-in verification processes
- Providing clear information about message frequency and content type
- Documenting consent duration and purpose
- Implementing regular consent refresh processes
HELP/STOP and Other Commands
All SMS campaigns must support standard opt-out keywords in both English and local languages:
- STOP, CANCEL, UNSUBSCRIBE, END
- Local language equivalents must be honored
- Response to HELP messages should include service information and opt-out instructions
- Acknowledgment of opt-out requests must be sent within 24 hours
Do Not Call / Do Not Disturb Registries
India maintains a National Do Not Disturb (NDND) registry managed by TRAI:
- Businesses must scrub their contact lists against the NDND registry
- DND violations can result in significant penalties
- Maintain internal suppression lists for opted-out numbers
- Implement real-time DND checking through DLT platforms
Time Zone Sensitivity
While India operates in a single time zone (IST), TRAI recommends:
- Sending promotional messages only between 9:00 AM and 9:00 PM IST
- Transactional messages can be sent 24/7
- Consider religious and cultural holidays when planning campaigns
Phone Numbers Options and SMS Sender Types for India
Alphanumeric Sender ID
Operator network capability: Fully supported through domestic routes
Registration requirements: Pre-registration mandatory through DLT platform
Sender ID preservation: Mobile operators append a two-letter prefix (e.g., "VM-TWILIO")
Long Codes
Domestic vs. International: International long codes supported; domestic not available
Sender ID preservation: International sender IDs are replaced with 5-9 digit format (5NNNN—5NNNNNNN)
Provisioning time: Immediate for international routes
Use cases: Best suited for transactional messaging and two-factor authentication
Short Codes
Support: Available through select operators
Provisioning time: 10-12 weeks for approval and setup
Use cases: High-volume campaigns, time-sensitive alerts, and marketing messages
Restricted SMS Content, Industries, and Use Cases
The following content types and industries face strict restrictions:
- Gambling and betting
- Adult content
- Cryptocurrency promotions
- Unauthorized financial services
- Political messaging without approval
- Religious content
- Controlled substances
- Cannabis products
- Alcohol-related content
Content Filtering
Known carrier filtering rules:
- URLs must be registered and whitelisted
- Shortened URLs are generally blocked
- Keywords related to restricted industries trigger filters
- Message templates must match approved formats
Tips to avoid blocking:
- Register all URLs in DLT platform
- Use approved message templates
- Avoid spam trigger words
- Maintain consistent sender IDs
Best Practices for Sending SMS in India
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Use registered templates for consistency
- Personalize messages using approved variable fields
Sending Frequency and Timing
- Limit promotional messages to 3 per week per user
- Respect time zone restrictions
- Avoid sending during major holidays
- Space out bulk campaigns to prevent network congestion
Localization
- Support multiple regional languages
- Use Unicode (UCS-2) encoding for local scripts
- Consider cultural sensitivities in content
- Provide language preference options
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include clear opt-out instructions
- Confirm opt-out status via SMS
Testing and Monitoring
- Test across all major Indian carriers
- Monitor delivery rates by operator
- Track engagement metrics
- Regular template performance analysis
- Conduct A/B testing for optimal results
SMS API integrations for India
Twilio
Twilio provides a robust SMS API with specific features for India's regulatory requirements. Integration requires an Account SID and Auth Token for authentication.
import { Twilio } from 'twilio';
// Initialize client with authentication credentials
const client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
// Function to send SMS to India
async function sendSMSToIndia(to: string, message: string) {
try {
// Create message with required parameters for India
const response = await client.messages.create({
to: `+91${to}`, // India country code
from: 'YOUR_REGISTERED_SENDER_ID', // DLT registered sender ID
body: message,
// Additional parameters for India compliance
statusCallback: 'YOUR_WEBHOOK_URL',
});
console.log(`Message sent successfully: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers dedicated India SMS capabilities with DLT compliance support built-in.
import axios from 'axios';
interface SinchSMSConfig {
apiToken: string;
servicePlanId: string;
senderId: string;
}
class SinchSMSService {
private readonly baseUrl: string;
private readonly config: SinchSMSConfig;
constructor(config: SinchSMSConfig) {
this.config = config;
this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
}
async sendSMS(to: string, message: string) {
try {
const response = await axios.post(
`${this.baseUrl}/${this.config.servicePlanId}/batches`,
{
from: this.config.senderId,
to: [`+91${to}`],
body: message,
// India-specific parameters
dlt_template_id: 'YOUR_TEMPLATE_ID',
dlt_principal_entity_id: 'YOUR_PE_ID'
},
{
headers: {
'Authorization': `Bearer ${this.config.apiToken}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
}
Bird
Bird's API provides specialized features for India's SMS market with built-in DLT compliance.
import axios from 'axios';
class BirdSMSService {
private readonly apiKey: string;
private readonly baseUrl: string;
constructor(apiKey: string) {
this.apiKey = apiKey;
this.baseUrl = 'https://api.bird.com/v1';
}
async sendSMS(to: string, message: string, templateId: string) {
try {
const response = await axios.post(
`${this.baseUrl}/messages`,
{
destination: `+91${to}`,
message_text: message,
sender_id: 'YOUR_SENDER_ID',
template_id: templateId,
entity_id: 'YOUR_ENTITY_ID'
},
{
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Bird SMS Error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
- Default rate limits vary by provider (typically 1-100 messages per second)
- Implement exponential backoff for retry logic
- Use queuing systems (Redis, RabbitMQ) for high-volume sending
- Consider batch APIs for bulk messaging
- Monitor throughput metrics and adjust accordingly
Error Handling and Reporting
- Implement comprehensive error logging
- Track delivery receipts (DLRs)
- Monitor common error codes:
- 1001: Invalid template
- 1002: DLT registration failed
- 1003: Rate limit exceeded
- Store message metadata for troubleshooting
- Implement automated alerts for error thresholds
Recap and Additional Resources
Key Takeaways
- Compliance First: Always ensure DLT registration and template approval before sending
- Technical Integration: Choose an API provider with strong India support
- Monitoring: Implement robust tracking and error handling
- Best Practices: Follow timing, content, and opt-out guidelines
Next Steps
-
Review Regulations
- Visit TRAI website (https://trai.gov.in)
- Review DLT platform requirements
- Understand template registration process
-
Legal Compliance
- Consult with telecom law experts
- Review privacy policy requirements
- Establish consent management processes
-
Technical Setup
- Complete DLT registration
- Register message templates
- Implement API integration
- Set up monitoring systems
Additional Resources
- TRAI SMS Regulations: https://trai.gov.in/sites/default/files/TCCCPR_2018.pdf
- DLT Platform Guidelines: https://www.trai.gov.in/sites/default/files/DLT_Guidelines.pdf
- Telecom Commercial Communication Customer Preference Portal: https://www.nccptrai.gov.in/
Industry Guidelines:
- Mobile Marketing Association India: https://www.mmaglobal.com/india
- IAMAI Digital Marketing Guidelines: https://iamai.in/guidelines