sms compliance

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

How to Send SMS to Syria: 2025 Compliance Guide & API Providers

Learn how to send SMS to Syria in 2025. Complete guide covering SY-TPRA compliance, OTP & banking restrictions, API providers (Sinch, Plivo, MessageBird), and delivery best practices.

Syria SMS Best Practices, Compliance, and Features

Understanding Syria's SMS Market in 2025

Locale name:Syria
ISO code:SY
RegionMiddle East & Africa
Mobile country code (MCC)417
Dialing Code+963

⚠️ CRITICAL UPDATE (October 2025): Twilio discontinued SMS delivery to Syria effective September 15, 2025. Businesses must use alternative providers like Sinch, Plivo, MessageBird, Infobip, or regional SMS gateways.

Market Conditions: Syria's telecommunications infrastructure faces significant challenges due to ongoing political situations, resulting in poor message delivery rates. The market is served by three mobile operators:

OperatorMarket ShareNotes
Syriatel~80%Largest operator
MTN Syria~20%Second largest
Wafa TelecomNew entrantLicensed in 2022 with exclusive 5G rights

SMS remains an important channel for transactional and OTP messages, though delivery reliability is inconsistent. Currently, only OTT brands and banking institutions are permitted to send A2P SMS traffic into Syria.

2025 Update: Syria formally rejoined the Global System for Mobile Communications Association (GSMA) on July 30, 2025, enabling reconnection with the international mobile ecosystem after over a decade of exclusion (source: Telco Magazine, verified January 2025).


SMS Features and Technical Capabilities in Syria

Syria maintains strict controls over SMS capabilities, with limited support for advanced features and a focus on essential communications like OTP and banking notifications.

Two-Way SMS Support

Two-way SMS is not supported in Syria. The infrastructure only allows one-way messaging from authorized senders to end users.

Use Concatenated Messages (Segmented SMS)

Support: Yes, concatenation is supported, though availability may vary by sender ID type.

Message length rules: Standard SMS length limits apply before concatenation occurs.

Encoding considerations: Both GSM-7 and UCS-2 encoding are supported, with UCS-2 available for messages requiring Arabic character sets.

Character Limits by Encoding Standard

  • GSM-7 encoding: 160 characters per single SMS; 153 characters per segment for concatenated messages
  • UCS-2 encoding (Arabic, special characters): 70 characters per single SMS; 67 characters per segment for concatenated messages
  • Automatic fallback: Including any non-GSM-7 character triggers UCS-2 encoding, reducing the character limit to 70. GSM-7 uses 7 bits per character while UCS-2 uses 16 bits (2 bytes) per character (source: Twilio GSM-7 Documentation, UCS-2 Documentation).

Example: Mixed Arabic/English Message

Message: "Your OTP is 123456. رمز التحقق الخاص بك"

  • Contains non-GSM-7 characters (Arabic)
  • Uses UCS-2 encoding
  • Character count: 43 characters
  • Billing: Single segment (under 70 characters)

Billing Impact: Concatenated messages are billed as multiple SMS units. A 200-character GSM-7 message costs 2 SMS units (153 + 47 characters), while a 200-character UCS-2 message costs 3 SMS units (67 + 67 + 66 characters).

MMS Support Limitations

MMS messages are not directly supported in Syria. Any attempted MMS will be automatically converted to SMS with an embedded URL link to access the media content. This conversion helps ensure message delivery while still allowing users to access multimedia content when needed.

Verify Recipient Phone Number Compatibility

Number Portability

Number portability is not available in Syria. Mobile numbers remain tied to their original carrier, which simplifies routing but limits consumer flexibility.

Mobile Number Prefixes by Carrier

CarrierMobile PrefixesFormat Example
Syriatel93, 94, 98, 99+963 93X XXX XXX
MTN Syria95, 96+963 95X XXX XXX
Wafa Telecom91, 92+963 91X XXX XXX

Sending SMS to Landlines

Sending SMS to landline numbers is not possible in Syria. Attempts to send messages to landline numbers will result in a failed delivery and an error response (400 error code 21614 for Twilio API users). These messages will not appear in logs and accounts will not be charged.

Syria SMS Compliance Requirements and SY-TPRA Regulations

Syria maintains strict regulatory control over SMS communications, with oversight from the Syrian Telecommunications & Post Regulatory Authority (SY-TPRA, formerly SYTRA). The authority changed its name in May 2019 to reflect expanded responsibilities for postal services. Currently, only OTP (One-Time Password) and banking-related SMS traffic is permitted, with all other forms of marketing or promotional content strictly prohibited (source: iCertifi).

While traditional marketing messages are not allowed, you must still follow these requirements when sending OTP or banking messages:

  • Obtain and maintain clear records of user consent
  • Document the specific purpose for which you will use the number
  • Provide clear terms of service at the point of number collection
  • Maintain detailed logs of consent acquisition

Implement HELP/STOP and Other Commands

Due to the restricted nature of SMS in Syria (OTP and banking only), you typically won't implement traditional HELP/STOP commands. However, follow these recommendations:

  • Include clear service identifiers in each message
  • Provide customer support contact information where applicable
  • Support both English and Arabic keywords for any implemented commands

Manage Do Not Call / Do Not Disturb Registries

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

  • Maintain your own suppression lists
  • Immediately honor any opt-out requests received through customer service channels
  • Implement internal blacklisting procedures for invalid or complained numbers

Code Example: Suppression List Implementation

typescript
interface SuppressedNumber {
  phoneNumber: string;
  reason: 'opt_out' | 'invalid' | 'complaint';
  timestamp: Date;
}

class SuppressionList {
  private suppressed: Map<string, SuppressedNumber>;

  constructor() {
    this.suppressed = new Map();
  }

  add(phoneNumber: string, reason: SuppressedNumber['reason']): void {
    this.suppressed.set(phoneNumber, {
      phoneNumber,
      reason,
      timestamp: new Date()
    });
  }

  isSuppressed(phoneNumber: string): boolean {
    return this.suppressed.has(phoneNumber);
  }

  remove(phoneNumber: string): boolean {
    return this.suppressed.delete(phoneNumber);
  }
}

Time Zone Sensitivity

Syria operates at UTC+3 year-round. Important: As of October 4, 2022, Syria abolished daylight saving time (DST) and now permanently observes what was previously Eastern European Summer Time (EEST). Prior to October 2022, Syria alternated between EET (UTC+2) in winter and EEST (UTC+3) in summer (source: Wikipedia Time in Syria, verified January 2025).

Best Practices

  • Limit non-urgent messages to 8:00 AM–9:00 PM local time
  • Send OTP messages any time as needed for security purposes
  • During Ramadan, avoid non-urgent messages during fasting hours (sunrise to sunset)
  • Consider Friday prayers (12:00–2:00 PM) for non-urgent communications
  • Avoid messaging during Eid al-Fitr and Eid al-Adha holidays

Code Example: Timezone Conversion and Scheduling

typescript
import { DateTime } from 'luxon';

function isSafeSendTime(messageType: 'otp' | 'banking'): boolean {
  const syriaTime = DateTime.now().setZone('Asia/Damascus');
  const hour = syriaTime.hour;

  // OTP messages can be sent anytime
  if (messageType === 'otp') {
    return true;
  }

  // Banking messages: 8 AM to 9 PM local time
  if (hour >= 8 && hour < 21) {
    // Avoid Friday prayer time
    if (syriaTime.weekday === 5 && hour >= 12 && hour < 14) {
      return false;
    }
    return true;
  }

  return false;
}

Syria SMS Sender ID Options and Phone Number Formats

Use Alphanumeric Sender ID

Operator network capability: Supported

Registration requirements: Pre-registration not required, but all traffic will be overwritten with numeric Sender IDs

Sender ID preservation: No – all sender IDs are overwritten to ensure delivery

Implement Long Codes

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

Sender ID preservation: No – original sender IDs are not preserved

Provisioning time: Immediate for international numbers

Use cases: Limited to OTP and banking communications

Short Code Limitations

Support: Not supported in Syria

Provisioning time: N/A

Use cases: N/A


What Content Can You Send via SMS in Syria? (Restrictions & Allowed Use Cases)

Syria maintains strict content restrictions:

Prohibited Content

  • Political messages
  • Religious content
  • Marketing/promotional material

Allowed Industries

  • Banking sector
  • OTP service providers

Restricted Verticals

  • All other industries are effectively restricted from sending SMS

Edge Cases and Examples

Use CaseStatusNotes
Password reset OTP✓ AllowedCore OTP functionality
Account balance notification✓ AllowedBanking transactional
Transaction confirmation✓ AllowedBanking transactional
Appointment reminder✗ BlockedNot OTP or banking
Service downtime alert✗ BlockedNot OTP or banking
Welcome message✗ BlockedConsidered promotional

Compliance Decision Tree

Is the message OTP-related? ├─ Yes → Is it for authentication/verification? │ ├─ Yes → ✓ Allowed │ └─ No → ✗ Blocked └─ No → Is it banking-related? ├─ Yes → Is it transactional (balance, transaction, alert)? │ ├─ Yes → ✓ Allowed │ └─ No → ✗ Blocked └─ No → ✗ Blocked

Known Carrier Filtering Rules

  • All messages must be transactional in nature
  • Content must match registered use case (banking or OTP)
  • Political and religious references are automatically blocked
  • Marketing language triggers automatic filtering

Tips to Avoid Blocking

  • Keep messages purely transactional
  • Avoid promotional language or calls to action
  • Use registered and approved message templates
  • Include clear business identifier in each message

Common Filtering Triggers

Safe PhrasesRisky PhrasesExplanation
"Your verification code is 123456""Verify your account and get 10% off!"Promotional language triggers filtering
"Your balance is $100.00""Amazing offer! Check your balance"Marketing terms blocked
"Transaction completed: $50.00""Limited time: Complete your transaction"Urgency/scarcity tactics blocked
"Security code: 789012""Click here to secure your account"Call-to-action phrases blocked
"Your account was accessed""Vote now for…"Political content strictly prohibited
"Password reset requested""Special discount for you"Promotional content blocked

SMS Best Practices for Syria: Delivery, Timing, and Localization

Develop Your Messaging Strategy

  • Focus exclusively on essential communications
  • Use clear, straightforward language
  • Include only necessary transaction details
  • Avoid any promotional or marketing content

Message Template Examples

OTP Messages

English: Your verification code is 123456. Valid for 5 minutes. Arabic: رمز التحقق الخاص بك هو 123456. صالح لمدة 5 دقائق. Bilingual: Your code: 123456 | رمزك: 123456

Banking Messages

English: Transaction completed. Amount: $50.00. Balance: $450.00. Arabic: تمت العملية. المبلغ: $50.00. الرصيد: $450.00. Balance Alert: Your account balance is below $100. Current balance: $85.00.

Optimize Sending Frequency and Timing

  • Send only when absolutely necessary
  • Limit to one message per transaction
  • Space out non-urgent banking notifications
  • Consider religious and cultural observances

Implement Localization

  • Support both Arabic and English
  • Use proper Arabic character encoding (UCS-2)
  • Consider right-to-left text formatting
  • Maintain consistent language choice per user

Code Example: Arabic Text Handling

typescript
function formatMessage(text: string, language: 'en' | 'ar'): string {
  if (language === 'ar') {
    // Ensure proper RTL markers for Arabic text
    const RLM = '\u200F'; // Right-to-Left Mark
    return RLM + text + RLM;
  }
  return text;
}

function calculateMessageLength(text: string): { segments: number; encoding: string } {
  // Check if text contains Arabic or special characters
  const hasNonGSM7 = /[^\x00-\x7F]/.test(text) || /[أ-ي]/.test(text);

  if (hasNonGSM7) {
    const segments = Math.ceil(text.length / 67);
    return { segments, encoding: 'UCS-2' };
  }

  const segments = Math.ceil(text.length / 153);
  return { segments, encoding: 'GSM-7' };
}

// Usage example
const arabicMessage = 'رمز التحقق الخاص بك هو 123456';
const formatted = formatMessage(arabicMessage, 'ar');
const info = calculateMessageLength(arabicMessage);
console.log(`Message will use ${info.segments} segment(s) with ${info.encoding} encoding`);

Manage Opt-Out Procedures

  • Maintain accurate user preference records
  • Honor opt-out requests immediately
  • Document all preference changes
  • Provide clear customer support channels

Perform Testing and Monitoring

  • Test delivery across both major carriers (Syriatel and MTN Syria)
  • Monitor delivery rates closely
  • Track failure patterns and adjust accordingly
  • Maintain delivery success rate logs

Key Performance Indicators (KPIs)

KPITarget RangeAlert ThresholdNotes
Delivery Rate60–75%<50%Syria's infrastructure challenges affect delivery
Response Time<30 seconds>60 secondsTime to receive delivery receipt
Error Rate<15%>25%Network and validation errors
Average Latency5–15 seconds>30 secondsTime from send to delivery
Throughput1–5 msg/secProvider-dependentCarrier throttling limits

Monitoring Setup Recommendations

typescript
interface SMSMetrics {
  sent: number;
  delivered: number;
  failed: number;
  pending: number;
  avgLatency: number;
}

function calculateDeliveryRate(metrics: SMSMetrics): number {
  const total = metrics.delivered + metrics.failed;
  return total > 0 ? (metrics.delivered / total) * 100 : 0;
}

function shouldAlert(metrics: SMSMetrics): boolean {
  const deliveryRate = calculateDeliveryRate(metrics);
  const errorRate = (metrics.failed / metrics.sent) * 100;

  return deliveryRate < 50 || errorRate > 25;
}

SMS API Providers for Syria: Integration Examples

⚠️ Twilio (Discontinued as of September 15, 2025)

IMPORTANT: Twilio no longer supports SMS delivery to Syria. The service was discontinued on September 15, 2025, to comply with regulatory requirements. Existing Twilio customers must migrate to alternative providers.

For historical reference, Twilio previously provided a straightforward REST API for sending SMS to Syria:

typescript
import { Twilio } from 'twilio';

// Initialize the client with your credentials
const client = new Twilio(
  process.env.TWILIO_ACCOUNT_SID,
  process.env.TWILIO_AUTH_TOKEN
);

async function sendSMS(to: string, message: string) {
  try {
    // Ensure phone number is in E.164 format (+963XXXXXXXXX)
    const response = await client.messages.create({
      body: message,
      to: to,  // Syrian number
      from: process.env.TWILIO_PHONE_NUMBER,  // Your Twilio number
      // Note: Sender ID will be overwritten for Syria
    });

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

E.164 Phone Number Format for Syria: Syrian phone numbers follow the ITU-T E.164 standard. Format: +963 followed by 8-10 digit National Significant Number. Mobile numbers: +963 9[1-689]XXXXXXX (9 digits after country code). Landlines: +963 [1-2 digit area code][6-7 digit local number]. Always remove the leading '0' from Syrian numbers when adding the +963 country code. Example: 0931234567 becomes +963931234567 (source: Wikipedia E.164, Telephone numbers in Syria).

Sinch offers reliable SMS capabilities for Syria through their REST API, supporting both transactional and OTP messages. Sinch is a recommended alternative following Twilio's discontinuation.

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

const sinchClient = new SinchClient({
  projectId: process.env.SINCH_PROJECT_ID,
  keyId: process.env.SINCH_KEY_ID,
  keySecret: process.env.SINCH_KEY_SECRET
});

async function sendSMS(to: string, message: string) {
  try {
    const response = await sinchClient.sms.batches.send({
      sendSMSRequestBody: {
        to: [to],  // Syrian number in E.164 format
        from: 'YourBrand',  // Will be overwritten for Syria
        body: message,
        // Delivery report callback URL (optional)
        deliveryReport: 'none'
      }
    });

    console.log('Message sent:', response);
    return response;
  } catch (error) {
    console.error('Failed to send message:', error);
    throw error;
  }
}

MessageBird provides SMS API access to Syria with support for transactional messaging and is a viable alternative to discontinued providers.

typescript
import messagebird from 'messagebird';

const messageBirdClient = messagebird(process.env.MESSAGEBIRD_API_KEY);

function sendSMS(to: string, message: string): Promise<any> {
  return new Promise((resolve, reject) => {
    messageBirdClient.messages.create({
      originator: 'YourBrand',  // Will be overwritten
      recipients: [to],  // Syrian number
      body: message,
      type: 'sms'  // Specify message type
    }, (err, response) => {
      if (err) {
        console.error('Error:', err);
        reject(err);
      } else {
        console.log('Message sent:', response);
        resolve(response);
      }
    });
  });
}

Plivo offers SMS capabilities for Syria through their REST API interface with competitive pricing and reliable delivery.

typescript
import plivo from 'plivo';

const client = new plivo.Client(
  process.env.PLIVO_AUTH_ID,
  process.env.PLIVO_AUTH_TOKEN
);

async function sendSMS(to: string, message: string) {
  try {
    const response = await client.messages.create({
      src: process.env.PLIVO_PHONE_NUMBER,  // Your Plivo number
      dst: to,  // Syrian number in E.164 format
      text: message,
      // Optional parameters
      url: 'https://your-callback-url.com/status',
      method: 'POST'
    });

    console.log('Message sent:', response);
    return response;
  } catch (error) {
    console.error('Failed to send message:', error);
    throw error;
  }
}

Manage API Rate Limits and Throughput

  • Standard rate limits vary by provider but typically range from 1–10 messages per second
  • Implement exponential backoff for retry logic
  • Consider using queuing systems like Redis or RabbitMQ for high-volume sending
  • Monitor delivery rates and adjust sending patterns accordingly

Handle Errors and Reporting

  • Implement comprehensive error logging
  • Monitor delivery receipts when available
  • Track common failure patterns
  • Maintain separate logs for different error types (network, validation, carrier)
  • Set up alerts for unusual error rates

Recap and Additional Resources

Review Key Takeaways

  1. Compliance Focus

    • Only OTP and banking messages allowed
    • No marketing or promotional content
    • Sender IDs are always overwritten
  2. Technical Considerations

    • Poor delivery rates due to infrastructure (expect 60–75%)
    • Support for both Arabic (UCS-2) and English (GSM-7)
    • Limited features compared to other markets
  3. Best Practices

    • Keep messages purely transactional
    • Test thoroughly across carriers (Syriatel and MTN Syria)
    • Implement proper error handling with retry logic
    • Monitor delivery rates and set alerts for <50% delivery

Follow Next Steps

  1. Review Syria's telecommunications regulations with SY-TPRA
  2. Consult with SMS providers about specific requirements for OTT/banking use cases
  3. Implement proper testing procedures across both major carriers
  4. Set up monitoring and alerting systems with defined KPI thresholds

Access Additional Resources

Frequently Asked Questions

What are the current SMS market conditions in Syria?

Syria's SMS market faces challenges due to infrastructure limitations, impacting message delivery rates. Two major operators, Syriatel and MTN Syria, primarily serve the market. A2P SMS traffic is restricted to OTT brands and banking institutions for transactional and OTP messages.

How to send SMS messages to Syria?

You can send transactional and OTP SMS messages to Syria via providers like Twilio, Sinch, MessageBird, and Plivo. Ensure your message content complies with regulations, and expect sender IDs to be overwritten with numeric IDs.

What SMS features are supported in Syria?

Syria supports concatenated SMS for longer messages and UCS-2 encoding for Arabic characters. Two-way SMS and MMS are not supported; MMS messages are converted to SMS with a URL link to the media content.

Can I send marketing SMS messages in Syria?

No, marketing or promotional SMS messages are prohibited in Syria. Only OTP and banking-related SMS traffic is permitted under current regulations. All other content is strictly prohibited and will be filtered.

Why does Syria overwrite alphanumeric sender IDs?

Syria overwrites all alphanumeric sender IDs with numeric IDs to ensure message delivery. This practice is enforced by Syrian telecommunications regulations and applies to all SMS traffic.

How to handle SMS compliance in Syria?

For OTP and banking messages, obtain clear user consent, document the purpose of number usage, and provide terms of service. Maintain detailed logs of consent and honor opt-out requests promptly, although Syria doesn't have a formal Do Not Call registry.

When should I send SMS messages in Syria?

While no strict time restrictions exist, send non-urgent messages between 8:00 AM and 9:00 PM local time. OTP messages can be sent anytime for security purposes. Consider local observances like Ramadan when scheduling messages.

What are the restrictions on SMS content in Syria?

Political, religious, marketing, and promotional SMS content are prohibited in Syria. Allowed content is limited to transactional messages related to banking and OTP services.

What is the error code 21614 for Twilio API users?

This error indicates a failed attempt to send an SMS to a landline number in Syria. Sending SMS to landlines is not supported. You won't be charged for these failed messages, and they won't appear in your logs.

How to send SMS to Syria using Twilio?

Use the Twilio REST API with your credentials. Ensure the recipient number is in E.164 format (+963XXXXXXXXX) and the message content adheres to Syrian regulations. Be aware that the sender ID will be overwritten.

What phone number options are available for sending SMS to Syria?

Only international long codes are supported for sending SMS to Syria. Short codes and domestic long codes are not available. Alphanumeric Sender IDs are supported, but are overwritten by numeric IDs.

How are SMS API rate limits and throughput managed in Syria?

Providers have varying rate limits, typically 1-10 messages per second. Implement exponential backoff for retries and use queuing systems for high-volume sending. Monitor delivery rates and adjust accordingly.

What are best practices for sending SMS in Syria?

Focus on essential communications in clear, straightforward language, avoiding promotional content. Limit messages to one per transaction and consider timing and cultural sensitivities. Support both Arabic and English, using proper encoding.

Where can I find additional resources on Syria SMS regulations?

Refer to the Syrian Telecommunications Regulatory Authority website, Twilio's Syria Guidelines, and the GSMA Mobile Economy Middle East Report for further information on regulations and best practices.