Market Conditions: Haiti's mobile market is dominated by two major operators: Digicel and Natcom. SMS remains a critical communication channel due to limited smartphone penetration and internet connectivity challenges. While OTT messaging apps like WhatsApp are gaining popularity in urban areas, traditional SMS maintains widespread usage for both personal and business communications, especially in rural regions where network infrastructure is less developed.
Haiti transitioned from 7-digit to 8-digit phone numbers on March 1, 2008
Format: +509 XX XX XXXX
Mobile numbers use prefixes 30–43
Landline numbers use prefixes 22, 25, 28, 29
VoIP numbers use 96X, 97X, 98X, 99X prefixes
SMS Features and Capabilities in Haiti
Haiti supports basic SMS functionality with some limitations on advanced features, primarily offering one-way messaging capabilities with support for concatenated messages and alphanumeric sender IDs. These limitations reflect the developing telecommunications infrastructure and carrier-level technical constraints in the market.
Two-Way SMS Support
Haiti does not support two-way SMS for A2P (Application-to-Person) messaging.
You can only send messages one-way from applications to end users.
Why Two-Way SMS Isn't Available: Two-way messaging requires dedicated short codes or long codes with inbound routing capabilities. Haiti's carriers do not provision short codes, and inbound SMS routing infrastructure for A2P messaging is not widely deployed.
Alternatives for Receiving Responses:
Direct users to web forms or mobile apps for responses
Use WhatsApp Business API for two-way communication in urban areas
Implement voice call response systems (IVR)
Provide email or social media channels for feedback
Concatenated Messages (Segmented SMS)
Support: Yes, most sender ID types support concatenation.
Message length rules: Standard SMS length limits apply – 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings work, with message splitting and rejoining varying based on the character encoding used.
Impact on Delivery and Costs:
Concatenated messages incur charges per segment (a 200-character message = 2 message credits)
Each segment includes a 7-byte header for reassembly, reducing usable characters (153 for GSM-7, 67 for UCS-2)
Multi-segment messages have lower delivery success rates due to increased complexity
Handsets reassemble messages, but older devices may display segments separately
MMS Support
Haiti does not support MMS messages directly. When you send MMS content, it converts automatically to SMS with an embedded URL link where recipients can view the multimedia content.
Best Practice: When sending multimedia content, shorten the URL and clearly label it to build recipient trust.
Recipient Phone Number Compatibility
Number Portability
Haiti does not support number portability.
Phone numbers remain tied to their original mobile operator, simplifying message routing and delivery.
Identifying the Operator: Use the mobile prefix to identify the carrier:
Digicel: 30, 31, 34, 36, 37, 38, 39
Natcom: 32, 33, 40, 41, 42, 43
Sending SMS to Landlines
You cannot send SMS to landline numbers in Haiti.
Attempts to send SMS to landline numbers will result in a 400 response error (code 21614). The message will not be logged, and you will not incur charges.
Mobile vs. Landline Validation:
Regex
Mobile (valid for SMS): ^(\+509|509)?(3[0-4]|3[6-9]|4[0-3])\d{6}$
Landline (invalid for SMS): ^(\+509|509)?(22|25|28|29)\d{6}$
Validation Example (TypeScript):
TypeScript
functionisHaitiMobile(phoneNumber: string): boolean {
// Remove +509 or 509 prefix and whitespaceconst normalized = phoneNumber.replace(/^(\+?509)?\s*/g, '');
// Check if it's 8 digits and starts with mobile prefixreturn/^(3[0-4]|3[6-9]|4[0-3])\d{6}$/.test(normalized);
}
Haiti SMS Compliance and Regulatory Requirements
CONATEL (Conseil National des Télécommunications) regulates Haiti's telecommunications sector. While specific SMS marketing regulations are still evolving, follow general telecommunications guidelines and international best practices for messaging.
Consent and Opt-In
Explicit Consent Required: Obtain and document clear opt-in consent before sending marketing or promotional messages.
Best Practices for Consent:
Collect consent through written forms, web forms, or SMS keyword responses
Maintain detailed records of when and how you obtained consent
Clearly state the types of messages users will receive
Include your company name and message frequency in consent requests
Recommended retention: Keep consent records for at least 3 years after last contact
HELP/STOP and Other Commands
Support standard opt-out keywords in all SMS campaigns: STOP, ARRET, RETE (in both French and Haitian Creole)
Support HELP/AIDE messages in both French and Haitian Creole
Respond to these commands immediately and free of charge
Record all opt-out requests for compliance purposes
Do Not Call / Do Not Disturb Registries
Haiti does not maintain an official Do Not Call registry. However, you should:
Maintain your own suppression lists of opted-out numbers
Honor opt-out requests within 24 hours
Regularly clean contact lists to remove inactive or invalid numbers
Document all opt-out requests and their processing dates
Time Zone Sensitivity
Haiti observes Eastern Time (ET/UTC-4) year-round (no daylight saving time). Follow these best practices:
Send messages between 8:00 AM and 8:00 PM local time
Avoid sending during religious holidays and national celebrations
Send messages outside these hours only for urgent communications (e.g., security alerts)
January 1–2: New Year's Day and Heroes' Day (Independence Day)
February: Carnival (dates vary, typically mid-February)
April: Good Friday and Easter
May 1: Labor Day
May 18: Flag Day
May (last Sunday): Mother's Day
June 4: Corpus Christi (local holiday)
October 17: Dessalines Day
November 1–2: All Saints' Day and All Souls' Day
November 18: Vertières Day
December 25: Christmas Day
SMS Sender ID Options for Haiti (Alphanumeric, Long Codes, Short Codes)
Alphanumeric Sender ID
Operator network capability: Partially supported
Registration requirements: No pre-registration required, dynamic usage supported
Sender ID preservation: Yes, except for Operator Natcom (37203) where alphanumeric IDs are not supported
Character limit: Up to 11 characters
Allowed characters: A-Z, a-z, 0-9, and space (no special characters)
Note: Generic sender IDs (INFO, SMS, NOTICE) are prohibited
Natcom Behavior: When you send to Natcom subscribers (prefixes 32, 33, 40-43) with an alphanumeric sender ID, the message delivers but the sender ID may be replaced with a numeric ID or short code. The message content is not blocked.
Long Codes
Domestic vs. International:
Domestic long codes not supported
International long codes fully supported
Sender ID preservation: Yes, original sender ID is preserved
Provisioning time: Immediate activation for international long codes
Use cases: Ideal for transactional messages, alerts, and notifications
Short Codes
Support: Not currently available in Haiti
Provisioning time: N/A
Use cases: N/A
Restricted Content and Industry Limitations for Haiti SMS
Prohibited Content (Carrier Policies):
Political messaging
Religious content
Gambling and betting
Adult content
Cryptocurrency promotions
Unsolicited marketing messages
Note: Carriers enforce these restrictions at the network level rather than through specific legislation. Violations may result in message blocking, sender ID blacklisting, or account suspension without prior notice.
Haitian Creole: Spoken by virtually 100% of the population (11+ million speakers)
French: Spoken by approximately 42% of the population, primarily educated Haitians and in urban areas
Recommendation: Provide messages in Haitian Creole for broadest reach. Use French for professional/business communications or bilingual messages for maximum impact.
Opt-Out Management
Process opt-outs within 24 hours
Send confirmation of opt-out completion
Maintain opt-out lists across all campaigns
Regular audit of opt-out processing
Testing and Monitoring
Test messages across both major carriers (Digicel and Natcom)
Monitor delivery rates by carrier
Track opt-out rates and patterns
Regular testing of HELP/STOP functionality
Monitor for carrier filtering changes
Haiti SMS API Integration Examples (Twilio, Sinch, MessageBird, Plivo)
Twilio
Twilio provides a robust SMS API with comprehensive support for Haiti. Integration requires your Account SID and Auth Token from the Twilio Console.
TypeScript
import { Twilio } from'twilio';
// Initialize the client with your credentialsconst client = newTwilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN);
// Function to send SMS to HaitiasyncfunctionsendSMSToHaiti(to: string,
message: string,
senderId: string): Promise<void> {
try {
// Ensure phone number is in E.164 format for Haiti (+509XXXXXXXX)const formattedNumber = to.startsWith('+509') ? to : `+509${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID or international numberto: formattedNumber,
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers direct carrier connections in Haiti. Their API requires an API Token and Service Plan ID.
TypeScript
import { SinchClient } from'@sinch/sdk';
// Initialize Sinch clientconst sinchClient = newSinchClient({
apiToken: process.env.SINCH_API_TOKEN,
servicePlanId: process.env.SINCH_SERVICE_PLAN_ID,
});
// Function to send SMS using SinchasyncfunctionsendSinchSMS(recipientNumber: string,
messageText: string): Promise<void> {
try {
const response = await sinchClient.sms.send({
to: [recipientNumber], // Must include +509 prefixmessage: messageText,
from: 'YourCompany', // Your approved sender ID
});
console.log(`Batch ID: ${response.batchId}`);
} catch (error) {
console.error('Sinch SMS Error:', error);
throw error;
}
}
MessageBird
MessageBird provides reliable SMS delivery to Haiti with straightforward API integration.
TypeScript
import { MessageBird } from'messagebird';
// Initialize MessageBird clientconst messagebird = newMessageBird(process.env.MESSAGEBIRD_API_KEY);
// Function to send SMS via MessageBirdasyncfunctionsendMessageBirdSMS(to: string,
message: string,
originator: string): Promise<void> {
const params = {
originator, // Your sender IDrecipients: [to], // Haiti number with +509 prefixbody: message,
};
try {
const response = awaitnewPromise((resolve, reject) => {
messagebird.messages.create(params, (err, response) => {
if (err) reject(err);
resolve(response);
});
});
console.log('MessageBird Response:', response);
} catch (error) {
console.error('MessageBird Error:', error);
throw error;
}
}
Plivo
Plivo offers reliable SMS delivery to Haiti with good delivery rates and tracking capabilities.
TypeScript
import { Client } from'plivo';
// Initialize Plivo clientconst plivo = newClient(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
// Function to send SMS via PlivoasyncfunctionsendPlivoSMS(destination: string,
message: string,
sourceNumber: string): Promise<void> {
try {
const response = await plivo.messages.create({
src: sourceNumber, // Your Plivo number or sender IDdst: destination, // Haiti number (+509)text: message,
});
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 queue systems like Redis or RabbitMQ for high-volume sending
Batch messages when possible to optimize throughput
Error Handling and Reporting
Implement comprehensive error logging
Monitor delivery receipts (DLRs)
Track common error codes:
Invalid number format
Network errors
Rate limit exceeded
Invalid sender ID
Store message metadata for troubleshooting
Common Haiti-Specific Error Codes:
21614 (Twilio): Invalid phone number (landline or incorrect format)
30007 (Twilio): Message filtered by carrier
30008 (Twilio): Unknown destination handset
30034 (Twilio): Invalid sender ID
Summary: Key Takeaways for Haiti SMS Messaging
Key Takeaways:
Always use E.164 format (+509 XX XX XXXX) for Haiti numbers
Validate mobile prefixes (30–43) to avoid sending to landlines
Implement proper opt-out handling in both French and Haitian Creole
Monitor delivery rates and errors by carrier (Digicel vs. Natcom)
Prioritize Haitian Creole for maximum reach (100% vs. 42% for French)
Respect local time zones (UTC-4) and avoid major holidays
Use the E.164 format (+509) for phone numbers and send messages through providers like Twilio, Sinch, MessageBird, or Plivo, which offer APIs with Haiti support. Remember to handle opt-outs, monitor delivery rates, and support both French and Haitian Creole in your messages.
Haiti's mobile market is dominated by Digicel and Natcom. While OTT apps are growing, SMS remains crucial, especially in rural areas with limited internet access, making it vital for personal and business communication.
Haiti currently only supports one-way A2P (Application-to-Person) SMS messaging. This means applications can send messages to users, but users cannot directly reply to those messages via SMS.
Adhere to Eastern Time (ET/UTC-4) and send messages between 8:00 AM and 8:00 PM local time. Avoid sending during religious holidays and national celebrations unless it's an urgent communication like a security alert.
Alphanumeric sender IDs are partially supported, except for Natcom (37203). No pre-registration is needed, and sender ID preservation is generally upheld, which helps businesses be more identifiable.
Concatenated messages are supported, following standard length limits (160 characters for GSM-7, 70 for UCS-2). Both GSM-7 and UCS-2 encodings are supported, affecting how messages are split and rejoined.
Support opt-out keywords like STOP, ARRET, and RETE in French and Haitian Creole. Responses should be immediate and free. Maintain your own suppression list and honor requests within 24 hours, keeping records for compliance.
Avoid political, religious, gambling, adult content, cryptocurrency promotions, and unsolicited marketing messages. Carrier filtering blocks messages with restricted keywords and scrutinizes URLs, so use clear language and avoid URL shorteners when possible.
Keep messages concise, include clear calls to action, identify your business, personalize thoughtfully, limit frequency, consider local events, localize content, manage opt-outs effectively, and test thoroughly across Digicel and Natcom.
Popular providers like Twilio, Sinch, MessageBird, and Plivo offer SMS API integrations for Haiti. Each requires specific credentials and provides documentation for setup and usage.
Default rate limits vary by provider. Implement exponential backoff for retries, use queue systems (Redis, RabbitMQ) for high volume, and batch messages to optimize throughput and avoid exceeding limits.
Sending SMS to landlines in Haiti is not supported. Attempts will result in a 400 response error (code 21614), no message logging, and no charges.
Obtain explicit opt-in consent, document consent collection, support HELP/STOP commands, maintain suppression lists, respect time zones, and follow content restrictions. Consult CONATEL's resources for updated guidelines.
While short codes are unavailable, alphanumeric sender IDs and international long codes are supported. Alphanumeric IDs offer branding opportunities, while long codes are ideal for transactional messages and alerts.
Overview of Haiti's SMS Market and Mobile Network
Market Conditions: Haiti's mobile market is dominated by two major operators: Digicel and Natcom. SMS remains a critical communication channel due to limited smartphone penetration and internet connectivity challenges. While OTT messaging apps like WhatsApp are gaining popularity in urban areas, traditional SMS maintains widespread usage for both personal and business communications, especially in rural regions where network infrastructure is less developed.
Number Format Details (ITU E.164):
SMS Features and Capabilities in Haiti
Haiti supports basic SMS functionality with some limitations on advanced features, primarily offering one-way messaging capabilities with support for concatenated messages and alphanumeric sender IDs. These limitations reflect the developing telecommunications infrastructure and carrier-level technical constraints in the market.
Two-Way SMS Support
Haiti does not support two-way SMS for A2P (Application-to-Person) messaging. You can only send messages one-way from applications to end users.
Why Two-Way SMS Isn't Available: Two-way messaging requires dedicated short codes or long codes with inbound routing capabilities. Haiti's carriers do not provision short codes, and inbound SMS routing infrastructure for A2P messaging is not widely deployed.
Alternatives for Receiving Responses:
Concatenated Messages (Segmented SMS)
Support: Yes, most sender ID types support concatenation.
Message length rules: Standard SMS length limits apply – 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings work, with message splitting and rejoining varying based on the character encoding used.
Impact on Delivery and Costs:
MMS Support
Haiti does not support MMS messages directly. When you send MMS content, it converts automatically to SMS with an embedded URL link where recipients can view the multimedia content.
Best Practice: When sending multimedia content, shorten the URL and clearly label it to build recipient trust.
Recipient Phone Number Compatibility
Number Portability
Haiti does not support number portability. Phone numbers remain tied to their original mobile operator, simplifying message routing and delivery.
Identifying the Operator: Use the mobile prefix to identify the carrier:
Sending SMS to Landlines
You cannot send SMS to landline numbers in Haiti. Attempts to send SMS to landline numbers will result in a 400 response error (code 21614). The message will not be logged, and you will not incur charges.
Mobile vs. Landline Validation:
Validation Example (TypeScript):
function isHaitiMobile(phoneNumber: string): boolean { // Remove +509 or 509 prefix and whitespace const normalized = phoneNumber.replace(/^(\+?509)?\s*/g, ''); // Check if it's 8 digits and starts with mobile prefix return /^(3[0-4]|3[6-9]|4[0-3])\d{6}$/.test(normalized); }Haiti SMS Compliance and Regulatory Requirements
CONATEL (Conseil National des Télécommunications) regulates Haiti's telecommunications sector. While specific SMS marketing regulations are still evolving, follow general telecommunications guidelines and international best practices for messaging.
Consent and Opt-In
Explicit Consent Required: Obtain and document clear opt-in consent before sending marketing or promotional messages.
Best Practices for Consent:
HELP/STOP and Other Commands
Do Not Call / Do Not Disturb Registries
Haiti does not maintain an official Do Not Call registry. However, you should:
Time Zone Sensitivity
Haiti observes Eastern Time (ET/UTC-4) year-round (no daylight saving time). Follow these best practices:
Major Haiti Holidays to Avoid (source):
SMS Sender ID Options for Haiti (Alphanumeric, Long Codes, Short Codes)
Alphanumeric Sender ID
Operator network capability: Partially supported
Registration requirements: No pre-registration required, dynamic usage supported
Sender ID preservation: Yes, except for Operator Natcom (37203) where alphanumeric IDs are not supported
Character limit: Up to 11 characters
Allowed characters: A-Z, a-z, 0-9, and space (no special characters)
Note: Generic sender IDs (INFO, SMS, NOTICE) are prohibited
Natcom Behavior: When you send to Natcom subscribers (prefixes 32, 33, 40-43) with an alphanumeric sender ID, the message delivers but the sender ID may be replaced with a numeric ID or short code. The message content is not blocked.
Long Codes
Domestic vs. International:
Sender ID preservation: Yes, original sender ID is preserved
Provisioning time: Immediate activation for international long codes
Use cases: Ideal for transactional messages, alerts, and notifications
Short Codes
Support: Not currently available in Haiti
Provisioning time: N/A
Use cases: N/A
Restricted Content and Industry Limitations for Haiti SMS
Prohibited Content (Carrier Policies):
Note: Carriers enforce these restrictions at the network level rather than through specific legislation. Violations may result in message blocking, sender ID blacklisting, or account suspension without prior notice.
Content Filtering
Carrier Filtering Rules:
Tips to Avoid Blocking:
Haiti SMS Best Practices: Timing, Frequency & Localization
Messaging Strategy
Sending Frequency and Timing
Localization
Language Demographics (source):
Opt-Out Management
Testing and Monitoring
Haiti SMS API Integration Examples (Twilio, Sinch, MessageBird, Plivo)
Twilio
Twilio provides a robust SMS API with comprehensive support for Haiti. Integration requires your Account SID and Auth Token from the Twilio Console.
import { Twilio } from 'twilio'; // Initialize the client with your credentials const client = new Twilio(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_AUTH_TOKEN); // Function to send SMS to Haiti async function sendSMSToHaiti( to: string, message: string, senderId: string ): Promise<void> { try { // Ensure phone number is in E.164 format for Haiti (+509XXXXXXXX) const formattedNumber = to.startsWith('+509') ? to : `+509${to}`; const response = await client.messages.create({ body: message, from: senderId, // Alphanumeric sender ID or international number to: formattedNumber, }); console.log(`Message sent successfully! SID: ${response.sid}`); } catch (error) { console.error('Error sending message:', error); throw error; } }Sinch
Sinch offers direct carrier connections in Haiti. Their API requires an API Token and Service Plan ID.
import { SinchClient } from '@sinch/sdk'; // Initialize Sinch client const sinchClient = new SinchClient({ apiToken: process.env.SINCH_API_TOKEN, servicePlanId: process.env.SINCH_SERVICE_PLAN_ID, }); // Function to send SMS using Sinch async function sendSinchSMS( recipientNumber: string, messageText: string ): Promise<void> { try { const response = await sinchClient.sms.send({ to: [recipientNumber], // Must include +509 prefix message: messageText, from: 'YourCompany', // Your approved sender ID }); console.log(`Batch ID: ${response.batchId}`); } catch (error) { console.error('Sinch SMS Error:', error); throw error; } }MessageBird
MessageBird provides reliable SMS delivery to Haiti with straightforward API integration.
import { MessageBird } from 'messagebird'; // Initialize MessageBird client const messagebird = new MessageBird(process.env.MESSAGEBIRD_API_KEY); // Function to send SMS via MessageBird async function sendMessageBirdSMS( to: string, message: string, originator: string ): Promise<void> { const params = { originator, // Your sender ID recipients: [to], // Haiti number with +509 prefix body: message, }; try { const response = await new Promise((resolve, reject) => { messagebird.messages.create(params, (err, response) => { if (err) reject(err); resolve(response); }); }); console.log('MessageBird Response:', response); } catch (error) { console.error('MessageBird Error:', error); throw error; } }Plivo
Plivo offers reliable SMS delivery to Haiti with good delivery rates and tracking capabilities.
import { Client } from 'plivo'; // Initialize Plivo client const plivo = new Client( process.env.PLIVO_AUTH_ID, process.env.PLIVO_AUTH_TOKEN ); // Function to send SMS via Plivo async function sendPlivoSMS( destination: string, message: string, sourceNumber: string ): Promise<void> { try { const response = await plivo.messages.create({ src: sourceNumber, // Your Plivo number or sender ID dst: destination, // Haiti number (+509) text: message, }); console.log('Message UUID:', response.messageUuid); } catch (error) { console.error('Plivo Error:', error); throw error; } }API Rate Limits and Throughput
Error Handling and Reporting
Common Haiti-Specific Error Codes:
Summary: Key Takeaways for Haiti SMS Messaging
Key Takeaways:
Next Steps:
Additional Resources:
Technical Documentation: