Turkey SMS Best Practices, Compliance, and Features
Turkey SMS Market Overview
Locale name: | Turkey |
---|---|
ISO code: | TR |
Region | Middle East & Africa |
Mobile country code (MCC) | 286 |
Dialing Code | +90 |
Market Conditions: Turkey has a highly mobile-first market with widespread SMS usage for business communications and authentication. Major mobile operators include Turkcell, Vodafone, and Türk Telekom. While OTT messaging apps like WhatsApp are popular for personal communications, SMS remains crucial for business messaging and verification purposes due to its reliability and universal reach. Android devices dominate the market with approximately 80% market share, while iOS devices account for roughly 20%.
Key SMS Features and Capabilities in Turkey
Turkey offers robust SMS capabilities with support for concatenated messages and Unicode, though two-way messaging is not supported and promotional content faces strict regulations.
Two-way SMS Support
Two-way SMS is not supported in Turkey for business messaging. This means businesses cannot receive replies to their SMS messages through standard A2P channels.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported for most sender ID types, though support may vary by carrier.
Message length rules: Standard SMS messages are limited to 160 characters using GSM-7 encoding. Messages exceeding this limit are automatically split into segments.
Encoding considerations: GSM-7 encoding allows 160 characters per message, while UCS-2 (used for Turkish special characters) reduces the limit to 70 characters per segment.
MMS Support
MMS messages are not directly supported in Turkey. When attempting to send an MMS, the message will be automatically converted to an SMS containing a URL link to the media content. This ensures message delivery while maintaining compliance with local regulations.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Turkey. Recipients can keep their phone numbers when switching between mobile operators.
This feature does not significantly impact message delivery or routing as the SMS infrastructure handles ported numbers automatically.
Sending SMS to Landlines
Sending SMS to landline numbers is not possible in Turkey. Attempts to send SMS to landline numbers will result in a failed delivery and an error response (400 error code 21614 for Twilio API). The message will not be logged or charged to your account.
Compliance and Regulatory Guidelines for SMS in Turkey
SMS communications in Turkey are regulated by the Information and Communication Technologies Authority (BTK). As of February 15, 2021, promotional traffic is strictly prohibited and may result in blocking of messages and financial penalties. All commercial SMS must comply with Turkish Electronic Communications Law No. 5809.
Consent and Opt-In
Explicit consent is mandatory before sending any commercial messages in Turkey. Best practices for consent management include:
- Maintaining detailed records of when and how consent was obtained
- Using double opt-in verification processes
- Clearly stating the purpose and frequency of messages during opt-in
- Providing transparent terms and conditions in Turkish
- Storing consent documentation for at least 3 years
HELP/STOP and Other Commands
- All commercial messages must include opt-out instructions in Turkish
- Standard keywords include "IPTAL" (cancel), "DUR" (stop), and "YARDIM" (help)
- Opt-out mechanisms must be free of charge for recipients
- Commands must be processed within 24 hours of receipt
Do Not Call / Do Not Disturb Registries
Turkey maintains the İYS (Message Management System), a national commercial electronic message management system. Businesses must:
- Register with İYS before sending commercial messages
- Check numbers against the İYS database regularly
- Remove opted-out numbers within 3 business days
- Maintain internal suppression lists for immediate opt-outs
Time Zone Sensitivity
Turkey observes strict timing regulations for commercial SMS:
- Permitted Hours: 08:00 to 21:00 local time (UTC+3)
- Restricted Days: No promotional messages on national holidays
- Emergency Messages: Time restrictions don't apply to critical service notifications
Phone Numbers Options and SMS Sender Types for Turkey
Alphanumeric Sender ID
Operator network capability: Supported
Registration requirements: Pre-registration required, takes approximately 2 weeks
Sender ID preservation: Yes, when properly registered
Restrictions: Must contain legitimate business name, no generic terms allowed
Long Codes
Domestic vs. International:
- Domestic long codes not supported
- International long codes supported but delivered on best-effort basis
Sender ID preservation: No, international long codes may be modified Provisioning time: N/A Use cases: Not recommended for commercial messaging in Turkey
Short Codes
Support: Not currently supported in Turkey Provisioning time: N/A Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
The following content types and industries face strict restrictions:
- Gambling and betting services
- Political content
- Religious content
- Adult content
- Cryptocurrency promotions
- Unauthorized financial services
Content Filtering
Turkish carriers implement strict filtering rules:
- Messages with unregistered sender IDs are filtered
- Content containing restricted keywords is blocked
- URLs must be from approved domains
- Messages must not contain deceptive or misleading content
Best Practices for Sending SMS in Turkey
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Avoid URL shorteners unless approved by carriers
- Use proper Turkish characters and encoding
Sending Frequency and Timing
- Limit to 1-2 messages per customer per week
- Respect religious observances (especially during Ramadan)
- Avoid sending during national holidays
- Space out bulk campaigns to prevent network congestion
Localization
- Use Turkish as the primary language
- Include Turkish characters properly encoded
- Consider cultural sensitivities in message content
- Provide customer support in Turkish
Opt-Out Management
- Process opt-outs within 24 hours
- Maintain detailed opt-out logs
- Include clear opt-out instructions in Turkish
- Regular audit of opt-out lists
Testing and Monitoring
- Test across all major Turkish carriers
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular testing of opt-out functionality
- Monitor for carrier filtering changes
SMS API integrations for Turkey
Twilio
Twilio provides a robust REST API for sending SMS to Turkey. Authentication requires your Account SID and Auth Token.
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 sendSMSTurkey(to: string, message: string) {
try {
// Ensure phone number is in E.164 format for Turkey (+90)
const formattedNumber = to.startsWith('+90') ? to : `+90${to}`;
const response = await client.messages.create({
body: message,
to: formattedNumber,
// Must use registered alphanumeric sender ID for Turkey
from: 'YOUR_REGISTERED_SENDER_ID',
// Optional: Specify validity period (in seconds)
validityPeriod: 3600
});
console.log(`Message sent successfully: ${response.sid}`);
return response;
} catch (error) {
console.error('Error sending message:', error);
throw error;
}
}
Sinch
Sinch offers a REST API with OAuth2 authentication for secure SMS delivery to Turkey.
import axios from 'axios';
async function sendSinchSMS(to: string, message: string) {
const SINCH_API_TOKEN = process.env.SINCH_API_TOKEN;
const SINCH_SERVICE_PLAN_ID = process.env.SINCH_SERVICE_PLAN_ID;
try {
const response = await axios.post(
`https://sms.api.sinch.com/xms/v1/${SINCH_SERVICE_PLAN_ID}/batches`,
{
from: 'YOUR_REGISTERED_SENDER_ID',
to: [`+90${to.replace(/\D/g, '')}`],
body: message,
// Enable delivery reports
delivery_report: 'summary'
},
{
headers: {
'Authorization': `Bearer ${SINCH_API_TOKEN}`,
'Content-Type': 'application/json'
}
}
);
return response.data;
} catch (error) {
console.error('Sinch SMS Error:', error.response?.data || error);
throw error;
}
}
MessageBird
MessageBird provides a straightforward API for sending SMS to Turkey with detailed delivery reporting.
import messagebird from 'messagebird';
const messageBirdClient = messagebird(process.env.MESSAGEBIRD_API_KEY);
function sendMessageBirdSMS(to: string, message: string): Promise<any> {
return new Promise((resolve, reject) => {
messageBirdClient.messages.create({
originator: 'YOUR_REGISTERED_SENDER_ID',
recipients: [`+90${to.replace(/\D/g, '')}`],
body: message,
// Enable status reports
reportUrl: 'YOUR_WEBHOOK_URL',
type: 'sms'
}, (err, response) => {
if (err) {
reject(err);
return;
}
resolve(response);
});
});
}
Plivo
Plivo offers a feature-rich API with support for Turkish character sets and delivery tracking.
import plivo from 'plivo';
const client = new plivo.Client(
process.env.PLIVO_AUTH_ID,
process.env.PLIVO_AUTH_TOKEN
);
async function sendPlivoSMS(to: string, message: string) {
try {
const response = await client.messages.create({
src: 'YOUR_REGISTERED_SENDER_ID', // Registered sender ID
dst: `+90${to.replace(/\D/g, '')}`, // Clean and format number
text: message,
// Optional parameters for Turkish messages
type: 'sms',
url: 'YOUR_CALLBACK_URL',
method: 'POST'
});
return response;
} catch (error) {
console.error('Plivo SMS Error:', error);
throw error;
}
}
API Rate Limits and Throughput
- Twilio: 100 messages per second per account
- Sinch: 30 requests per second
- MessageBird: 60 messages per second
- Plivo: 50 messages per second
Strategies for Large-Scale Sending:
- Implement queue systems (Redis/RabbitMQ)
- Use batch APIs where available
- Implement exponential backoff for retries
- Monitor throughput and adjust sending rates
Error Handling and Reporting
- Implement comprehensive logging with Winston or similar
- Track delivery receipts via webhooks
- Monitor common error codes:
- 21614: Invalid number format
- 30007: Carrier rejection
- 30008: Blocked content
- Store message status updates in database
Recap and Additional Resources
Key Takeaways:
- Pre-register alphanumeric sender IDs
- Implement proper opt-out handling
- Respect time restrictions (08:00-21:00 local time)
- Use proper Turkish character encoding
- Monitor delivery reports
Next Steps:
- Register with BTK (Turkish Telecom Authority)
- Implement opt-out management system
- Set up delivery tracking
- Test with small volumes before scaling
Additional Information: