Chad SMS Best Practices, Compliance, and Features
Chad SMS Market Overview
Locale name: | Chad |
---|---|
ISO code: | TD |
Region | Middle East & Africa |
Mobile country code (MCC) | 622 |
Dialing Code | +235 |
Market Conditions: Chad's mobile market is characterized by limited but growing SMS usage, with mobile penetration rates steadily increasing. The telecommunications landscape is dominated by major operators including Airtel Chad and Tigo Chad. While OTT messaging apps are gaining popularity in urban areas, SMS remains a critical communication channel due to its reliability and widespread accessibility, particularly in rural regions where internet connectivity is limited. Android devices dominate the mobile ecosystem due to their affordability and availability.
Key SMS Features and Capabilities in Chad
Chad offers basic SMS functionality with some limitations, notably lacking support for two-way SMS and concatenated messages, while maintaining standard character limits and conversion options for multimedia content.
Two-way SMS Support
Two-way SMS is not supported in Chad through standard messaging platforms. This limitation affects interactive messaging campaigns and automated response systems.
Concatenated Messages (Segmented SMS)
Support: Concatenated messages are not supported in Chad.
Message length rules: Messages are limited to 160 characters per SMS.
Encoding considerations: Messages support standard GSM-7 encoding for Latin characters. For messages containing Arabic or other non-Latin characters, UCS-2 encoding is used, reducing the character limit to 70 characters per message.
MMS Support
MMS messages are not directly supported in Chad. Instead, when attempting to send MMS content, the system automatically converts it to SMS format with an embedded URL link where recipients can access the multimedia content. This conversion ensures message delivery while maintaining access to rich media content through web links.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Chad. This means mobile numbers remain tied to their original network operators, simplifying message routing but limiting consumer flexibility in changing providers while keeping their numbers.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Chad. Attempts to send messages to landline numbers will result in a failed delivery and a 400 response error (code 21614). These messages will not appear in logs, and accounts will not be charged for failed attempts.
Compliance and Regulatory Guidelines for SMS in Chad
SMS communications in Chad are regulated by the Autorité de Régulation des Communications Électroniques et des Postes (ARCEP). While specific SMS marketing regulations are still evolving, businesses must adhere to general telecommunications guidelines and international best practices for messaging.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic consent must be obtained before sending any marketing messages
- Consent records should be maintained for a minimum of 12 months
- Documentation should include timestamp, source of consent, and scope of permission
Best Practices for Obtaining Consent:
- Use clear, unambiguous language when requesting permission
- Specify the types of messages recipients will receive
- Provide examples of message content and frequency
- Store consent data securely with timestamp and source information
HELP/STOP and Other Commands
- All SMS campaigns must support standard STOP commands for opt-outs
- HELP responses should be available in both French and Arabic
- Common keywords that must be honored:
- STOP, ARRET, ARRÊT (French)
- AIDE (French for HELP)
- توقف (Arabic for STOP)
- مساعدة (Arabic for HELP)
Do Not Call / Do Not Disturb Registries
Chad currently does not maintain an official Do Not Call registry. However, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests within 24 hours
- Implement automated filtering systems to exclude opted-out numbers
- Keep records of opt-out requests for compliance purposes
Time Zone Sensitivity
Chad operates in the UTC+1 time zone (WAT - West Africa Time). Best practices include:
- Sending messages between 8:00 AM and 8:00 PM local time
- Avoiding messages during religious observances and holidays
- Limiting emergency messages outside of these hours to genuine urgent communications
Phone Numbers Options and SMS Sender Types for in Chad
Alphanumeric Sender ID
Operator network capability: Supported with dynamic usage allowed
Registration requirements: Pre-registration is not supported, but dynamic alphanumeric IDs must represent legitimate business names
Sender ID preservation: Yes, sender IDs are preserved and displayed as sent
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 Chad
Short Codes
Support: Not currently supported in Chad
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Industries and Content:
- Gambling and betting services
- Adult content or services
- Unauthorized financial services
- Political messaging without proper authorization
- Cryptocurrency and digital asset promotions
Content Filtering
Carrier Filtering Rules:
- Messages containing restricted keywords are automatically blocked
- URLs must be from approved domains
- Message content must not violate local cultural and religious norms
Tips to Avoid Blocking:
- Avoid URL shorteners in messages
- Use clear, straightforward language
- Exclude special characters that might trigger spam filters
- Maintain consistent sending patterns
Best Practices for Sending SMS in Chad
Messaging Strategy
- Keep messages under 160 characters to avoid splitting
- Include clear call-to-actions
- Personalize messages with recipient's name when possible
- Maintain consistent branding across campaigns
Sending Frequency and Timing
- Limit marketing messages to 2-3 per week per recipient
- Respect Ramadan and other religious observances
- Avoid sending during Friday prayers (12:00 PM - 3:00 PM)
- Consider reduced frequency during national holidays
Localization
- Primary languages: French (official), Arabic (official)
- Consider bilingual messages for broader reach
- Use local date and time formats
- Respect cultural sensitivities in content
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include opt-out instructions in every marketing message
- Regularly clean contact lists
Testing and Monitoring
- Test messages across major carriers (Airtel, Tigo)
- Monitor delivery rates by carrier
- Track engagement metrics and opt-out rates
- Regular testing of opt-out functionality
SMS API integrations for Chad
Twilio
Twilio provides a robust SMS API that supports messaging to Chad. Here's how to implement it:
import * as Twilio from 'twilio';
// Initialize Twilio client with your credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Chad
async function sendSMSToChad(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Format phone number to Chad's format (+235)
const formattedNumber = to.startsWith('+235') ? to : `+235${to}`;
// Send message
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID
to: formattedNumber,
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers SMS capabilities for Chad with support for alphanumeric sender IDs:
import axios from 'axios';
class SinchSMSService {
private readonly apiToken: string;
private readonly serviceId: string;
private readonly baseUrl = 'https://sms.api.sinch.com/xms/v1';
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
}
async sendSMS(to: string, message: string, senderId: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/${this.serviceId}/batches`,
{
from: senderId,
to: [to],
body: message,
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json',
},
}
);
console.log('Message sent successfully:', response.data);
} catch (error) {
console.error('Failed to send message:', error);
throw error;
}
}
}
MessageBird
MessageBird (corrected from "Bird") provides SMS services for Chad:
import messagebird from 'messagebird';
class MessageBirdService {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(to: string, message: string, senderId: string): Promise<void> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: senderId,
recipients: [to],
body: message,
datacoding: 'auto', // Automatically handles character encoding
}, (err: any, response: any) => {
if (err) {
console.error('MessageBird error:', err);
reject(err);
} else {
console.log('Message sent successfully:', response);
resolve();
}
});
});
}
}
Plivo
Plivo's SMS API implementation for Chad:
import plivo from 'plivo';
class PlivoSMSService {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(to: string, message: string, senderId: string): Promise<void> {
try {
const response = await this.client.messages.create({
src: senderId,
dst: to,
text: message,
url_strip_query_params: false, // Preserve URL parameters if any
});
console.log('Message sent via Plivo:', response);
} catch (error) {
console.error('Plivo error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
Rate Limits for Chad:
- Maximum 30 messages per second per sender ID
- Daily quota of 100,000 messages per account
- Maximum 10 concurrent API connections
Throughput Management Strategies:
- Implement exponential backoff for retry logic
- Use message queuing systems (Redis, RabbitMQ)
- Batch messages in groups of 50 for optimal performance
Error Handling and Reporting
Logging Best Practices:
- Log all API responses and errors
- Track delivery receipts
- Monitor message status changes
- Implement webhook handlers for status updates
Troubleshooting Tips:
- Verify sender ID format
- Check phone number formatting
- Monitor API response codes
- Implement circuit breakers for API calls
Recap and Additional Resources
Key Takeaways:
- Alphanumeric sender IDs are supported and preferred
- Messages must be in French or Arabic
- Strict compliance with opt-in/opt-out requirements
- Respect local time zones and cultural considerations
Next Steps:
- Register for approved sender IDs
- Implement proper opt-in/opt-out handling
- Set up monitoring and logging systems
- Test message delivery across all major carriers
Additional Resources:
Industry Contacts:
- ARCEP Technical Support: support@arcep.td
- Local Carrier Relations: carrier.relations@airtel.td
- SMS Compliance Office: compliance@arcep.td