Macedonia SMS Best Practices, Compliance, and Features
Macedonia SMS Market Overview
Locale name: | Macedonia |
---|---|
ISO code: | MK |
Region | Europe |
Mobile country code (MCC) | 294 |
Dialing Code | +389 |
Market Conditions: Macedonia has a mature mobile market with high SMS adoption rates. The country's major mobile operators include A1 Macedonia (formerly Vip), Makedonski Telekom, and Lycamobile. While OTT messaging apps like Viber and WhatsApp are popular, SMS remains crucial for business communications and authentication. Android devices dominate the market with approximately 85% market share compared to iOS at 15%.
Key SMS Features and Capabilities in Macedonia
Macedonia supports most standard SMS features including concatenated messages and alphanumeric sender IDs, though two-way SMS functionality is limited.
Two-way SMS Support
Two-way SMS is not supported in Macedonia through most international SMS providers. Local implementations may be possible through direct carrier agreements.
Concatenated Messages (Segmented SMS)
Support: Yes, concatenation is supported across all major carriers.
Message length rules: 160 characters for GSM-7 encoding, 70 characters for UCS-2 encoding before splitting occurs.
Encoding considerations: GSM-7 is used for standard ASCII characters, while UCS-2 is required for Cyrillic and special characters.
MMS Support
MMS messages are automatically converted to SMS with an embedded URL link. This conversion ensures delivery compatibility across all networks while still allowing rich media content to be shared via web links.
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Macedonia.
This feature does not significantly impact SMS delivery or routing as messages are automatically routed to the current carrier.
Sending SMS to Landlines
Sending SMS to landline numbers is not supported in Macedonia.
Attempts to send SMS to landline numbers will result in delivery failure and a 400 response error (error code 21614) from most SMS APIs.
Compliance and Regulatory Guidelines for SMS in Macedonia
SMS communications in Macedonia are regulated by the Agency for Electronic Communications (AEK) and must comply with the Law on Electronic Communications and the Personal Data Protection Law. The country follows EU-style data protection principles, though it is not subject to GDPR.
Consent and Opt-In
Explicit consent is mandatory before sending any marketing or promotional SMS messages. Best practices for obtaining consent include:
- Written or electronic confirmation from recipients
- Clear disclosure of message frequency and content type
- Maintaining detailed consent records with timestamp and source
- Double opt-in confirmation for marketing lists
- Regular consent refresh every 24 months
HELP/STOP and Other Commands
- All SMS campaigns must support standard opt-out keywords:
- STOP, CANCEL, END, QUIT
- ПОМОШ (HELP in Macedonian)
- СТОП (STOP in Macedonian)
- Messages should be processed in both Latin and Cyrillic alphabets
- Response messages must be provided in both Macedonian and English
Do Not Call / Do Not Disturb Registries
Macedonia does not maintain a centralized Do Not Call registry. However, businesses should:
- Maintain their own suppression lists
- Honor opt-out requests within 24 hours
- Regularly clean contact lists
- Document all opt-out requests with timestamps
Time Zone Sensitivity
Macedonia observes Central European Time (CET/CEST). Best practices include:
- Sending messages between 09:00 and 20:00 local time
- Avoiding messages during national holidays
- Limiting emergency messages outside these hours
- Respecting weekend quiet hours (before 10:00 and after 18:00)
Phone Numbers Options and SMS Sender Types for Macedonia
Alphanumeric Sender ID
Operator network capability: Supported
Registration requirements: Dynamic usage allowed, no pre-registration required
Sender ID preservation: Yes, sender IDs are preserved across all major networks
Long Codes
Domestic vs. International:
- Domestic long codes: Supported but not available for international providers
- International long codes: Not supported by local networks
Sender ID preservation: No, international long codes may be replaced with generic alphanumeric IDs
Provisioning time: 1-2 business days for domestic numbers
Use cases: Recommended for transactional messages and two-factor authentication
Short Codes
Support: Available through local carriers only
Provisioning time: 8-12 weeks for approval
Use cases: High-volume marketing campaigns, premium services, and emergency alerts
Restricted SMS Content, Industries, and Use Cases
Restricted content categories include:
- Gambling and betting services
- Adult content or services
- Cryptocurrency promotions
- Unauthorized financial services
- Political campaign messages without proper disclosure
Content Filtering
Known carrier filtering rules:
- Messages containing certain keywords in Macedonian or English
- URLs from suspicious domains
- High-frequency sending patterns
Tips to avoid blocking:
- Avoid URL shorteners
- Use consistent sender IDs
- Maintain regular sending patterns
- Include clear business identification
- Avoid excessive punctuation and all-caps
Best Practices for Sending SMS in Macedonia
Messaging Strategy
- Keep messages under 160 characters when possible
- Include clear call-to-actions
- Personalize using recipient's name or relevant details
- Maintain consistent sender ID across campaigns
Sending Frequency and Timing
- Limit to 4-5 messages per month per recipient
- Space campaigns at least 72 hours apart
- Avoid sending during major holidays
- Consider Ramadan timing for Muslim recipients
Localization
- Primary language should be Macedonian
- Consider Albanian for specific regions
- Use proper character encoding for Cyrillic alphabet
- Include both Cyrillic and Latin scripts for critical information
Opt-Out Management
- Process opt-outs within 24 hours
- Send confirmation of opt-out
- Maintain opt-out lists across all campaigns
- Regular audit of opt-out processing
Testing and Monitoring
- Test across all major carriers (A1, Makedonski Telekom, Lycamobile)
- Monitor delivery rates by carrier
- Track opt-out rates and patterns
- Regular testing of opt-out functionality
SMS API integrations for Macedonia
Twilio
Twilio provides robust SMS capabilities for Macedonia through their REST API. Authentication uses your Account SID and Auth Token.
import { 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 Macedonia
async function sendSMSToMacedonia(
to: string,
message: string,
senderId: string
) {
try {
// Ensure proper formatting for Macedonia numbers (+389)
const formattedNumber = to.startsWith('+389') ? to : `+389${to}`;
const response = await client.messages.create({
body: message,
from: senderId, // Alphanumeric sender ID
to: formattedNumber,
// 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 direct carrier connections in Macedonia. Their REST API requires API Token authentication.
import axios from 'axios';
class SinchSMSClient {
private readonly apiToken: string;
private readonly serviceId: string;
constructor(apiToken: string, serviceId: string) {
this.apiToken = apiToken;
this.serviceId = serviceId;
}
async sendSMS(to: string, message: string) {
const url = `https://sms.api.sinch.com/xms/v1/${this.serviceId}/batches`;
try {
const response = await axios.post(
url,
{
from: 'YourBrand', // Alphanumeric sender ID
to: [to],
body: message,
encoding: 'AUTO' // Automatically handles Cyrillic
},
{
headers: {
'Authorization': `Bearer ${this.apiToken}`,
'Content-Type': 'application/json'
}
}
);
return response.data.id;
} catch (error) {
console.error('Sinch SMS failed:', error);
throw error;
}
}
}
MessageBird
MessageBird provides reliable SMS delivery in Macedonia with support for local character sets.
import { MessageBird } from 'messagebird';
class MessageBirdSMS {
private client: MessageBird;
constructor(apiKey: string) {
this.client = new MessageBird(apiKey);
}
sendSMS(
recipient: string,
message: string,
originator: string
): Promise<any> {
return new Promise((resolve, reject) => {
this.client.messages.create({
originator, // Max 11 characters for alphanumeric
recipients: [recipient],
body: message,
datacoding: 'unicode' // For Cyrillic support
}, (err, response) => {
if (err) {
reject(err);
} else {
resolve(response);
}
});
});
}
}
Plivo
Plivo offers SMS services in Macedonia with support for high-volume sending.
import * as plivo from 'plivo';
class PlivoSMSService {
private client: plivo.Client;
constructor(authId: string, authToken: string) {
this.client = new plivo.Client(authId, authToken);
}
async sendBulkSMS(
recipients: string[],
message: string,
senderId: string
) {
try {
const response = await this.client.messages.create({
src: senderId,
dst: recipients.join('<'), // Bulk sending format
text: message,
// Optional parameters
url_strip_query: false,
method: 'POST'
});
return response;
} catch (error) {
console.error('Plivo SMS failed:', error);
throw error;
}
}
}
API Rate Limits and Throughput
- Default rate limits per provider:
- Twilio: 100 messages/second
- Sinch: 50 messages/second
- MessageBird: 60 messages/second
- Plivo: 30 messages/second
Strategies for large-scale sending:
- Implement exponential backoff
- Use batch APIs where available
- Queue messages during peak times
- Monitor delivery receipts
Error Handling and Reporting
- Implement comprehensive logging
- Monitor common error codes:
- 4xx: Client errors (invalid numbers, formatting)
- 5xx: Server errors (retry recommended)
- Store delivery receipts
- Set up automated alerts for failure thresholds
Recap and Additional Resources
Key Takeaways
- Compliance First: Always obtain explicit consent and honor opt-outs
- Technical Setup: Use Unicode encoding for Cyrillic support
- Timing Matters: Respect local time zones and cultural considerations
- Monitor Performance: Track delivery rates and user engagement
Next Steps
- Review the AEK Guidelines for SMS messaging
- Implement proper consent management systems
- Test message delivery across all major carriers
- Set up monitoring and reporting systems
Additional Resources
- Agency for Electronic Communications (AEK)
- Personal Data Protection Agency
- Macedonian Telecom Laws
- SMS Best Practices Guide
Industry Contacts:
- Local Telecom Regulatory Authority: +389 2 3289 200
- AEK Technical Support: support@aek.mk
- Data Protection Office: info@dzlp.mk