Colombia SMS Best Practices, Compliance, and Features
Colombia SMS Market Overview
Locale name: | Colombia |
---|---|
ISO code: | CO |
Region | South America |
Mobile country code (MCC) | 732 |
Dialing Code | +57 |
Market Conditions: Colombia has a robust mobile market with high SMS adoption rates. The country's telecommunications infrastructure is well-developed, with major operators including Claro, Movistar, and Tigo dominating the market. While OTT messaging apps like WhatsApp are popular for personal communications, SMS remains crucial for business communications, particularly for authentication, notifications, and marketing purposes. Android devices hold a significant market share advantage over iOS in Colombia, reflecting broader Latin American mobile usage patterns.
Key SMS Features and Capabilities in Colombia
Colombia offers comprehensive SMS capabilities including two-way messaging support, message concatenation, and number portability, though MMS is handled through SMS with URL links.
Two-way SMS Support
Two-way SMS is fully supported in Colombia, allowing for interactive messaging campaigns and customer engagement. There are no specific restrictions beyond standard compliance requirements for obtaining user consent and honoring opt-out requests.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported across all major carriers, though support may vary by sender ID type.
Message length rules: Standard 160 ASCII characters per message segment before splitting occurs.
Encoding considerations: Messages using GSM-7 encoding can contain up to 160 characters, while UCS-2 encoding (used for special characters and non-Latin alphabets) reduces this to 70 characters per segment.
MMS Support
MMS messages are not directly supported in Colombia. Instead, multimedia content is automatically converted to SMS with an embedded URL link where recipients can access the content. This approach ensures reliable delivery while maintaining the ability to share rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Colombia, allowing users to keep their phone numbers when switching carriers. This feature doesn't significantly impact message delivery or routing as the SMS infrastructure handles ported numbers seamlessly.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Colombia. Attempts to send messages to landline numbers will result in a failed delivery and a 400 response error (code 21614) through the API. These messages won't appear in logs and won't incur charges.
Compliance and Regulatory Guidelines for SMS in Colombia
SMS communications in Colombia are regulated by the Ministry of Information and Communications Technology (MinTIC) and the Communications Regulation Commission (CRC). Compliance with Law 1581 of 2012 and Decree 1377 of 2013 is mandatory for handling personal data in SMS communications.
Consent and Opt-In
Explicit Consent Requirements:
- Written or digital confirmation of opt-in must be obtained before sending marketing messages
- Consent records must be maintained and easily accessible
- Purpose of communications must be clearly stated during opt-in
- Separate consent required for different types of communications (marketing, notifications, etc.)
Best practices for documenting consent:
- Store timestamp and source of consent
- Maintain audit trail of opt-in method
- Keep records of consent language and terms presented
- Document any subsequent opt-out requests
HELP/STOP and Other Commands
- Required Keywords: STOP, CANCELAR, NO, BAJA must be supported
- Language Requirements: Commands must be recognized in both Spanish and English
- Response Time: Acknowledgment messages must be sent within 24 hours
- Implementation: Keywords should be case-insensitive and work with or without accents
Do Not Call / Do Not Disturb Registries
Colombia does not maintain a centralized Do Not Call registry, but businesses must:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Remove numbers within 24 hours of receiving STOP commands
- Keep records of opt-out dates for compliance purposes
Time Zone Sensitivity
Colombia observes a single time zone (UTC-5), simplifying message timing:
- Recommended Sending Hours: 8:00 AM to 8:00 PM local time
- Exceptions: Emergency notifications and critical alerts
- Best Practice: Schedule campaigns between 10:00 AM and 6:00 PM for optimal engagement
Phone Numbers Options and SMS Sender Types for Colombia
Alphanumeric Sender ID
Operator network capability: Not supported in Colombia
Registration requirements: N/A
Sender ID preservation: All alphanumeric IDs are converted to numeric format
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported but sender ID is overwritten
Sender ID preservation: No, international numbers are replaced with local short codes
Provisioning time: Immediate for international numbers
Use cases: Suitable for low-volume messaging and two-way communication
Short Codes
Support: Fully supported and preferred for business messaging
Provisioning time: 4-10 weeks for approval and implementation
Use cases:
- High-volume marketing campaigns
- Two-factor authentication
- Customer service
- Transactional messaging
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Gambling and betting services
- Adult content or explicit material
- Cryptocurrency promotions
- Unauthorized financial services
- Political campaign messages without proper authorization
Regulated Industries:
- Financial services require additional disclaimers
- Healthcare messages must comply with patient privacy laws
- Insurance products need specific regulatory disclosures
Content Filtering
Carrier Filtering Rules:
- URLs must be from approved domains
- Messages containing certain keywords may be blocked
- High-frequency messaging patterns trigger filters
Best Practices to Avoid Blocking:
- Avoid URL shorteners
- Use approved message templates
- Maintain consistent sending patterns
- Include clear business identification
- Avoid excessive punctuation and all-caps
Best Practices for Sending SMS in Colombia
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Use personalization tokens thoughtfully
- Maintain consistent sender identification
Sending Frequency and Timing
- Limit to 4-5 messages per month per recipient
- Respect national holidays and weekends
- Implement frequency caps per user
- Space out bulk campaigns
Localization
- Primary language should be Spanish
- Consider regional Colombian Spanish variations
- Provide option for English language preference
- Test message rendering with special characters
Opt-Out Management
- Process opt-outs in real-time
- Maintain centralized opt-out database
- Confirm opt-out with acknowledgment message
- Regular audit of opt-out list compliance
Testing and Monitoring
- Test across all major carriers (Claro, Movistar, Tigo)
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular testing of opt-out functionality
- Monitor for carrier filtering patterns
SMS API integrations for Colombia
Twilio
Twilio provides a robust SMS API with comprehensive support for Colombian messaging requirements. Integration requires account credentials and proper phone number formatting.
Key Parameters:
- Account SID and Auth Token for authentication
- From number must be a valid Twilio phone number
- Recipient numbers must include Colombia's +57 country code
import { 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 Colombia
async function sendSMSColombia(to: string, message: string) {
try {
// Ensure number starts with +57 for Colombia
const formattedNumber = to.startsWith('+57') ? to : `+57${to}`;
const response = await client.messages.create({
body: message,
from: process.env.TWILIO_PHONE_NUMBER,
to: formattedNumber,
// Optional: Set status callback URL for delivery tracking
statusCallback: 'https://your-callback-url.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers a straightforward API for sending SMS to Colombia, with support for both transactional and marketing messages.
import axios from 'axios';
interface SinchSMSResponse {
id: string;
status: string;
}
class SinchSMSClient {
private readonly baseUrl: string;
private readonly apiToken: string;
constructor(apiToken: string) {
this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
this.apiToken = apiToken;
}
async sendSMS(to: string, message: string): Promise<SinchSMSResponse> {
try {
const response = await axios.post(
`${this.baseUrl}/batches`,
{
from: process.env.SINCH_SENDER_ID,
to: [to],
body: message
},
{
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 a feature-rich API with strong support for Colombian SMS requirements and delivery reporting.
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(to: string, message: string): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: process.env.MESSAGEBIRD_ORIGINATOR,
recipients: [to],
body: message,
// Optional parameters for Colombian requirements
type: 'sms',
datacoding: 'plain', // or 'unicode' for special characters
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers reliable SMS delivery to Colombia with support for high-volume messaging and detailed delivery tracking.
import plivo from 'plivo';
class PlivoSMSClient {
private client: any;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendSMS(to: string, message: string) {
try {
const response = await this.client.messages.create({
src: process.env.PLIVO_SOURCE_NUMBER,
dst: to,
text: message,
// Optional parameters
url: 'https://your-callback-url.com/status',
method: 'POST'
});
return response;
} catch (error) {
console.error('Plivo SMS Error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
Rate Limits by Provider:
- Twilio: 100 messages per second
- Sinch: 30 messages per second
- MessageBird: 60 messages per second
- Plivo: 50 messages per second
Throughput Management Strategies:
- Implement exponential backoff for retry logic
- Use queue systems (Redis, RabbitMQ) for high-volume sending
- Batch messages when possible
- Monitor delivery rates and adjust sending patterns
Error Handling and Reporting
Best Practices:
- Implement comprehensive error logging
- Monitor delivery receipts
- Track carrier-specific error codes
- Set up automated alerts for failure thresholds
- Maintain error logs with correlation IDs
Recap and Additional Resources
Key Takeaways:
- Always format numbers with +57 country code
- Implement proper opt-out handling
- Respect local time zones (UTC-5)
- Monitor delivery rates by carrier
- Maintain proper consent records
Next Steps:
- Review MinTIC regulations for SMS messaging
- Implement proper consent management
- Set up delivery monitoring
- Test across all major carriers
Additional Information:
Industry Resources:
- Colombian Mobile Operators Association
- Local SMS compliance guidelines
- Carrier-specific documentation