Greece SMS Best Practices, Compliance, and Features
Greece SMS Market Overview
Locale name: | Greece |
---|---|
ISO code: | GR |
Region | Europe |
Mobile country code (MCC) | 202 |
Dialing Code | +30 |
Market Conditions: Greece has a mature mobile market with high SMS adoption rates. The country's major mobile operators include Cosmote, Vodafone, and Wind. While OTT messaging apps like WhatsApp and Viber are popular for personal communication, SMS remains crucial for business communications, particularly for authentication and notifications. The mobile market shows a relatively even split between Android and iOS devices, with Android having a slight edge in market share.
Key SMS Features and Capabilities in Greece
Greece supports most standard SMS features including alphanumeric sender IDs and concatenated messages, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Greece through most major SMS providers. This means businesses should design their SMS strategies around one-way communication flows.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported, though availability may vary based on sender ID type.
Message length rules: Standard SMS length of 160 characters for GSM-7 encoding, or 70 characters for Unicode (UCS-2) encoding.
Encoding considerations: GSM-7 is supported for basic Latin characters, while UCS-2 is required for Greek characters and special symbols.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures delivery compatibility while still allowing businesses to share rich media content through linked resources.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Greece. This means recipients can keep their phone numbers when switching between mobile operators. While this doesn't significantly affect delivery or routing, it's important to maintain updated routing tables for optimal delivery rates.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Greece. Attempts to send messages to landline numbers will result in a failed delivery and typically generate a 400 response error (error code 21614) from SMS APIs. These messages won't appear in logs and won't incur charges.
Compliance and Regulatory Guidelines for SMS in Greece
Greece follows strict telecommunications regulations overseen by the Hellenic Telecommunications and Post Commission (EETT). SMS marketing and communications must comply with both Greek telecommunications law and GDPR requirements, as Greece is an EU member state.
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 is recommended for marketing campaigns
Best Practices for Documentation:
- Store timestamp and source of consent
- Maintain detailed records of opt-in methods
- Keep consent records for at least 2 years
- Regular audit of consent database
HELP/STOP and Other Commands
- All marketing messages must include clear opt-out instructions
- STOP command must be supported in both Greek and English
- Common Greek keywords that must be honored:
- ΔΙΑΚΟΠΗ (Stop)
- ΒΟΗΘΕΙΑ (Help)
- Messages should be processed within 24 hours of receipt
Do Not Call / Do Not Disturb Registries
Greece maintains a national Do Not Call registry managed by the EETT.
- Businesses must check numbers against the registry before sending marketing messages
- Registry checks should be performed monthly
- Maintain internal suppression lists for opted-out numbers
- Implement immediate removal upon STOP requests
Time Zone Sensitivity
Greece observes Eastern European Time (EET/EEST)
- Recommended Sending Hours: 09:00 - 20:00 local time
- Restricted Hours: Avoid sending between 22:00 - 08:00
- Weekend Considerations: Limit weekend messages to urgent communications only
- Holiday Awareness: Respect Greek national and religious holidays
Phone Numbers Options and SMS Sender Types for in Greece
Alphanumeric Sender ID
Operator network capability: Fully supported
Registration requirements: Pre-registration required with documentation:
- Company registration documents
- Brand ownership proof
- Use case description
- Expected monthly volumes
Sender ID preservation: Yes, registered IDs are preserved across networks
Long Codes
Domestic vs. International:
- Domestic long codes: Supported but limited availability
- International long codes: Not supported for A2P messaging
Sender ID preservation: Domestic numbers are preserved, international may be modified Provisioning time: 3-5 business days for domestic numbers Use cases: Ideal for two-way communication and transactional messages
Short Codes
Support: Available through Greek mobile operators Provisioning time: 8-12 weeks for approval and activation Use cases:
- High-volume marketing campaigns
- Time-sensitive notifications
- Premium rate services
- Two-factor authentication
Restricted SMS Content, Industries, and Use Cases
Prohibited Content:
- Gambling without Greek license
- Adult content
- Cryptocurrency promotions
- Political messaging without proper authorization
- Pharmaceutical products without proper licensing
Content Filtering
Carrier Filtering Rules:
- Messages containing certain keywords may be blocked
- URLs must be from approved domains
- Message frequency limits per number
Tips to Avoid Blocking:
- Avoid excessive punctuation
- Use registered URL shorteners
- Maintain consistent sender IDs
- Keep message frequency within reasonable limits
Best Practices for Sending SMS in Greece
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-action
- Use personalization tokens thoughtfully
- Maintain consistent brand voice
Sending Frequency and Timing
- Limit to 4-5 messages per month per recipient
- Space messages at least 24 hours apart
- Respect quiet hours and holidays
- Plan campaigns around peak engagement times
Localization
- Default to Greek language for local numbers
- Consider bilingual messages for tourist areas
- Use proper character encoding for Greek alphabet
- Respect cultural nuances and holidays
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain centralized opt-out database
- Include opt-out instructions in every marketing message
- Regular cleanup of contact lists
Testing and Monitoring
- Test across all major Greek carriers
- Monitor delivery rates by carrier
- Track engagement metrics
- Regular testing of opt-out functionality
SMS API integrations for Greece
Twilio
Twilio provides a robust SMS API with excellent support for Greek numbers and alphanumeric sender IDs. Authentication uses account SID and auth token credentials.
import { Twilio } from 'twilio';
// Initialize Twilio client with credentials
const client = new Twilio(
process.env.TWILIO_ACCOUNT_SID,
process.env.TWILIO_AUTH_TOKEN
);
async function sendSMSToGreece(
to: string,
message: string,
senderId: string
): Promise<void> {
try {
// Ensure number is in E.164 format for Greece (+30)
const formattedNumber = to.startsWith('+30') ? to : `+30${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID or Twilio number
to: formattedNumber,
// Optional parameters for delivery tracking
statusCallback: 'https://your-webhook.com/status'
});
console.log(`Message sent successfully! SID: ${response.sid}`);
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers comprehensive SMS capabilities for the Greek market with support for both transactional and marketing messages.
import axios from 'axios';
class SinchSMSClient {
private readonly apiToken: string;
private readonly serviceId: string;
private readonly baseUrl = 'https://sms.api.sinch.com/xms/v1';
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
}
async sendSMS(to: string, message: string, senderId: string): Promise<void> {
try {
const response = await axios.post(
`${this.baseUrl}/${this.serviceId}/batches`,
{
from: senderId,
to: [to],
body: message,
// Greek character support
encoding: 'AUTO'
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
console.log('Message sent:', response.data.id);
} catch (error) {
console.error('Sinch SMS error:', error);
throw error;
}
}
}
MessageBird
MessageBird (formerly Bird) provides reliable SMS delivery in Greece with strong support for local regulations.
import messagebird from 'messagebird';
class MessageBirdClient {
private client: any;
constructor(apiKey: string) {
this.client = messagebird(apiKey);
}
sendSMS(
to: string,
message: string,
senderId: string
): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator: senderId,
recipients: [to],
body: message,
// Enable delivery reports
reportUrl: 'https://your-webhook.com/delivery',
// Greek language support
type: 'unicode'
}, (err: any, response: any) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
API Rate Limits and Throughput
- Default Rate Limits:
- Twilio: 250 messages/second
- Sinch: 100 messages/second
- MessageBird: 60 messages/second
Throughput Management Strategies:
// Example rate limiting implementation
class RateLimiter {
private queue: Array<() => Promise<void>> = [];
private processing: boolean = false;
private readonly rateLimit: number;
private readonly interval: number;
constructor(rateLimit: number, intervalMs: number) {
this.rateLimit = rateLimit;
this.interval = intervalMs;
}
async add(task: () => Promise<void>): Promise<void> {
this.queue.push(task);
if (!this.processing) {
this.processing = true;
await this.processQueue();
}
}
private async processQueue(): Promise<void> {
while (this.queue.length > 0) {
const batch = this.queue.splice(0, this.rateLimit);
await Promise.all(batch.map(task => task()));
await new Promise(resolve => setTimeout(resolve, this.interval));
}
this.processing = false;
}
}
Error Handling and Reporting
interface SMSError {
code: string;
message: string;
timestamp: Date;
recipient: string;
}
class SMSErrorHandler {
private errors: SMSError[] = [];
logError(error: SMSError): void {
this.errors.push(error);
// Implement your logging logic here
console.error(`SMS Error [${error.code}]: ${error.message}`);
}
async retryFailedMessages(
smsClient: any,
maxRetries: number = 3
): Promise<void> {
// Implement retry logic for failed messages
}
}
Recap and Additional Resources
Key Takeaways
-
Compliance Priorities:
- Register alphanumeric sender IDs
- Maintain opt-in consent records
- Honor opt-out requests within 24 hours
-
Technical Considerations:
- Use proper character encoding for Greek text
- Implement rate limiting for high-volume sending
- Monitor delivery rates and errors
-
Next Steps:
- Review EETT guidelines (www.eett.gr)
- Implement proper error handling
- Set up delivery reporting
Additional Resources
-
Official Resources:
- EETT (Greek Telecom Regulator): https://www.eett.gr
- GDPR Guidelines: https://gdpr.eu
- Greek Direct Marketing Association: https://www.edee.gr
-
Technical Documentation:
- Twilio Greek SMS Guide
- Sinch Implementation Docs
- MessageBird API Reference
Contact Information:
- EETT Support: +30 210 615 1000
- Local SMS Compliance Hotline: +30 210 XXX XXXX