sms compliance

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

Bulgaria SMS Guide

Explore Bulgaria SMS: compliance (GDPR), features, & best practices. Understand GSM-7 (160 chars) vs UCS-2 (70 chars) encoding. Two-way SMS unsupported. Includes API integration code (Twilio, Sinch, Plivo) & error handling. Adhere to 9 AM-8 PM EET sending window.

Bulgaria SMS Best Practices, Compliance, and Features

Bulgaria SMS Market Overview

Locale name:Bulgaria
ISO code:BG
RegionEurope
Mobile country code (MCC)284
Dialing Code+359

Market Conditions: Bulgaria has a mature mobile market with high SMS adoption rates. The country's main mobile operators include A1 Bulgaria, Telenor Bulgaria, and Vivacom. While OTT messaging apps like WhatsApp and Viber are popular, SMS remains crucial for business communications and authentication purposes. The market shows a relatively even split between Android and iOS users, with Android having a slight edge in market share.


Key SMS Features and Capabilities in Bulgaria

Bulgaria supports most standard SMS features including concatenated messages and number portability, though two-way SMS functionality is limited.

Two-way SMS Support

Two-way SMS is not supported in Bulgaria through major SMS providers. This limitation affects interactive messaging campaigns and automated response systems.

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 - 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding.
Encoding considerations: Both GSM-7 and UCS-2 encodings are supported. Messages using special characters will automatically use UCS-2 encoding, reducing the character limit per segment.

MMS Support

MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures delivery while maintaining rich media sharing capabilities through web-based content delivery.

Recipient Phone Number Compatibility

Number Portability

Number portability is available in Bulgaria. This feature allows users to keep their phone numbers when switching between mobile operators, with minimal impact on SMS delivery or routing.

Sending SMS to Landlines

Sending SMS to landline numbers is not possible in Bulgaria. Attempts to send messages to landline numbers will result in a failed delivery and typically generate a 400 response error (code 21614) through SMS APIs.

Compliance and Regulatory Guidelines for SMS in Bulgaria

Bulgaria follows EU telecommunications regulations and GDPR requirements for SMS communications. The Communications Regulation Commission (CRC) oversees telecommunications activities, while the Commission for Personal Data Protection (CPDP) enforces data privacy regulations.

Explicit Consent Requirements:

  • Written or electronic consent must be obtained before sending marketing messages
  • Consent records must be maintained and easily accessible
  • Purpose of communication must be clearly stated during opt-in
  • Double opt-in recommended for marketing campaigns

HELP/STOP and Other Commands

  • STOP commands must be supported in both Bulgarian and English
  • Common keywords include: STOP, ??????????, ????????
  • All marketing messages must include opt-out instructions
  • HELP responses should be provided in Bulgarian by default

Do Not Call / Do Not Disturb Registries

Bulgaria does not maintain a centralized Do Not Call registry. However, 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
  • Regularly clean contact lists against internal opt-out databases

Time Zone Sensitivity

Bulgaria observes Eastern European Time (EET/EEST). Best practices include:

  • Sending messages between 9:00 AM and 8:00 PM local time
  • Avoiding messages on national holidays
  • Limiting urgent messages outside business hours to genuine emergencies

Phone Numbers Options and SMS Sender Types for in Bulgaria

Alphanumeric Sender ID

Operator network capability: Supported
Registration requirements: Pre-registration not required, but dynamic usage is supported
Sender ID preservation: Yes, except for A1 and Vivacom Bulgaria where generic Alphanumeric IDs may be used

Long Codes

Domestic vs. International:

  • Domestic long codes not supported
  • International long codes supported

Sender ID preservation: No, international numbers may be overwritten with generic Alphanumeric IDs
Provisioning time: Immediate to 24 hours
Use cases: Transactional messages, alerts, and notifications

Short Codes

Support: Not currently supported in Bulgaria
Provisioning time: N/A
Use cases: N/A


Restricted SMS Content, Industries, and Use Cases

Restricted Industries:

  • Unauthorized gambling services
  • Adult content or services
  • Unlicensed financial services
  • Cryptocurrency promotions without proper disclaimers
  • Unauthorized pharmaceutical products

Content Filtering

Carrier Filtering Rules:

  • Messages containing certain keywords may be blocked
  • URLs should be from reputable domains
  • Avoid excessive capitalization and special characters

Best Practices to Avoid Filtering:

  • Use clear, professional language
  • Avoid spam trigger words
  • Include company name in sender ID
  • Keep URLs short and legitimate

Best Practices for Sending SMS in Bulgaria

Messaging Strategy

  • Keep messages under 160 characters when possible
  • Include clear call-to-actions
  • Personalize messages using recipient's name or preferences
  • Maintain consistent brand voice

Sending Frequency and Timing

  • Limit to 2-4 messages per month per recipient
  • Respect Bulgarian holidays and Orthodox Christian observances
  • Avoid weekends unless specifically requested
  • Space out messages to prevent recipient fatigue

Localization

  • Primary language should be Bulgarian
  • Consider dual-language messages for international businesses
  • Use proper character encoding for Cyrillic alphabet
  • Respect local cultural nuances and customs

Opt-Out Management

  • Process opt-outs immediately
  • Maintain clear opt-out records
  • Provide confirmation of successful opt-out
  • Regular audit of opt-out lists

Testing and Monitoring

  • Test across all major Bulgarian carriers (A1, Telenor, Vivacom)
  • Monitor delivery rates by carrier
  • Track engagement metrics
  • Regular testing of opt-out functionality

SMS API integrations for Bulgaria

Twilio

Twilio provides a robust SMS API with comprehensive support for Bulgarian numbers. Here's how to implement it:

typescript
import * as Twilio from 'twilio';

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

// Function to send SMS to Bulgaria
async function sendBulgarianSMS(
  to: string,
  message: string,
  senderId: string
) {
  try {
    // Validate Bulgarian phone number format
    if (!to.startsWith('+359')) {
      throw new Error('Invalid Bulgarian phone number format');
    }

    const response = await client.messages.create({
      body: message,
      to: to,          // Bulgarian number in E.164 format
      from: senderId,  // Your registered sender ID
      // Optional parameters for delivery tracking
      statusCallback: 'https://your-webhook.com/status'
    });

    return response.sid;
  } catch (error) {
    console.error('SMS sending failed:', error);
    throw error;
  }
}

Sinch

Sinch offers reliable SMS delivery to Bulgaria with support for Unicode characters:

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

// Initialize Sinch client
const sinchClient = new SinchClient({
  servicePlanId: process.env.SINCH_SERVICE_PLAN_ID,
  apiToken: process.env.SINCH_API_TOKEN,
  region: 'eu'  // Use EU region for Bulgaria
});

async function sendSinchSMS(
  recipientNumber: string,
  messageText: string
) {
  try {
    const response = await sinchClient.sms.batches.send({
      to: [recipientNumber],
      from: 'YourBrand',  // Alphanumeric sender ID
      body: messageText,
      // Enable delivery reports
      deliveryReport: 'summary'
    });

    return response.id;
  } catch (error) {
    console.error('Sinch SMS failed:', error);
    throw error;
  }
}

MessageBird

MessageBird provides high-throughput SMS delivery for Bulgarian numbers:

typescript
import * as messagebird from 'messagebird';

// Initialize MessageBird client
const mbClient = messagebird(process.env.MESSAGEBIRD_API_KEY);

// Function to send SMS with delivery tracking
async function sendMessageBirdSMS(
  to: string,
  message: string
): Promise<string> {
  return new Promise((resolve, reject) => {
    mbClient.messages.create({
      originator: 'YourBrand',
      recipients: [to],
      body: message,
      // Optional parameters
      reportUrl: 'https://your-webhook.com/delivery',
      encoding: 'auto'  // Automatically handle Unicode
    }, (err, response) => {
      if (err) reject(err);
      else resolve(response.id);
    });
  });
}

Plivo

Plivo offers competitive rates for Bulgarian SMS with detailed delivery insights:

typescript
import * as plivo from 'plivo';

// Initialize Plivo client
const plivoClient = new plivo.Client(
  process.env.PLIVO_AUTH_ID,
  process.env.PLIVO_AUTH_TOKEN
);

async function sendPlivoSMS(
  destination: string,
  message: string
) {
  try {
    const response = await plivoClient.messages.create({
      src: 'YourBrand',  // Your sender ID
      dst: destination,  // Destination number
      text: message,
      // Optional parameters
      url: 'https://your-webhook.com/status',
      method: 'POST'
    });

    return response.messageUuid[0];
  } catch (error) {
    console.error('Plivo SMS failed:', error);
    throw error;
  }
}

API Rate Limits and Throughput

  • Twilio: 100 messages per second
  • Sinch: 30 messages per second
  • MessageBird: 60 messages per second
  • Plivo: 50 messages per second

Throughput Management Strategies:

  • Implement exponential backoff for retry logic
  • Use queue systems (Redis, RabbitMQ) for high-volume sending
  • Batch messages when possible (up to 500 recipients per request)
  • Monitor delivery rates and adjust sending patterns accordingly

Error Handling and Reporting

  • Implement comprehensive logging with Winston or Bunyan
  • Track delivery rates and failures by carrier
  • Set up automated alerts for unusual error rates
  • Store delivery receipts for audit purposes
  • Implement circuit breakers for API failures

Recap and Additional Resources

Key Takeaways:

  • Always use E.164 format for Bulgarian numbers (+359)
  • Implement proper error handling and retry logic
  • Monitor delivery rates and adjust sending patterns
  • Maintain compliance with GDPR and local regulations

Next Steps:

  1. Review the Communications Regulation Commission guidelines
  2. Implement proper consent management systems
  3. Set up monitoring and alerting for SMS delivery
  4. Test thoroughly across all major Bulgarian carriers

Additional Resources: