sms compliance

Sent logo
Sent TeamMay 3, 2025 / sms compliance / Article

Ecuador SMS Best Practices, Compliance, and Features

Complete guide to sending SMS in Ecuador covering carriers, compliance, sender IDs, API integration, and best practices

Ecuador SMS Best Practices, Compliance, and Features

Ecuador SMS Market Overview: Mobile Landscape and Carriers

Locale name:Ecuador
ISO code:EC
RegionSouth America
Mobile country code (MCC)740
Dialing Code+593

Market Conditions: If you're looking to send SMS messages to Ecuador, understanding the local mobile market is crucial. Ecuador operates a robust mobile telecommunications market with three major carriers: Claro (53% market share as of early 2025), Movistar (29% market share), and CNT Mobile (18% market share) (source: BNamericas). SMS serves as a vital channel for business notifications and authentication, though WhatsApp dominates personal messaging. Android devices dominate the market, with iOS maintaining a smaller but growing presence among urban users.

Mobile Statistics: Ecuador connects approximately 18 million mobile devices with a penetration rate of 102% as of March 2025 (source: U.S. ITA). Internet penetration reaches 83.7% of the population, with over 15.2 million internet users (source: DataReportal).


Key SMS Features and Capabilities in Ecuador

Ecuador supports standard SMS functionality with carrier-specific limitations, particularly around concatenated messages and sender ID preservation.

Two-way SMS Support

Ecuador does not support two-way SMS through most providers. Design your SMS strategies around one-way communication flows.

Technical Implications:

  • Inbound messages from recipients won't reach the sender
  • Reply-to-message flows won't work
  • SMS-based conversational experiences aren't feasible

Workarounds:

MethodImplementationUse Case
Web FormsInclude short URLs (e.g., bit.ly/survey123)Feedback collection, surveys, registration
Mobile AppsDirect to app deep links (e.g., "Open MyApp to respond")In-app messaging, account management
Click-to-CallAdd phone numbers with call promptsUrgent support, sales inquiries
Email Follow-upInclude email address for non-urgent repliesDetailed feedback, document requests

Concatenated Messages (Segmented SMS)

Support: Concatenated SMS support varies by carrier. Movistar does not support concatenated messages.

Message length rules: Keep messages under 160 GSM-7 characters to ensure delivery. For UCS-2 encoding, limit to 70 characters.

Encoding considerations: While GSM-7 and UCS-2 encoding work across carriers, Movistar has limited UCS-2 support. Use GSM-7 encoding whenever possible.

What happens when concatenated messages are sent to Movistar: Messages exceeding 160 characters sent to Movistar subscribers will be truncated, delivered incompletely, or fail entirely. To ensure reliable delivery on Movistar, keep messages under 160 GSM-7 characters or 70 UCS-2 characters.

Character Counting Guidelines:

  • Standard GSM-7 characters: Each character = 1 unit (A-Z, a-z, 0-9, basic punctuation)
  • Extended GSM-7 characters: Each character = 2 units (€, ^, {, }, [, ], ~, |, )
  • Special characters & emojis: Force UCS-2 encoding, reducing limit to 70 characters per message
  • Accented characters: Most Spanish accents (á, é, í, ó, ú, ñ) are part of GSM-7 and count as 1 unit
  • Best practice: Test character count using SMS length calculators before sending campaigns

MMS Support

Ecuador does not directly support MMS messages. When you send MMS content, it automatically converts to SMS with an embedded URL where recipients can view the multimedia content.

MMS-to-SMS Conversion Details:

AspectDetails
HostingContent hosted on provider's CDN (Twilio, Sinch, etc.)
URL FormatShortened URLs (typically 20-30 characters)
Expiration30-90 days depending on provider (Twilio: 90 days, Sinch: 30 days)
File TypesJPEG, PNG, GIF up to 5 MB
Best PracticeCompress images to <500 KB for faster loading

Recipient Phone Number Compatibility

Number Portability

Number portability works in Ecuador, allowing users to keep their phone numbers when switching carriers. Messages route properly to the current carrier without impacting delivery.

Sending SMS to Landlines

Ecuador does not support sending SMS to landline numbers. Attempts to send messages to landlines result in delivery failures, typically with a 400 response error (code 21614). These messages won't appear in logs and won't incur charges.

Validation Best Practices:

  • Use Twilio Lookup API or similar services to verify number types before sending
  • Implement number format validation to identify potential landline patterns
  • Maintain a suppression list of known landline numbers
  • Monitor error code 21614 in logs and flag those numbers for review

SMS Compliance and Regulatory Requirements in Ecuador

While Ecuador lacks stringent SMS-specific regulations, follow international best practices and general telecommunications guidelines overseen by ARCOTEL (Agencia de Regulación y Control de las Telecomunicaciones).

Penalties and Enforcement: While specific SMS penalties lack extensive documentation, ARCOTEL has authority under the Organic Law of Telecommunications (2015) to:

  • Block domains and services that violate national laws
  • Impose fines for telecommunications violations
  • Revoke operating licenses for serious infractions
  • Order content filtering at the carrier level

Send spam or prohibited content and risk having messages blocked by carriers, potential legal action, and sender reputation damage that affects future deliverability.

While explicit opt-in requirements lack strict legal mandate in Ecuador, implement strong consent practices:

  • Obtain clear, documented consent before sending marketing messages
  • Maintain detailed records of how and when you obtained consent
  • Provide clear terms of service explaining message frequency and content type
  • Include information about potential messaging charges

Compliant Opt-In Examples:

✅ Good: "Reply YES to receive weekly promotions from MiBanco. Standard SMS rates apply. Reply STOP to opt out." ✅ Good: "Check this box to receive order updates and exclusive offers via SMS (max 4/month). You can opt out anytime by texting STOP." ❌ Bad: "We may send you messages." (vague, no frequency, no opt-out) ❌ Bad: "Sign up for our newsletter." (doesn't mention SMS channel)

HELP/STOP and Other Commands

Though not legally required, implement standard opt-out mechanisms:

  • Support both "HELP" and "STOP" keywords in Spanish ("AYUDA" and "PARAR")
  • Process opt-out requests within 24 hours
  • Send confirmation messages in Spanish when users opt out
  • Maintain opt-out lists indefinitely

Example Response Messages:

HELP Response: "MiBanco: Recibe ofertas y alertas. Máx 4 msgs/mes. Responde PARAR para cancelar. Ayuda: 1800-BANCO" (MiBanco: Receive offers and alerts. Max 4 msgs/month. Reply STOP to cancel. Help: 1800-BANCO) STOP Response: "MiBanco: Confirmado. No recibirás más mensajes. Gracias." (MiBanco: Confirmed. You will not receive more messages. Thank you.)

Do Not Call / Do Not Disturb Registries

Ecuador does not maintain an official Do Not Call or Do Not Disturb registry. However, you should:

  • Maintain your own suppression lists
  • Honor opt-out requests immediately
  • Keep records of opted-out numbers
  • Regularly clean contact lists to remove inactive numbers

Time Zone Sensitivity

Ecuador operates in ECT (UTC-5) with no daylight savings time. While no legal restrictions exist on messaging hours:

  • Send non-urgent messages between 8:00 AM and 8:00 PM local time
  • Reserve early morning or late night messages for critical alerts only
  • Consider business days (Monday-Friday) for marketing messages

Phone Number Options and SMS Sender ID Types for Ecuador

Alphanumeric Sender ID

Operator network capability: Partially supported

Registration requirements: No pre-registration required

Sender ID preservation: Varies by carrier:

  • CNT Mobile: Supports dynamic alphanumeric sender IDs
  • Claro and Movistar: Overwrite with short codes (typically generic short codes like 9107 or similar carrier-assigned codes)

Short Code Replacements: When Claro and Movistar overwrite alphanumeric sender IDs, they replace them with carrier-assigned short codes. Claro uses 9107 for marketing content delivery (source: Salesforce). These replacements occur automatically and you cannot customize them without formal short code registration.

Choosing Effective Alphanumeric Sender IDs (for CNT Mobile):

  • Keep sender IDs between 3-11 characters
  • Use only A-Z letters and 0-9 numbers (no spaces or special characters)
  • Brand names work best (e.g., "MiBanco", "TuTienda")
  • Avoid generic terms like "INFO" or "ALERT"
  • Test across all carriers to verify delivery

Long Codes

Domestic vs. International: International long codes supported; domestic not available

Sender ID preservation: No, except for CNT Mobile

Provisioning time: Immediate for international numbers

Use cases: Ideal for:

  • Transactional messages
  • Two-factor authentication
  • Customer support communications

Short Codes

Support: Not currently supported in Ecuador

Provisioning time: N/A

Use cases: N/A


Restricted SMS Content and Industry Regulations in Ecuador

Ecuador maintains several content restrictions for SMS messaging:

  • Prohibited Content:
    • Religious content
    • Adult/explicit material
    • Gambling-related messages
    • Discriminatory or racial content
  • Regulated Industries:
    • Financial services must include sender identification
    • Healthcare messages must maintain patient privacy
    • Political messages require clear sender identification

Implementing Sender Identification:

  • Include company or organization name in message body (e.g., "MiBanco: Your transaction...")
  • Use recognizable alphanumeric sender IDs where supported (CNT Mobile)
  • Add contact information or website URL for verification
  • For financial/political messages, explicitly state who is sending (e.g., "Sent by [Company Name]")

Consequences of Sending Prohibited Content:

  • Immediate carrier-level blocking and message filtering
  • Sender reputation damage affecting future deliverability
  • Potential ARCOTEL investigation and fines
  • Possible legal action under telecommunications regulations
  • Permanent blacklisting from carrier networks
  • Account suspension by SMS service providers

Content Filtering

Known Carrier Filters:

  • Links may trigger spam filters
  • All-caps messages often get flagged
  • Multiple exclamation marks may trigger filtering

Best Practices to Avoid Filtering:

PracticeGood ExampleBad Example
Professional tone"MiBanco: Your payment of $50 was received. Thank you.""URGENT!!! ACT NOW!!! LIMITED TIME!!!"
Punctuation"Your order #12345 shipped today.""Your order shipped!!!! Track it now!!!!"
Company identification"MiBanco Alert: Low balance warning.""Alert: Check your account now."
URL usage"View details: mibanco.com/account""Click here: bit.ly/xyz123 NOW!!!"

Best Practices for SMS Marketing and Messaging in Ecuador

Messaging Strategy

  • Keep messages under 160 characters
  • Include clear call-to-actions
  • Use company name in sender ID when possible
  • Avoid URL shorteners that might trigger spam filters

Message Effectiveness Examples:

✅ Effective: "MiBanco: Your $200 transfer to Account *1234 completed. Balance: $1,850. Questions? Call 1800-BANCO" (145 characters, clear CTA, sender ID, concise) ✅ Effective: "TuTienda: Order #5678 shipped via Servientrega. Track: tutienda.com/track ETA: Mar 15" (92 characters, actionable link, specific details) ❌ Ineffective: "Hi! Your transaction was processed successfully and we wanted to let you know that everything went through okay." (115 characters, no sender ID, vague, no CTA, wordy) ❌ Ineffective: "CLICK HERE NOW FOR AMAZING DEALS!!! LIMITED TIME OFFER!!! bit.ly/deals123" (All-caps, excessive punctuation, suspicious URL, no sender ID)

Sending Frequency and Timing

  • Limit marketing messages to 2-4 per month
  • Space messages at least 48 hours apart
  • Respect local holidays and cultural events
  • Monitor engagement rates to optimize timing

Major Ecuador Holidays to Avoid (2025):

  • January 1: New Year's Day
  • March 3-4: Carnival
  • April 17-18: Maundy Thursday & Good Friday
  • May 1-2: Labor Day
  • May 23-24: Battle of Pichincha
  • August 10-11: Independence Day (Quito)
  • October 9-10: Independence of Guayaquil
  • November 2-4: All Souls' Day / Independence of Cuenca
  • December 25: Christmas Day

(source: TimeAndDate)

Localization

  • Default to Spanish for all messages
  • Consider regional Spanish variations
  • Use formal "usted" rather than informal "tú"
  • Include prices in USD (Ecuador's official currency)

Ecuador-Specific Spanish Variations:

Standard SpanishEcuador VariationExample
Autobús (bus)Bus"Su bus llega en 5 min"
Ordenador (computer)Computadora"Accede desde tu computadora"
Móvil (mobile)Celular"Verifica desde tu celular"
Vale (okay)Ya / Listo"Ya procesamos tu pago"

Opt-Out Management

  • Process opt-outs within 24 hours
  • Send confirmation of opt-out completion
  • Maintain centralized opt-out database
  • Regularly audit opt-out list compliance

Testing and Monitoring

  • Test across all three major carriers
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Regularly test opt-out functionality

Key Metrics Thresholds to Monitor:

MetricGood ThresholdWarning ThresholdAction Threshold
Delivery Rate>95%90-95%<90% (investigate carrier issues)
Opt-Out Rate<2% per campaign2-5%>5% (review content/frequency)
Click-Through Rate>5% for transactional2-5%<2% (optimize CTA/timing)
Response Rate>3% for marketing1-3%<1% (reconsider strategy)
Error Rate (30003)<3%3-7%>7% (check carrier status)

SMS API Integrations and Providers for Ecuador

Twilio

Twilio provides a robust SMS API with comprehensive Ecuador support. Integration requires an account SID and auth token for authentication. Learn more about Twilio SMS API documentation and SMS pricing.

Ecuador-Specific Considerations:

  • Pricing: $0.045-0.065 per SMS segment (varies by carrier)
  • Reliability: 98% delivery rate across all carriers
  • Sender ID: Overwritten by Claro/Movistar; preserved on CNT Mobile
  • Best For: High-volume transactional messages, 2FA
typescript
import * as Twilio from 'twilio';

// Initialize Twilio client with your credentials
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,    // Your Account SID
  process.env.TWILIO_AUTH_TOKEN      // Your Auth Token
);

// Function to send SMS to Ecuador
async function sendSmsToEcuador(
  to: string,
  message: string
): Promise<void> {
  try {
    // Ensure number is in E.164 format for Ecuador (+593)
    const formattedNumber = to.startsWith('+593') ? to : `+593${to}`;

    const response = await client.messages.create({
      body: message,
      to: formattedNumber,
      from: process.env.TWILIO_PHONE_NUMBER,
      // Optional: Force messages to be sent as SMS only
      contentType: 'text/plain'
    });

    console.log(`Message sent successfully! SID: ${response.sid}`);
  } catch (error) {
    console.error('Error sending message:', error);
  }
}

Ecuador-Specific Error Handling Examples:

typescript
async function sendSmsWithErrorHandling(
  to: string,
  message: string
): Promise<void> {
  try {
    const response = await client.messages.create({
      body: message,
      to: to,
      from: process.env.TWILIO_PHONE_NUMBER
    });
    console.log(`Message sent: ${response.sid}`);
  } catch (error: any) {
    // Handle Ecuador-specific errors
    if (error.code === 21614) {
      console.error('Landline number detected. Cannot send SMS to landlines in Ecuador.');
      // Add to landline suppression list
    } else if (error.code === 30003) {
      console.warn('Device unreachable. May be powered off or out of coverage.');
      // Implement retry logic with exponential backoff
    } else if (error.code === 30005) {
      console.error('Unknown/inactive number. Remove from contact list.');
      // Flag for removal from database
    } else if (error.code === 30004) {
      console.error('Message blocked due to spam filters.');
      // Review message content for filtering triggers
    } else {
      console.error('Unexpected error:', error.message);
    }
  }
}

Webhook Setup for Delivery Receipts:

typescript
import express from 'express';
import { urlencoded } from 'body-parser';

const app = express();
app.use(urlencoded({ extended: false }));

// Webhook endpoint for Twilio delivery receipts
app.post('/twilio/status', (req, res) => {
  const {
    MessageSid,
    MessageStatus,
    To,
    ErrorCode
  } = req.body;

  console.log(`Message ${MessageSid} to ${To}: ${MessageStatus}`);

  // Handle different statuses
  switch (MessageStatus) {
    case 'delivered':
      // Update database: message delivered successfully
      break;
    case 'failed':
    case 'undelivered':
      // Log error and flag for review
      console.error(`Delivery failed: Error ${ErrorCode}`);
      break;
    case 'sent':
      // Message sent to carrier, awaiting delivery confirmation
      break;
  }

  res.sendStatus(200);
});

app.listen(3000);

Sinch

Sinch offers direct carrier connections in Ecuador with support for both transactional and marketing messages. For more information, visit Sinch SMS API.

typescript
import axios from 'axios';

interface SinchSmsConfig {
  apiToken: string;
  servicePlanId: string;
  fromNumber: string;
}

class SinchSmsService {
  private readonly baseUrl: string;
  private readonly headers: Record<string, string>;

  constructor(private config: SinchSmsConfig) {
    this.baseUrl = 'https://sms.api.sinch.com/xms/v1';
    this.headers = {
      'Authorization': `Bearer ${config.apiToken}`,
      'Content-Type': 'application/json'
    };
  }

  async sendSms(to: string, message: string): Promise<void> {
    try {
      const response = await axios.post(
        `${this.baseUrl}/${this.config.servicePlanId}/batches`,
        {
          from: this.config.fromNumber,
          to: [to],
          body: message
        },
        { headers: this.headers }
      );

      console.log('Message sent:', response.data.id);
    } catch (error) {
      console.error('Sinch SMS error:', error);
    }
  }
}

MessageBird

MessageBird provides reliable SMS delivery in Ecuador with support for delivery reporting. Check out MessageBird SMS API for implementation details.

typescript
import messagebird from 'messagebird';

class MessageBirdService {
  private client: any;

  constructor(apiKey: string) {
    this.client = messagebird(apiKey);
  }

  sendSms(
    to: string,
    message: string,
    originator: string
  ): Promise<any> {
    return new Promise((resolve, reject) => {
      this.client.messages.create({
        originator,
        recipients: [to],
        body: message,
        // Optional parameters for Ecuador
        reportUrl: 'https://your-webhook.com/delivery-reports',
        validity: 24 // Message validity in hours
      }, (err: any, response: any) => {
        if (err) {
          reject(err);
        } else {
          resolve(response);
        }
      });
    });
  }
}

Plivo

Plivo offers competitive rates for Ecuador with high-quality routes. Learn more at Plivo SMS API.

typescript
import plivo from 'plivo';

class PlivoService {
  private client: any;

  constructor(authId: string, authToken: string) {
    this.client = new plivo.Client(authId, authToken);
  }

  async sendSms(
    src: string,
    dst: string,
    text: string
  ): Promise<void> {
    try {
      const response = await this.client.messages.create({
        src,  // Your Plivo number
        dst,  // Destination number in E.164 format
        text,
        // Ecuador-specific parameters
        url: 'https://your-webhook.com/status',
        method: 'POST'
      });

      console.log('Message sent:', response.messageUuid);
    } catch (error) {
      console.error('Plivo error:', error);
    }
  }
}

API Rate Limits and Throughput

  • Twilio: 250 messages per second
  • Sinch: 100 messages per second
  • MessageBird: 150 messages per second
  • Plivo: 200 messages per second

Strategies for Large-Scale Sending:

  • Implement queue systems (Redis/RabbitMQ)
  • Use batch APIs when available
  • Monitor throughput and adjust sending rates
  • Implement exponential backoff for retries

Queue Implementation Example (Redis + Bull):

typescript
import Queue from 'bull';
import Redis from 'ioredis';

// Create SMS queue
const smsQueue = new Queue('ecuador-sms', {
  redis: {
    host: 'localhost',
    port: 6379
  }
});

// Add messages to queue
async function queueSms(to: string, message: string) {
  await smsQueue.add({
    to,
    message,
    timestamp: Date.now()
  }, {
    attempts: 3,
    backoff: {
      type: 'exponential',
      delay: 2000
    }
  });
}

// Process queue with rate limiting
smsQueue.process(10, async (job) => {  // Process 10 at a time
  const { to, message } = job.data;

  try {
    await sendSmsToEcuador(to, message);
    return { success: true };
  } catch (error) {
    throw error;  // Triggers retry
  }
});

Error Handling and Reporting

  • Implement comprehensive logging
  • Monitor delivery receipts
  • Track common error codes:
    • 21614: Invalid number format
    • 30003: Carrier rejection
    • 30005: Message blocked
  • Store delivery status updates

Common Error Codes Explained:

Error CodeCauseResolution
21614Number is not a valid mobile number (likely landline) or incorrectly formattedVerify number is mobile using Lookup API; ensure E.164 format (+593XXXXXXXXX); add landlines to suppression list (source)
30003Device unreachable – powered off, no signal, or carrier issueRetry after delay (exponential backoff); verify device can receive SMS; check if roaming off-network; may indicate carrier filtering (source)
30005Unknown/inactive destination number – no longer existsRemove from contact database; verify number format; check if number is still active; may indicate ported-out or cancelled line (source)
30004Message blocked by spam filtersReview content for spam triggers (all-caps, excessive punctuation, suspicious links); ensure sender ID consistency; verify compliance with content policies

Error Handling Implementation with Retry Logic:

typescript
interface RetryConfig {
  maxAttempts: number;
  baseDelay: number;
  maxDelay: number;
}

async function sendWithRetry(
  to: string,
  message: string,
  config: RetryConfig = {
    maxAttempts: 3,
    baseDelay: 1000,
    maxDelay: 10000
  }
): Promise<void> {
  let attempt = 0;

  while (attempt < config.maxAttempts) {
    try {
      await sendSmsToEcuador(to, message);
      console.log(`Message delivered on attempt ${attempt + 1}`);
      return;
    } catch (error: any) {
      attempt++;

      // Don't retry on permanent failures
      if (error.code === 21614 || error.code === 30005) {
        console.error(`Permanent failure (${error.code}): ${error.message}`);
        // Add to suppression list
        await addToSuppressionList(to, error.code);
        throw error;
      }

      // Retry on temporary failures (30003, 30004)
      if (error.code === 30003 || error.code === 30004) {
        if (attempt < config.maxAttempts) {
          const delay = Math.min(
            config.baseDelay * Math.pow(2, attempt - 1),
            config.maxDelay
          );
          console.log(`Attempt ${attempt} failed. Retrying in ${delay}ms...`);
          await new Promise(resolve => setTimeout(resolve, delay));
        } else {
          console.error(`Failed after ${config.maxAttempts} attempts`);
          throw error;
        }
      } else {
        // Unknown error, don't retry
        throw error;
      }
    }
  }
}

async function addToSuppressionList(phoneNumber: string, errorCode: number) {
  // Implementation depends on your database
  console.log(`Adding ${phoneNumber} to suppression list (reason: ${errorCode})`);
}

Frequently Asked Questions: Sending SMS to Ecuador

How do I send SMS messages to Ecuador?

To send SMS to Ecuador, you need an SMS API provider like Twilio, Sinch, or Plivo. Format phone numbers in E.164 format (+593XXXXXXXXX), keep messages under 160 characters for Movistar compatibility, and obtain proper opt-in consent before sending marketing messages.

What is the SMS character limit for Ecuador?

The SMS character limit in Ecuador is 160 characters for GSM-7 encoding or 70 characters for UCS-2 encoding (with special characters/emojis). Movistar does not support concatenated messages, so messages exceeding these limits may be truncated.

While Ecuador lacks strict legal requirements for SMS opt-in, following international best practices is essential. Always obtain clear, documented consent before sending marketing messages and implement STOP/HELP functionality in Spanish (PARAR/AYUDA).

What SMS providers work in Ecuador?

Major SMS providers supporting Ecuador include Twilio, Sinch, MessageBird, and Plivo. These providers offer varying pricing ($0.045-0.065 per message), delivery rates (95-98%), and throughput limits (100-250 messages per second).


Recap and Additional Resources

Key Takeaways:

  • Always use E.164 number formatting (+593)
  • Keep messages under 160 GSM-7 characters for Movistar compatibility
  • Test across all three carriers (Claro, Movistar, CNT Mobile)
  • Implement proper error handling with retry logic for temporary failures
  • Process opt-outs within 24 hours and maintain suppression lists
  • Avoid sending between 8 PM and 8 AM local time (UTC-5)

Decision Tree for Implementation:

1. Choose SMS Provider → High volume + 2FA? → Twilio → Direct carrier connections? → Sinch → Budget-conscious? → Plivo 2. Configure Sender ID → Need brand recognition? → Use alphanumeric ID (works on CNT only) → Maximum deliverability? → Use international long code 3. Set Up Message Validation → Validate E.164 format → Use Lookup API → Check character count → Use SMS length calculator → Test on all carriers → Send test messages 4. Implement Error Handling → Retry 30003 errors (device unreachable) → Suppress 21614 errors (landlines) → Remove 30005 errors (inactive numbers) → Review content for 30004 errors (spam filters) 5. Monitor & Optimize → Delivery rate >95%? → Continue → Delivery rate <95%? → Investigate carrier issues → Opt-out rate >5%? → Review content/frequency

Next Steps:

  1. Review ARCOTEL regulations (https://www.arcotel.gob.ec)
  2. Implement proper opt-out handling with Spanish keywords (PARAR, AYUDA)
  3. Test thoroughly across all carriers before launching campaigns
  4. Set up delivery receipt webhooks for real-time monitoring
  5. Create suppression lists for landlines and opted-out numbers

Additional Resources:

Troubleshooting FAQ:

IssueLikely CauseSolution
Messages not delivered to MovistarMessage exceeds 160 charactersKeep under 160 GSM-7 characters; avoid emojis
Sender ID shows numbers instead of brandClaro/Movistar overwrite alphanumeric IDsAccept carrier short codes or register dedicated short code (expensive)
High error rate (21614)Sending to landlinesImplement Lookup API validation before sending
Messages marked as spamContent triggers filtersRemove all-caps, excessive punctuation, suspicious URLs
Low delivery rate on one carrierCarrier-specific issueCheck carrier status page; contact provider support
Users can't replyTwo-way SMS not supportedAdd web form URL or phone number for responses

Frequently Asked Questions

How to send SMS messages to Ecuador?

Use E.164 formatting (+593) for phone numbers and choose an SMS API provider like Twilio, Sinch, MessageBird, or Plivo. Keep messages under 160 characters and avoid special characters that may be filtered by Ecuadorian carriers. Consider using GSM-7 encoding for wider carrier compatibility.

What is the best SMS API for Ecuador?

Several providers, including Twilio, Sinch, MessageBird, and Plivo, offer good connectivity in Ecuador. Twilio and Plivo offer higher throughput rates, while Sinch and MessageBird have direct carrier connections. The best option will depend on your specific needs, including budget and messaging volume.

What are the character limits for SMS in Ecuador?

Messages should be kept under 160 GSM-7 encoded characters, or 70 characters for UCS-2 encoding. Concatenated or segmented SMS has limited support, specifically Movistar doesn't support it, so it's best to keep messages short.

Why does Movistar not support concatenated SMS?

The article doesn't explicitly state why Movistar doesn't support concatenated SMS. However, given this limitation, it's best to avoid sending multi-part messages when targeting users on the Movistar network in Ecuador.

When should I send marketing SMS in Ecuador?

The best practice is to send marketing SMS between 8 AM and 8 PM local time (ECT, UTC-5) and reserve other times for critical alerts. It's recommended to limit marketing messages to 2-4 per month, sent at least 48 hours apart.

Can I send MMS messages to Ecuador?

MMS messages are not directly supported. MMS content is converted to SMS with a link where recipients can view the multimedia content, making it functionally usable but not true MMS.

What are the rules for HELP and STOP keywords in Ecuador?

While not legally required, supporting "AYUDA" (help) and "PARAR" (stop) is recommended. Process opt-out requests within 24 hours, send Spanish confirmation messages, and keep opt-out lists indefinitely.

How to handle opt-outs for SMS in Ecuador?

Best practices include implementing "AYUDA" and "PARAR" keywords. Opt-out requests should be processed within 24 hours, with confirmations sent in Spanish. Maintain opt-out lists and regularly audit for compliance.

What are the regulations around SMS consent in Ecuador?

Ecuador doesn't have strict opt-in regulations but following global consent best practices is strongly recommended. Get clear, documented consent before sending marketing messages, explain the message frequency and purpose, and inform users about potential charges.

What SMS content is restricted in Ecuador?

Religious, adult, gambling, and discriminatory/racial content are prohibited in SMS messages. Regulated industries like finance and healthcare have additional content restrictions related to identification and privacy.

How to format phone numbers for SMS in Ecuador?

Always use the E.164 international number format, starting with +593 followed by the 9-digit subscriber number. This ensures proper routing and delivery across all carriers, despite number portability.

What is the mobile country code (MCC) for Ecuador?

The mobile country code (MCC) for Ecuador is 740. This is used for routing international SMS messages.

What are some best practices for sending bulk SMS in Ecuador?

Implement queue systems (Redis, RabbitMQ), utilize batch APIs, monitor throughput and adjust sending rates, and use exponential backoff for error retries. Follow carrier best practices for messages and respect local time and culture.

What is the process for sending SMS to landlines in Ecuador?

Sending SMS to landlines in Ecuador is not supported and attempts will fail. Expect 400 error responses (code 21614), no message logging, and no charges to your account.

What are the alphanumeric sender ID rules in Ecuador?

Alphanumeric sender IDs are partially supported. CNT Mobile allows dynamic sender IDs but Claro and Movistar may overwrite them with shortcodes (which aren't available). No pre-registration is needed.