Estonia SMS Best Practices, Compliance, and Features
Estonia SMS Market Overview
Locale name: | Estonia |
---|---|
ISO code: | EE |
Region | Europe |
Mobile country code (MCC) | 248 |
Dialing Code | +372 |
Market Conditions: Estonia has a highly developed mobile market with near-universal smartphone penetration. The country's major mobile operators include Telia Estonia, Elisa, and Tele2. While OTT messaging apps like WhatsApp and Facebook Messenger are popular, SMS remains a crucial channel for business communications, particularly for authentication, notifications, and marketing. The market shows a balanced distribution between Android and iOS devices, with Android having a slight edge in market share.
Key SMS Features and Capabilities in Estonia
Estonia offers comprehensive SMS capabilities including two-way messaging, concatenated messages, and number portability, making it a robust market for business messaging.
Two-way SMS Support
Estonia fully supports two-way SMS communications with no specific restrictions. This enables interactive messaging campaigns and customer service applications through SMS.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is fully supported across all major carriers.
Message length rules: Standard SMS allows 160 characters (GSM-7) or 70 characters (UCS-2) before splitting. Messages exceeding these limits are automatically segmented into multiple parts.
Encoding considerations: GSM-7 encoding is used for standard Latin characters, while UCS-2 encoding supports Estonian special characters (õ, ä, ö, ü).
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link to the media content. This ensures compatibility across all devices while maintaining the ability to share rich media content.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Estonia, allowing users to keep their phone numbers when switching carriers. This feature does not affect SMS delivery or routing as the system automatically updates routing information.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Estonia. Attempts to send SMS to landline numbers will result in delivery failure, and the API will return an error code 21614 with a 400 response.
Compliance and Regulatory Guidelines for SMS in Estonia
Estonia follows GDPR requirements and has specific local regulations governed by the Estonian Consumer Protection and Technical Regulatory Authority (TTJA). All SMS communications must comply with both EU and Estonian data protection laws.
Consent and Opt-In
Explicit Consent Requirements:
- Written or electronic consent must be obtained before sending marketing messages
- Consent records must be stored for a minimum of 3 years
- Documentation must include timestamp, source of consent, and scope of permission
- Pre-checked boxes are not considered valid consent under GDPR
Best Practices for Consent:
- Implement double opt-in verification
- Clearly state the purpose and frequency of messages
- Provide easy access to terms and privacy policy
- Maintain detailed consent logs with IP addresses and timestamps
HELP/STOP and Other Commands
Required Keywords:
- Primary: STOP, LÕPETA (Estonian)
- Alternative: EI, TÜHISTA (Estonian)
- HELP/ABI for assistance
Language Requirements:
- Support both Estonian and English commands
- Include opt-out instructions in Estonian for local compliance
- Process opt-out requests within 24 hours
Do Not Call / Do Not Disturb Registries
Estonia does not maintain a centralized Do Not Call registry. However, businesses must:
- Maintain their own suppression lists
- Honor opt-out requests immediately
- Keep records of opted-out numbers for at least 2 years
- Implement proper filtering systems to prevent messaging to opted-out numbers
Time Zone Sensitivity
Time Restrictions:
- Commercial messages allowed between 8:00 and 20:00 EET/EEST
- Exceptions for emergency notifications and essential service messages
- Observe Estonian public holidays
- Consider weekend messaging restrictions for marketing content
Phone Numbers Options and SMS Sender Types for Estonia
Alphanumeric Sender ID
Operator network capability: Fully supported
Registration requirements: No pre-registration required, dynamic usage allowed
Sender ID preservation: Yes, sender IDs are preserved as specified
Character limit: Up to 11 characters, Latin alphabet only
Long Codes
Domestic vs. International: Both supported
Sender ID preservation: Yes, original sender ID is preserved
Provisioning time: Immediate for both domestic and international
Use cases:
- Two-way communication
- Customer support
- Transactional messages
- Marketing campaigns
Short Codes
Support: Not currently supported in Estonia
Alternative: Use long codes or alphanumeric sender IDs for marketing campaigns
Restricted SMS Content, Industries, and Use Cases
Restricted Industries:
- Gambling (requires special permission)
- Adult content (prohibited)
- Cryptocurrency promotions (restricted)
- Financial services (require regulatory disclaimers)
Healthcare Guidelines:
- Must comply with GDPR health data requirements
- Avoid sensitive medical information in SMS
- Use secure channels for personal health data
Content Filtering
Carrier Filtering Rules:
- URLs from unknown domains may be blocked
- Messages containing certain keywords may be filtered
- High-volume sending patterns may trigger spam filters
Best Practices to Avoid Blocking:
- Use registered URL shorteners
- Avoid excessive punctuation
- Maintain consistent sending patterns
- Keep message content clear and professional
Best Practices for Sending SMS in Estonia
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Personalize using recipient's name or relevant details
- Maintain consistent brand voice
Sending Frequency and Timing
- Limit to 2-4 messages per month per recipient
- Respect time zone restrictions (8:00-20:00 EET/EEST)
- Avoid sending during major holidays
- Space out bulk campaigns to prevent network congestion
Localization
- Primary language: Estonian
- Consider bilingual messages (Estonian/English)
- Use proper character encoding for Estonian letters
- Respect cultural sensitivities and local customs
Opt-Out Management
- Process opt-outs within 24 hours
- Send confirmation message after opt-out
- Maintain clean suppression lists
- Regular audit of opt-out database
Testing and Monitoring
- Test across all major Estonian carriers
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular testing of opt-out functionality
- Monitor for carrier filtering changes
SMS API integrations for Estonia
Twilio
Twilio provides a robust SMS API with comprehensive Estonia support. Authentication uses account SID and auth token credentials.
import * as Twilio from 'twilio';
// Initialize Twilio client with 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 Estonia
async function sendEstoniaSMS(
to: string,
message: string,
senderId: string
) {
try {
// Format Estonian number to E.164 format
const formattedNumber = to.startsWith('+372') ? to : `+372${to}`;
// Send message with error handling
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric or phone number
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent! SID: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers direct carrier connections in Estonia with support for high-volume messaging.
import { SinchClient } from '@sinch/sdk-core';
// Initialize Sinch client
const sinchClient = new SinchClient({
projectId: process.env.SINCH_PROJECT_ID,
apiToken: process.env.SINCH_API_TOKEN
});
// Function to send batch SMS to Estonia
async function sendEstoniaBatchSMS(
recipients: string[],
message: string
) {
try {
// Format all numbers to E.164
const formattedNumbers = recipients.map(num =>
num.startsWith('+372') ? num : `+372${num}`
);
const response = await sinchClient.sms.batches.send({
to: formattedNumbers,
from: 'YourBrand', // Alphanumeric sender ID
body: message,
// Optional delivery report webhook
deliveryReport: 'full'
});
console.log(`Batch ID: ${response.id}`);
return response;
} catch (error) {
console.error('Batch sending failed:', error);
throw error;
}
}
MessageBird
MessageBird provides reliable SMS delivery in Estonia with advanced features.
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 sendEstoniaTrackedSMS(
recipient: string,
message: string,
reference: string
) {
return new Promise((resolve, reject) => {
mbClient.messages.create({
originator: 'CompanyName',
recipients: [recipient],
body: message,
reference: reference, // Custom tracking ID
reportUrl: 'https://your-webhook.com/delivery'
}, (err, response) => {
if (err) {
console.error('MessageBird error:', err);
reject(err);
} else {
console.log('Message sent:', response.id);
resolve(response);
}
});
});
}
Plivo
Plivo offers competitive SMS solutions for the Estonian market.
import * as plivo from 'plivo';
// Initialize Plivo client
const plivoClient = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
// Function to send SMS with retry logic
async function sendEstoniaRetrySMS(
to: string,
message: string,
maxRetries: number = 3
) {
let attempts = 0;
while (attempts < maxRetries) {
try {
const response = await plivoClient.messages.create({
src: 'YourBrand', // Sender ID
dst: to, // Destination number
text: message,
// Optional parameters
url: 'https://your-webhook.com/status',
method: 'POST'
});
console.log(`Message sent! ID: ${response.messageUuid}`);
return response;
} catch (error) {
attempts++;
if (attempts === maxRetries) {
throw new Error(`Failed after ${maxRetries} attempts: ${error}`);
}
// Wait before retry (exponential backoff)
await new Promise(r => setTimeout(r, 1000 * Math.pow(2, attempts)));
}
}
}
API Rate Limits and Throughput
- Default rate limit: 100 messages per second
- Burst capacity: Up to 1000 messages per minute
- Daily sending quota: Based on account level
Strategies for High Volume:
- Implement queuing system for large batches
- Use exponential backoff for retries
- Batch messages in groups of 50-100
- Monitor throughput metrics
Error Handling and Reporting
- Implement comprehensive logging
- Monitor delivery receipts
- Track common error codes
- Set up automated alerts for failures
- Maintain error rate thresholds
Recap and Additional Resources
Key Takeaways:
- Always format numbers to E.164 (+372)
- Implement proper error handling and retries
- Monitor delivery rates and errors
- Follow Estonian time restrictions
- Maintain proper consent records
Next Steps:
- Review the Estonian Consumer Protection Act
- Implement proper consent management
- Set up delivery tracking
- Test with all major Estonian carriers
Additional Information:
- Estonian Consumer Protection and Technical Regulatory Authority
- Data Protection Inspectorate
- Estonian Direct Marketing Association
Technical Resources: