Phone Validator
Check phone number activity, carrier details, line type and more.
Costa Rica SMS Best Practices, Compliance, and Features
Costa Rica SMS Market Overview
Locale name: | Costa Rica |
---|---|
ISO code: | CR |
Region | North America |
Mobile country code (MCC) | 712 |
Dialing Code | +506 |
Market Conditions: Costa Rica has a mature mobile market with high smartphone penetration and widespread SMS usage. The country's mobile landscape is dominated by major operators including Kolbi (ICE), Movistar, and Claro. While OTT messaging apps like WhatsApp are popular for personal communication, SMS remains crucial for business messaging, particularly for notifications, authentication, and marketing communications due to its reliability and universal reach.
Key SMS Features and Capabilities in Costa Rica
Costa Rica supports basic SMS functionality with some limitations on advanced features like concatenation and two-way messaging.
Two-way SMS Support
Two-way SMS is not supported in Costa Rica through most major SMS providers. This means businesses should design their SMS strategies around one-way communication flows.
Concatenated Messages (Segmented SMS)
Support: Concatenated SMS is not supported by operators in Costa Rica.
Message length rules: Messages longer than standard SMS length will be split into individual messages without guaranteed ordering.
Encoding considerations: Standard GSM-7 encoding is recommended for optimal delivery. Using UCS-2 for special characters will reduce the available characters per message.
MMS Support
MMS messages are not directly supported in Costa Rica. When attempting to send MMS, the message will be automatically converted to SMS with an embedded URL link where recipients can view the media content. This ensures message delivery while providing access to multimedia content through web links.
Recipient Phone Number Compatibility
Number Portability
Number portability is not available in Costa Rica. This means mobile numbers remain tied to their original carriers, which can simplify routing but limits consumer flexibility.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Costa Rica. Attempts to send messages to landline numbers will result in delivery failures, typically generating a 400 response error (error code 21614) through SMS APIs, and no charges will be incurred for these failed attempts.
Compliance and Regulatory Guidelines for SMS in Costa Rica
Costa Rica's telecommunications sector is regulated by SUTEL (Superintendencia de Telecomunicaciones), which oversees SMS communications and marketing activities. While specific SMS marketing regulations are less stringent than in some countries, businesses must adhere to general consumer protection laws and telecommunications guidelines.
Consent and Opt-In
Explicit Consent Requirements:
- Obtain clear, documented opt-in consent before sending marketing messages
- Maintain detailed records of when and how consent was obtained
- Include your business name and purpose in initial opt-in messages
- Provide clear terms and conditions regarding message frequency and content
Best Practices for Consent Collection:
- Use double opt-in processes for marketing lists
- Store consent records with timestamps and opt-in source
- Regularly clean and update subscriber lists
- Document opt-in language and methods used
HELP/STOP and Other Commands
- All SMS campaigns must support standard opt-out keywords:
- "STOP" (primary)
- "CANCELAR" (Spanish equivalent)
- "NO" (alternative)
- HELP/AYUDA messages should provide:
- Company identification
- Contact information
- Brief service description
- Support both Spanish and English commands for optimal user experience
Do Not Call / Do Not Disturb Registries
Costa Rica does not maintain a centralized Do Not Call registry. However, businesses should:
- Maintain their own opt-out databases
- Honor opt-out requests within 24 hours
- Keep suppression lists updated across all campaigns
- Implement proper opt-out tracking systems
Time Zone Sensitivity
Costa Rica observes Central Standard Time (CST) year-round. Best practices include:
- Send messages between 8:00 AM and 8:00 PM CST
- Avoid sending during national holidays
- Consider business hours for B2B messages
- Reserve after-hours messaging for urgent notifications only
Phone Numbers Options and SMS Sender Types for Costa Rica
Alphanumeric Sender ID
Operator network capability: Supported
Registration requirements: Pre-registration not required
Sender ID preservation: Sender IDs may be overwritten by carriers for security purposes
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported but may be overwritten
Sender ID preservation: No, international numbers are typically replaced with local formats Provisioning time: Immediate for international numbers Use cases:
- Transactional messages
- Customer support
- Account notifications
Short Codes
Support: Available through major carriers Provisioning time: 8-12 weeks typical approval timeline Use cases:
- High-volume marketing campaigns
- Two-factor authentication
- Emergency alerts
- Customer service
Restricted SMS Content, Industries, and Use Cases
Restricted Industries:
- Gambling and betting services
- Adult content
- Unauthorized pharmaceutical sales
- Political campaigns without proper authorization
Regulated Industries:
- Financial services require additional disclaimers
- Healthcare messages must maintain patient privacy
- Insurance services need clear terms and conditions
Content Filtering
Known Carrier Filters:
- URLs from unknown domains
- Multiple exclamation marks
- ALL CAPS messages
- Excessive special characters
Best Practices to Avoid Filtering:
- Use registered URL shorteners
- Maintain consistent sender IDs
- Avoid spam trigger words
- Keep message formatting simple
Best Practices for Sending SMS in Costa Rica
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear calls-to-action
- Use personalization thoughtfully
- Maintain consistent branding
Sending Frequency and Timing
- Limit to 2-4 messages per week per recipient
- Respect local holidays and cultural events
- Schedule around peak business hours
- Space out bulk campaigns
Localization
- Primary language: Spanish
- Consider bilingual messages for tourist areas
- Use local date/time formats
- Respect cultural nuances
Opt-Out Management
- Process opt-outs immediately
- Maintain centralized opt-out database
- Confirm opt-out with one final message
- Regular database cleaning
Testing and Monitoring
- Test across all major carriers (Kolbi, Movistar, Claro)
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular A/B testing of message content
SMS API integrations for Costa Rica
Twilio
Twilio provides a robust SMS API with comprehensive support for Costa Rica. Integration requires an account SID and auth token for authentication.
import { Twilio } from 'twilio';
// Initialize client with environment variables
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
// Function to send SMS to Costa Rica
async function sendSMSToCostaRica(
to: string,
message: string
): Promise<void> {
try {
// Format number to Costa Rica format (+506)
const formattedNumber = to.startsWith('+506') ? to : `+506${to}`;
const response = await client.messages.create({
body: message,
to: formattedNumber,
from: process.env.TWILIO_PHONE_NUMBER,
// Optional statusCallback URL for delivery updates
statusCallback: 'https://your-callback-url.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers a straightforward API for sending SMS to Costa Rica, with support for delivery reporting and batch sending.
import { SinchClient } from '@sinch/sdk-core';
class SinchSMSService {
private client: SinchClient;
constructor() {
this.client = new SinchClient({
projectId: process.env.SINCH_PROJECT_ID,
apiToken: process.env.SINCH_API_TOKEN
});
}
async sendMessage(to: string, message: string): Promise<void> {
try {
const response = await this.client.sms.batches.send({
to: [to],
from: process.env.SINCH_SENDER_ID,
body: message,
// Enable delivery report
deliveryReport: 'summary'
});
console.log('Message batch ID:', response.id);
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
}
MessageBird
MessageBird provides reliable SMS delivery to Costa Rica with support for unicode messages and delivery tracking.
import { MessageBird } from 'messagebird';
class MessageBirdService {
private client: MessageBird;
constructor() {
this.client = new MessageBird(process.env.MESSAGEBIRD_API_KEY);
}
async sendSMS(
to: string,
message: string,
options: { reference?: string } = {}
): Promise<void> {
try {
const params = {
originator: process.env.MESSAGEBIRD_ORIGINATOR,
recipients: [to],
body: message,
reference: options.reference,
reportUrl: 'https://your-webhook-url.com/delivery-reports'
};
await this.client.messages.create(params);
} catch (error) {
console.error('MessageBird error:', error);
throw error;
}
}
}
Plivo
Plivo offers advanced SMS features with support for Costa Rica, including message queuing and detailed delivery reporting.
import { Client } from 'plivo';
class PlivoSMSService {
private client: Client;
constructor() {
this.client = new Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
}
async sendSMS(
to: string,
message: string,
options = { dlrUrl?: string }
): Promise<void> {
try {
const response = await this.client.messages.create({
src: process.env.PLIVO_SOURCE_NUMBER,
dst: to,
text: message,
url: options.dlrUrl,
method: 'POST'
});
console.log('Message UUID:', response.messageUuid);
} catch (error) {
console.error('Plivo error:', error);
throw error;
}
}
}
API Rate Limits and Throughput
- Default rate limits vary by provider (typically 1-10 messages per second)
- Implement exponential backoff for retry logic
- Use queuing systems (Redis, RabbitMQ) for high-volume sending
- Consider batch APIs for bulk messages
Error Handling and Reporting
- Implement comprehensive error logging
- Monitor delivery receipts via webhooks
- Track common error codes:
- Invalid number format
- Network errors
- Rate limit exceeded
- Store message status updates for analytics
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities
- Obtain explicit consent
- Honor opt-out requests
- Respect time zone restrictions
-
Technical Considerations
- No concatenated SMS support
- MMS converts to SMS with URL
- International long codes supported
-
Best Practices
- Use Spanish language
- Implement proper error handling
- Monitor delivery rates
Next Steps
- Review SUTEL regulations at www.sutel.go.cr
- Consult with local legal counsel for compliance
- Set up test accounts with preferred SMS providers
- Implement proper error handling and monitoring
Additional Resources
- SUTEL Guidelines: www.sutel.go.cr/sites/default/files/normativas
- Costa Rica Consumer Protection: www.meic.go.cr
- Telecommunications Law: System of Costa Rican Legislation
Provider Documentation: