China SMS Best Practices, Compliance, and Features
China SMS Market Overview
Locale name: | China |
---|---|
ISO code: | CN |
Region | Asia |
Mobile country code (MCC) | 460 |
Dialing Code | +86 |
Market Conditions: China has one of the world's largest mobile markets, dominated by three major operators: China Mobile, China Unicom, and China Telecom. While SMS remains important for business communications and authentication, WeChat dominates consumer messaging with over 1.2 billion monthly active users. Android devices hold approximately 80% market share, with iOS devices accounting for most of the remainder. The market is heavily regulated with strict content and timing restrictions for commercial SMS.
Key SMS Features and Capabilities in China
China offers basic SMS capabilities with significant regulatory restrictions, supporting concatenated messages but limiting two-way messaging and requiring strict adherence to content guidelines.
Two-way SMS Support
Two-way SMS is not supported in China for commercial messaging. No provisions are currently available for implementing two-way SMS communications.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported, though availability may vary by sender ID type.
Message length rules: Maximum recommended length is 500 characters or 8 segments for better delivery rates.
Encoding considerations: UCS-2 encoding is supported for Chinese characters, though this reduces the characters per segment compared to GSM-7.
MMS Support
MMS is not available in China through standard SMS providers. Messages containing multimedia content must be sent as SMS with a URL link, though including URLs in messages may face delivery challenges due to content restrictions.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in China.
This means phone numbers remain tied to their original carrier, simplifying routing but limiting consumer flexibility.
Sending SMS to Landlines
SMS to landline numbers is not supported in China.
Attempts to send SMS to landline numbers will result in a 400 response error (error code 21614), with no message delivery and no charge to the sender's account.
Compliance and Regulatory Guidelines for SMS in China
China maintains strict regulations for SMS communications, overseen by the Ministry of Industry and Information Technology (MIIT) and the Ministry of Public Security. Companies must obtain a telecommunications business license before offering SMS services, and all message content must comply with the "Nine Prevention Rules" and "Five Categories" guidelines.
Consent and Opt-In
Explicit consent is mandatory for all commercial SMS communications in China. Best practices include:
- Obtaining written or electronic confirmation of opt-in
- Maintaining detailed records of consent, including timestamp and method
- Providing clear terms of service at opt-in
- Documenting the specific types of messages users have agreed to receive
- Refreshing consent annually for ongoing campaigns
HELP/STOP and Other Commands
- All commercial messages must include opt-out instructions in Chinese
- Standard keywords include: 退订 (unsubscribe), TD (unsubscribe), and 帮助 (help)
- Commands must be processed immediately upon receipt
- Response messages should be in Simplified Chinese
Do Not Call / Do Not Disturb Registries
China maintains a national Do-Not-Call registry managed by the MIIT. Compliance requirements include:
- Regular checks against the national DNC database
- Maintaining internal suppression lists
- Immediate processing of opt-out requests
- Quarterly audits of contact lists against DNC registry
- Recommended: Implement proactive filtering system to screen numbers before sending
Time Zone Sensitivity
China enforces strict timing restrictions for commercial SMS:
- Permitted sending hours: 8:00 AM to 9:00 PM local time
- Prohibited: Promotional messages between 7:00 PM and 8:00 AM
- Exception: Emergency or service-critical messages may be sent outside these hours
- Consider Chinese holidays and cultural events when planning campaigns
Phone Numbers Options and SMS Sender Types for in China
Alphanumeric Sender ID
Operator network capability: Not supported in China
Registration requirements: N/A
Sender ID preservation: N/A
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported with limitations Sender ID preservation: No, sender IDs may be replaced with random local long codes Provisioning time: N/A for domestic, immediate for international Use cases: Transactional messages and notifications only
Short Codes
Support: Not currently supported for international senders Provisioning time: N/A Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
China maintains extensive content restrictions, prohibiting:
- Political content
- Financial services marketing (banks, insurance, loans, credit cards)
- Cryptocurrency and investment products
- Gambling and gaming
- Adult content
- URLs in message content
- Healthcare claims or medical advertising
- Real estate investment promotions
Content Filtering
Known carrier filtering rules:
- Messages containing URLs are typically blocked
- Keywords related to restricted industries trigger automatic filtering
- Content matching government blacklists is blocked
- Messages with excessive punctuation may be filtered
Tips to avoid blocking:
- Use pre-approved message templates
- Avoid special characters and excessive punctuation
- Keep content neutral and factual
- Use simplified Chinese characters
- Maintain consistent sender information
Best Practices for Sending SMS in China
Messaging Strategy
- Keep messages under 70 characters when possible
- Use clear, direct language
- Include company name in message
- Avoid promotional language in transactional messages
- Use approved templates for consistent delivery
Sending Frequency and Timing
- Limit to 1-2 messages per user per day
- Respect quiet hours (9:00 PM - 8:00 AM)
- Avoid sending during major holidays
- Space out bulk campaigns to prevent network congestion
Localization
- Use Simplified Chinese characters
- Avoid machine translation
- Include both Chinese and English for international businesses
- Consider regional language preferences
- Test character rendering across devices
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include clear opt-out instructions in Chinese
- Confirm opt-out status via SMS
- Regular audit of opt-out list
Testing and Monitoring
- Test across all major carriers (China Mobile, China Unicom, China Telecom)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular content compliance audits
- Test message rendering on popular device types
SMS API integrations for China
Twilio
Twilio provides REST API access for sending SMS to China, though delivery is on a best-effort basis due to local restrictions.
import * as Twilio from 'twilio';
// Initialize Twilio client
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
async function sendSMSToChina(
to: string,
message: string
): Promise<void> {
try {
// Ensure number is in E.164 format with +86 prefix
const formattedNumber = to.startsWith('+86') ? to : `+86${to}`;
// Send message with required parameters
const response = await client.messages.create({
body: message,
to: formattedNumber,
from: process.env.TWILIO_PHONE_NUMBER,
// Optional status callback URL
statusCallback: 'https://your-domain.com/sms/status'
});
console.log(`Message sent with SID: ${response.sid}`);
} catch (error) {
console.error('Error sending SMS:', error);
throw error;
}
}
Sinch
Sinch offers direct carrier connections to China with support for template-based messaging.
import axios from 'axios';
class SinchSMSClient {
private readonly apiToken: string;
private readonly serviceId: string;
private readonly baseUrl: string = 'https://sms.api.sinch.com/xms/v1';
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
}
async sendMessage(to: string, templateId: string, params: object) {
try {
const response = await axios.post(
`${this.baseUrl}/${this.serviceId}/batches`,
{
to: [to],
template_id: templateId,
parameters: params,
type: 'template'
},
{
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 API access with support for Chinese character encoding and delivery reporting.
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendMessage(
to: string,
message: string,
options: { scheduled?: Date } = {}
): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: 'YourBrand',
recipients: [to],
body: message,
scheduledDatetime: options.scheduled,
encoding: 'unicode' // Required for Chinese characters
}, (err: Error, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers SMS capabilities for China with support for high-volume sending.
import plivo from 'plivo';
class PlivoSMSClient {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendBulkMessages(
numbers: string[],
message: string
) {
try {
const responses = await Promise.all(
numbers.map(number =>
this.client.messages.create({
src: process.env.PLIVO_NUMBER,
dst: number,
text: message,
// Optional parameters for China
type: 'unicode',
method: 'POST'
})
)
);
return responses;
} catch (error) {
console.error('Plivo sending 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
- Consider batch APIs for bulk messaging
- Monitor throughput and adjust sending patterns based on delivery rates
Error Handling and Reporting
- Implement comprehensive logging with unique message IDs
- Track delivery status callbacks
- Monitor common error codes:
- 21614: Invalid number format
- 21408: Message blocked
- 21610: Message content violation
- Store delivery receipts for compliance
- Set up alerts for unusual error rates
Recap and Additional Resources
Key Takeaways:
- Strict compliance requirements for content and timing
- Template-based messaging recommended
- No URLs or promotional content allowed
- Mandatory opt-out mechanism
- Chinese language support crucial
Next Steps:
- Review MIIT regulations (工业和信息化部)
- Register message templates with providers
- Implement proper error handling
- Set up delivery monitoring
- Establish compliance documentation
Additional Information:
- MIIT Official Website: www.miit.gov.cn
- China Advertising Law: www.npc.gov.cn
- SMS Best Practices Guide: www.csms.cn
Industry Resources:
- China Mobile Guidelines
- China Unicom API Documentation
- China Telecom Compliance Rules