sms compliance
sms compliance
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 |
| Region | Europe |
| 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.
Consent and Opt-In
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:
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:
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:
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:
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:
- Review the Communications Regulation Commission guidelines
- Implement proper consent management systems
- Set up monitoring and alerting for SMS delivery
- Test thoroughly across all major Bulgarian carriers
Additional Resources:
Frequently Asked Questions
How to send SMS messages to Bulgaria?
Use a reputable SMS API provider like Twilio, Sinch, MessageBird, or Plivo. Ensure the recipient's phone number is in E.164 format (+359) and comply with Bulgarian regulations. Consider factors such as sender ID, message encoding, and delivery tracking.
What is the best SMS API for Bulgaria?
Several providers offer excellent SMS services for Bulgaria, including Twilio, Sinch, MessageBird, and Plivo. The "best" choice depends on specific needs like throughput, features, and pricing. Twilio offers 100 messages per second, Sinch 30, MessageBird 60, and Plivo 50.
Why does two-way SMS have limited support in Bulgaria?
Two-way SMS functionality is not fully supported by major SMS providers in Bulgaria. This affects interactive messaging campaigns and automated response systems. You should explore alternative solutions if two-way communication is required for your application.
What are the rules for sending marketing SMS in Bulgaria?
You must obtain explicit consent before sending marketing messages, which can be written or electronic. Marketing messages must include opt-out instructions in both Bulgarian and English (STOP, ??????????, ????????), with opt-out requests honored within 24 hours.
When should I send SMS messages in Bulgaria to avoid issues?
The best time to send SMS messages is between 9:00 AM and 8:00 PM local time, avoiding national holidays. Limit urgent messages outside these hours to genuine emergencies, and respect Orthodox Christian observances for optimal engagement.
How long can concatenated SMS messages be in Bulgaria?
Concatenated SMS messages in Bulgaria follow standard length limits: 160 characters for GSM-7 encoding and 70 characters for UCS-2 encoding. Messages with special characters automatically use UCS-2, reducing the character limit per segment.
What are the regulations for alphanumeric sender IDs in Bulgaria?
Alphanumeric sender IDs are supported but not always preserved. A1 and Vivacom Bulgaria may replace them with generic IDs. Pre-registration is not required, but dynamic usage is supported by operator networks.
Can I send SMS to landlines in Bulgaria?
No, sending SMS messages to landline numbers in Bulgaria is not possible. Attempts will fail with a 400 response error (code 21614) via SMS APIs. Focus on mobile numbers using the +359 country code.
What is the process for HELP/STOP commands in Bulgarian SMS?
All marketing SMS must include instructions for opting out using keywords like STOP, ??????????, or ???????? (in Bulgarian and English). HELP responses should be provided in Bulgarian by default, offering assistance and information as needed.
What SMS content is restricted in Bulgaria?
Restricted SMS content includes unauthorized gambling, adult content, unlicensed financial services, cryptocurrency promotions without disclaimers, and unauthorized pharmaceutical products. Carrier filtering may block messages with certain keywords or suspicious URLs.
How to handle opt-out management for SMS in Bulgaria?
Process opt-out requests promptly (within 24 hours), maintain clear records for at least 2 years, provide confirmation to users, and regularly audit opt-out lists to ensure ongoing compliance.
Why is MMS automatically converted to SMS in Bulgaria?
MMS messages are automatically converted to SMS with embedded URLs to ensure delivery across all devices. This allows for sharing rich media content via web links while leveraging the broader reach of SMS technology.
What are the character encoding options for Bulgarian SMS?
Both GSM-7 and UCS-2 encodings are supported for Bulgarian SMS. Using special characters or the Cyrillic alphabet defaults to UCS-2, reducing the characters per segment to 70 instead of 160 with GSM-7.
How to format Bulgarian phone numbers for SMS?
Always use the E.164 format for Bulgarian phone numbers, starting with the country code +359 followed by the mobile number. This ensures proper routing and compatibility with international SMS gateways.