sms compliance

Sent logo
Sent TeamMar 8, 2026 / sms compliance / Article

Dominican Republic SMS Guide

Explore Dominican Republic SMS: compliance (Law 172-13, 310-14), features & best practices. Supports 2-way SMS & concatenated msgs (160 GSM-7 chars). Avoid 400 error 21614 by not sending to landlines. Includes Twilio, Sinch, MessageBird & Plivo API integration examples.

Dominican Republic SMS Best Practices, Compliance, and Features

Dominican Republic SMS Market Overview

Locale name:Dominican Republic
ISO code:DO
RegionNorth America
Mobile country code (MCC)370
Dialing Code+1829

Market Conditions: The Dominican Republic has a robust mobile market with high SMS adoption rates. The country's telecommunications infrastructure is well-developed, with major operators including Claro, Altice, and Viva. While OTT messaging apps like WhatsApp are popular, SMS remains a critical channel for business communications, particularly for notifications, authentication, and marketing messages. The mobile market shows a relatively balanced distribution between Android and iOS devices, with Android having a slight edge in market share.


Key SMS Features and Capabilities in Dominican Republic

The Dominican Republic supports comprehensive SMS functionality including two-way messaging, concatenated messages, and number portability, though MMS is handled through SMS conversion.

Two-way SMS Support

Two-way SMS is fully supported in the Dominican Republic, allowing businesses to engage in interactive messaging with customers. There are no specific restrictions beyond standard compliance requirements for opt-in consent and message content.

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 SMS length of 160 characters for GSM-7 encoding, 70 characters for Unicode (UCS-2).
Encoding considerations: GSM-7 is recommended for basic Latin alphabet messages, while UCS-2 should be used for messages containing special characters or non-Latin alphabets.

MMS Support

MMS messages are automatically converted to SMS with an embedded URL link to the media content. This ensures compatibility across all carriers and devices while maintaining the ability to share rich media content. Best practice is to use short URLs and include clear context in the message body.

Recipient Phone Number Compatibility

Number Portability

Number portability is available in the Dominican Republic, 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 the Dominican Republic. Attempts to send messages to landline numbers will result in a failed delivery and an error response (400 error code 21614) from the SMS API. These messages will not appear in logs and accounts will not be charged.

Compliance and Regulatory Guidelines for SMS in Dominican Republic

The Dominican Republic's SMS communications are governed by several key laws including Law No. 172-13 (Data Protection Law), Law No. 310-14 (SPAM Law), and the Consumer Protection Law. The Instituto Dominicano de las Telecomunicaciones (INDOTEL) serves as the primary telecommunications regulator, while the Oficina Presidencial de Tecnolog??as de la Informaci??n y Comunicaci??n (OPTIC) oversees digital communications standards.

Explicit Consent Requirements:

  • Written or electronic consent must be obtained before sending marketing messages
  • Consent must be specific, informed, and freely given
  • Documentation of consent must be maintained and readily available

Best Practices for Obtaining Consent:

  • Use double opt-in verification
  • Clearly state the purpose and frequency of messages
  • Maintain detailed records of when and how consent was obtained
  • Include privacy policy and terms of service links in opt-in flows

HELP/STOP and Other Commands

Required Keywords:

  • STOP, CANCELAR, NO - Must be supported for opt-out
  • AYUDA, HELP - Must provide information about the service
  • All keywords must be supported in both Spanish and English

Language Requirements:

  • Primary communication should be in Spanish
  • HELP/STOP messages must be processed regardless of case sensitivity
  • Response messages must be sent free of charge to the user

Do Not Call / Do Not Disturb Registries

While the Dominican Republic does not maintain a centralized Do Not Call registry, businesses must:

  • Maintain their own suppression lists
  • Honor opt-out requests within 24 hours
  • Keep records of opted-out numbers for at least 2 years
  • Implement systems to prevent messaging to opted-out numbers

Time Zone Sensitivity

The Dominican Republic observes Atlantic Time (UTC-4) year-round. Best practices include:

  • Sending messages between 8:00 AM and 8:00 PM local time
  • Avoiding messages on Sundays and national holidays
  • Limiting urgent messages outside these hours to essential communications only

Phone Numbers Options and SMS Sender Types for in Dominican Republic

Alphanumeric Sender ID

Operator network capability: Not supported by Dominican Republic mobile operators
Registration requirements: N/A
Sender ID preservation: No - Sender IDs are typically overwritten with a random shortcode

Long Codes

Domestic vs. International:

  • Domestic long codes are not supported
  • International long codes are supported but with limitations

Sender ID preservation: No - Original sender IDs may be overwritten
Provisioning time: N/A for domestic, immediate for international
Use cases: Primarily for transactional messaging and two-factor authentication

Short Codes

Support: Fully supported and recommended for business messaging
Provisioning time: Approximately 4 weeks
Use cases:

  • Marketing campaigns
  • High-volume messaging
  • Customer service
  • Two-factor authentication
  • Alerts and notifications

Restricted SMS Content, Industries, and Use Cases

Prohibited Content:

  • Gambling and betting services
  • Adult content or explicit material
  • Illegal products or services
  • Cryptocurrency promotions
  • Unauthorized financial services

Regulated Industries:

  • Financial services require additional disclaimers
  • Healthcare messages must comply with privacy regulations
  • Political messages have specific campaign period restrictions

Content Filtering

Carrier Filtering Rules:

  • URLs must be from approved domains
  • Messages containing certain keywords may be blocked
  • High-frequency messaging patterns are filtered

Best Practices to Avoid Blocking:

  • Use approved URL shorteners
  • Avoid excessive punctuation and all-caps
  • Maintain consistent sending patterns
  • Include clear sender identification
  • Use approved message templates when possible

Best Practices for Sending SMS in Dominican Republic

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear call-to-actions
  • Use personalization tokens thoughtfully
  • Maintain consistent branding
  • Include opt-out instructions in marketing messages

Sending Frequency and Timing

  • Limit marketing messages to 2-4 per month per recipient
  • Space messages at least 24 hours apart
  • Avoid sending during major holidays
  • Consider cultural events and local celebrations

Localization

  • Primary language should be Spanish
  • Consider using both Spanish and English for tourist-focused services
  • Use local date and time formats
  • Respect cultural nuances and local expressions

Opt-Out Management

  • Process opt-outs in real-time
  • Send confirmation of opt-out
  • Maintain centralized opt-out database
  • Regular audit of opt-out lists
  • Train customer service on opt-out procedures

Testing and Monitoring

  • Test across all major carriers (Claro, Altice, Viva)
  • Monitor delivery rates by carrier
  • Track opt-out rates and patterns
  • Analyze engagement metrics
  • Perform regular content and compliance audits

SMS API integrations for Dominican Republic

Twilio

Twilio provides a robust SMS API with comprehensive support for the Dominican Republic. Integration requires an Account SID and Auth Token for authentication.

typescript
import * as 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 Dominican Republic
async function sendSMSToDR(
  to: string,
  message: string,
  from: string
): Promise<void> {
  try {
    // Ensure phone number is in E.164 format for Dominican Republic
    const formattedNumber = to.startsWith('+1829') ? to : `+1829${to}`;
    
    const response = await client.messages.create({
      body: message,
      to: formattedNumber,
      from: from, // Your Twilio number or short code
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-webhook.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 the Dominican Republic, using API token authentication.

typescript
import { SinchClient } from '@sinch/sdk-core';
import { SmsApi } from '@sinch/sdk-sms';

class SinchSMSService {
  private client: SmsApi;

  constructor() {
    // Initialize Sinch client
    this.client = new SinchClient({
      projectId: process.env.SINCH_PROJECT_ID,
      apiToken: process.env.SINCH_API_TOKEN
    });
  }

  async sendSMS(
    to: string,
    message: string,
    senderId: string
  ): Promise<void> {
    try {
      const response = await this.client.sms.send({
        to: [to],
        message: message,
        from: senderId,
        // Optional delivery report webhook
        deliveryReport: 'URL'
      });

      console.log('Message batch ID:', response.batchId);
    } catch (error) {
      console.error('Sinch SMS error:', error);
      throw error;
    }
  }
}

MessageBird

MessageBird (Bird) provides a feature-rich API for sending SMS to the Dominican Republic.

typescript
import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

  constructor() {
    this.client = messagebird(process.env.MESSAGEBIRD_API_KEY);
  }

  async sendSMS(
    to: string,
    message: string,
    originator: string
  ): Promise<void> {
    const params = {
      originator: originator,
      recipients: [to],
      body: message,
      // Optional parameters
      reportUrl: 'https://your-webhook.com/delivery-status'
    };

    return new Promise((resolve, reject) => {
      this.client.messages.create(params, (err: any, response: any) => {
        if (err) {
          console.error('MessageBird error:', err);
          reject(err);
        } else {
          console.log('Message ID:', response.id);
          resolve(response);
        }
      });
    });
  }
}

Plivo

Plivo offers a reliable SMS API with good coverage in the Dominican Republic.

typescript
import plivo from 'plivo';

class PlivoSMSService {
  private client: any;

  constructor() {
    this.client = new plivo.Client(
      process.env.PLIVO_AUTH_ID,
      process.env.PLIVO_AUTH_TOKEN
    );
  }

  async sendSMS(
    to: string,
    message: string,
    from: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src: from,
        dst: to,
        text: message,
        // Optional parameters
        url: 'https://your-webhook.com/status',
        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 messaging

Recommended Strategies:

  • Implement message prioritization
  • Use asynchronous processing
  • Monitor throughput metrics
  • Set up automatic scaling

Error Handling and Reporting

  • Implement comprehensive error logging
  • Set up monitoring for delivery rates
  • Track common error codes
  • Maintain audit trails for compliance

Recap and Additional Resources

Key Takeaways

  1. Compliance Priorities

    • Obtain explicit consent
    • Honor opt-out requests
    • Maintain proper documentation
    • Follow time window restrictions
  2. Technical Best Practices

    • Use proper phone number formatting
    • Implement retry logic
    • Monitor delivery rates
    • Test across all carriers
  3. Localization Considerations

    • Primary communication in Spanish
    • Respect local time zones
    • Consider cultural context

Next Steps

  1. Review Regulations

    • Consult INDOTEL guidelines
    • Review data protection laws
    • Understand carrier requirements
  2. Technical Setup

    • Choose appropriate SMS provider
    • Implement proper error handling
    • Set up monitoring systems
  3. Compliance Setup

    • Establish consent collection process
    • Create opt-out management system
    • Document all procedures

Additional Resources

Official Resources:

Industry Guidelines:

  • Mobile Marketing Association Guidelines
  • GSMA SMS Guidelines
  • Local Carrier Requirements Documentation

Technical Documentation:

  • Provider-specific API documentation
  • SMS Best Practices Guides
  • Implementation Examples and SDKs