How to Send SMS to Serbia: Complete API Integration Guide (2025)
Learn how to send SMS messages to Serbia with Twilio, Sinch, and MessageBird APIs. Covers RATEL compliance, sender ID registration, MTS/Yettel/A1 operators, and deliverability best practices.
Sending SMS messages to Serbia requires understanding the local market structure, operator landscape, and technical requirements. This guide covers everything you need to integrate SMS APIs for Serbian recipients, including Twilio, Sinch, and MessageBird implementation examples.
Locale name:
Serbia
ISO code:
RS
Region
Europe
Mobile country code (MCC)
220
Dialing Code
+381
Mobile Number Format: Serbia mobile numbers follow the E.164 international format: +381XXXXXXXXX. Mobile numbers are 8-9 digits after the country code. The leading "0" trunk prefix used domestically (e.g., 063 123 4567) must be dropped when formatting for international use.
Format Examples:
International format: +381631234567
Local format (within Serbia): 063 123 4567
Formatted international: +381 63 123 4567
Network Prefixes by Operator:
MTS (Telekom Srbija): 60, 61, 62, 63, 64, 65, 66
Yettel: 60, 62, 63, 64, 65, 66
A1 Srbija: 60, 61, 62, 63, 64, 65, 66
Market Conditions: Serbia has a mature mobile market with high SMS adoption rates. The country's three mobile operators – Telekom Srbija/MTS (46.8% market share), Yettel (31.2%, formerly Telenor Serbia), and A1 Srbija (22%, formerly VIP Mobile) – serve the entire market. In 2024, MTS achieved the highest network quality score (940.75 points), followed by A1 (895.58) and Yettel (858.90). These network quality scores directly impact SMS deliverability, with higher-scoring networks typically achieving 98-99% delivery rates for properly formatted messages. While OTT messaging apps like WhatsApp and Viber are popular, SMS remains crucial for business communications and authentication. Android devices dominate with approximately 74.6% market share (as of 2022-2023), while iOS represents approximately 25% of the mobile OS market.
Key SMS Features and Capabilities in Serbia
When sending SMS to Serbia, you'll have access to concatenated messaging and alphanumeric sender IDs for brand recognition. However, two-way SMS functionality is not supported through major providers.
Two-way SMS Support
Two-way SMS is not supported in Serbia through major SMS providers. For interactive messaging capabilities, use alternative communication channels such as:
Viber Business: Widely adopted in Serbia with 2-way messaging, rich media, and chatbot support
WhatsApp Business API: Popular for customer service with message templates and automation
Web-based chat: Live chat widgets integrated with your SMS workflows
RCS (Rich Communication Services): Emerging alternative with interactive features where supported
Concatenated Messages (Segmented SMS)
Support: Yes, though availability varies by sender ID type
Message length: 160 characters (GSM-7), 70 characters (UCS-2)
Encoding: GSM-7 for basic Latin; UCS-2 for Serbian characters (reduces limit to 70 per segment)
Practical Example:
Code
Single segment (GSM-7): "Your verification code is 123456. Valid for 10 minutes." (58 chars, 1 segment)
Single segment (UCS-2 with Cyrillic): "Ваш код за верификацију је 123456." (34 chars, 1 segment)
Multi-segment (GSM-7): "Dear customer, your order #12345 has been confirmed and will be delivered tomorrow between 10 AM and 2 PM. Track your package at example.com/track" (151 chars, 1 segment)
Multi-segment (UCS-2): A 150-character message in Serbian Cyrillic would require 3 segments (70+70+10), resulting in 3× the cost
Cost Implication: Each segment is billed separately. A 200-character GSM-7 message requires 2 segments; a 140-character UCS-2 message requires 2 segments.
MMS Support
MMS messages convert automatically to SMS with an embedded URL link, ensuring delivery while enabling rich media sharing through web-based content.
Technical Details:
Conversion: MMS automatically converts to SMS + shortened URL
Hosting: Media files hosted on provider's CDN for 30-90 days (varies by provider)
Size limits: Original MMS up to 500KB; SMS conversion always succeeds
Expiration: URLs typically expire after 30 days; check provider documentation
Fallback: If media fails to load, SMS with descriptive text delivers
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Serbia. Mobile Number Portability (MNP) was implemented in 2011 and is managed by RATEL through a centralized database (prenesibroj.rs). Over 1,025,771 numbers have been ported in mobile networks over the past decade. The porting process typically takes 2-3 days after technical validation, and messages route automatically to the current carrier without impacting delivery.
API Lookup and Handling:
Twilio Lookup API: GET /v1/PhoneNumbers/{PhoneNumber}?Type=carrier returns current carrier
Sinch Number Lookup: Query HLR (Home Location Register) to verify active carrier
MessageBird Lookup API: /lookup/{phoneNumber} provides carrier routing information
Best Practice: Cache lookup results for 7-14 days to minimize API calls, then refresh to catch recent ports
Sending SMS to Landlines
Sending SMS to landline numbers is not supported. Attempts to send messages to landline numbers will result in a 400 response error (code 21614), and no charges will be incurred.
Number Validation Regex:
JavaScript
// Serbia mobile number validation (international format)const serbianMobileRegex = /^\+381(6[0-6])\d{6,7}$/;
// Validate before sendingfunctionisValidSerbianMobile(phoneNumber) {
return serbianMobileRegex.test(phoneNumber);
}
// Example usageisValidSerbianMobile('+381631234567'); // true (valid mobile)isValidSerbianMobile('+381111234567'); // false (Belgrade landline)
RATEL Compliance and Regulatory Guidelines for SMS in Serbia
Serbia follows local telecommunications regulations and EU-aligned practices. The Regulatory Agency for Electronic Communications and Postal Services (RATEL) oversees telecommunications services, including SMS communications.
Legal Framework:
Law on Electronic Communications (2014): Regulates telecommunications infrastructure and services, including SMS delivery and network operations
Law on Protection of Personal Data (2018): Serbia's GDPR-equivalent law governing consent, data processing, and individual rights
Consumer Protection Law (2021): Mandates explicit consent for marketing communications and opt-out mechanisms
Law on Advertising (2019): Regulates commercial communications including SMS marketing content and disclosures
GDPR Alignment: Serbia's 2018 Data Protection Law aligns closely with EU GDPR, requiring explicit consent, data minimization, purpose limitation, and providing rights to access, rectification, and erasure.
Consent and Opt-In
Explicit Consent Requirements:
Obtain written or electronic consent before sending marketing messages
Maintain consent records with timestamp, IP address, consent method, and scope for minimum 3 years
Clearly state the purpose of communication during opt-in
Use double opt-in for marketing campaigns
Consent Record Requirements:
Minimum retention: 3 years from last contact
Audit trail: Timestamp, source (web form, API, in-person), consent text shown, IP address
Proof of consent: Stored consent form, checkbox state, confirmation email/SMS
Update mechanism: Allow users to modify preferences without full opt-out
HELP/STOP and Other Commands
Include "Odjava STOPMFL na 1599, 0din" in all marketing messages
Process STOP commands within 24 hours
Support both Latin and Cyrillic scripts for opt-out messages
Recognize keywords in Serbian and English
Complete Opt-Out Keywords (recognize all variants):
Case-insensitive: Process regardless of uppercase/lowercase
Do Not Call / Do Not Disturb Registries
Serbia does not maintain a centralized Do Not Call registry. You must:
Maintain internal suppression lists
Honor opt-out requests immediately
Document all opt-out requests for compliance
Regularly clean contact lists to remove unsubscribed numbers
Time Zone Sensitivity
Serbia observes Central European Time (CET/CEST):
Send messages between 9:00 AM and 8:00 PM local time
Avoid messages during national holidays
Limit urgent messages outside business hours
Respect weekend quiet hours (before 10:00 AM and after 6:00 PM)
Serbian National Holidays 2025:
January 1-2: New Year's Day
January 6-7: Orthodox Christmas (Božić)
February 15, 17: Statehood Day
April 18-21: Orthodox Easter (Vaskrs)
May 1-2: Labor Day
November 11: Armistice Day
DST Transitions:
Spring: Last Sunday in March (March 30, 2025 at 2:00 AM → 3:00 AM CEST)
Fall: Last Sunday in October (October 26, 2025 at 3:00 AM → 2:00 AM CET)
How to Register Sender IDs for SMS in Serbia
Alphanumeric Sender ID
Operator network capability: Supported with optional pre-registration
Registration requirements: Pre-registration available, takes approximately 16 days
Sender ID preservation: Yes for registered IDs; unregistered may be overwritten
Sender ID preservation: No, overwritten with generic alphanumeric ID
Provisioning time: Immediate for international long codes
Use cases: Transactional messages, alerts, notifications
Why Domestic Long Codes Are Unavailable: Serbian regulations require dedicated short codes for two-way SMS services. Domestic long codes are reserved for voice/data services only. Workaround: Use international long codes for one-way transactional messaging or switch to registered alphanumeric sender IDs for better deliverability.
Short Codes
Support: Not supported in Serbia
Provisioning time: N/A
Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Industries:
Gambling and betting services (unless licensed by Serbian Gaming Board)
Adult content (pornography, escort services, dating with explicit content)
Unauthorized financial services (loans, credit offers without banking license)
Political campaign messages without proper authorization from RATEL
Pharmaceutical products requiring prescriptions (unless sent by licensed pharmacy)
Healthcare services without proper medical licensing
Age-restricted products (alcohol, tobacco) without age verification
Political Message Authorization: Political campaigns must register with RATEL and include sender identification, campaign authorization code, and comply with electoral communication laws. Contact RATEL at +381 11 3242 673 for authorization process.
Content Filtering
Carrier Filtering Rules:
Messages containing certain keywords may be blocked
URLs should be from approved domains
Excessive punctuation may trigger spam filters
High-volume sending patterns may be throttled
Specific Blocked Keywords Examples (partial list, varies by carrier):
Adult content: Explicit sexual terms in both Cyrillic and Latin scripts
Pharmaceutical: Prescription drug names, "виагра" (Viagra), unlicensed medical claims
URL Whitelisting Process:
Register domain with your SMS provider (Twilio Domain Verification, Sinch Brand Registry)
Submit URL for carrier approval (contact account manager)
Use HTTPS only; HTTP URLs have higher filtering risk
Avoid URL shorteners (bit.ly, tinyurl) which trigger spam filters
Throttling Thresholds:
Burst limit: 30-50 messages per second per sender ID
Sustained rate: 100-500 messages per minute (varies by carrier and sender reputation)
Daily volume: 10,000+ messages may require carrier pre-notification
Mitigation: Implement exponential backoff, queue management, and rate limiting in your application
Best Practices to Avoid Filtering:
Use registered sender IDs
Maintain consistent sending patterns
Avoid URL shorteners
Include clear opt-out instructions
Best Practices for Sending SMS in Serbia
Messaging Strategy
Keep messages under 160 characters when possible
Include clear call-to-action
Use personalization tokens thoughtfully
Maintain consistent brand voice
Message Template Examples:
OTP/2FA:
Code
Vas kod za potvrdu: 543821
Vazi 10 minuta.
- [BrandName]
Appointment Reminder:
Code
Podsetnik: Vas termin je sutra 14:00h u ordinaciji Dr. Petrovic. Potvrdite na: 063-XXX-XXXX
Marketing (with opt-out):
Code
Ekskluzivna ponuda! 30% popust na sve proizvode do petka. Vise na: example.rs/akcija
Odjava STOPMFL na 1599, 0din
Sending Frequency and Timing
Limit to 2-4 messages per month per recipient
Respect Serbian national holidays
Avoid sending during Orthodox religious observances
Space out bulk campaigns to prevent network congestion
Orthodox Religious Observances to Avoid:
Orthodox Christmas Eve (January 6)
Orthodox Christmas (January 7)
Slava (family patron saint days - varies by family, high throughout year)
Orthodox Good Friday (April 18, 2025)
Orthodox Easter (April 20-21, 2025)
Vidovdan (St. Vitus' Day, June 28 - culturally significant)
Localization
Default to Serbian language (Latin script)
Consider dual-language messages for international brands
Use local date/time formats (DD.MM.YYYY)
Respect cultural sensitivities in content
Script Guidance:
Latin script (preferred): Used in business, technology, and international contexts; higher compatibility with SMS encoding (GSM-7)
Cyrillic script: Traditional and official, used in government, education, and formal contexts; requires UCS-2 encoding (70 chars/segment)
Bilingual audiences: Use Latin for younger demographics (18-35) and tech-related messages; Cyrillic for older demographics (45+) and formal communications
Mixed approach: Some brands send Latin for promotional messages and Cyrillic for official notifications
Opt-Out Management
Process opt-outs within 24 hours
Maintain centralized opt-out database
Include opt-out instructions in every marketing message
Confirm opt-out with one final message
Testing and Monitoring
Test across all major Serbian carriers (MTS, Yettel, A1)
Monitor delivery rates by carrier
Track opt-out rates and patterns
Test opt-out functionality regularly
SMS KPI Benchmarks for Serbia:
Delivery rate: 95-99% for registered sender IDs; 85-92% for unregistered
Open rate: 95-98% (SMS typically read within 3-5 minutes)
Click-through rate (with URL): 8-15% for transactional, 3-8% for promotional
Number inactive or out of coverage; remove from list
30005
Twilio
Unknown destination
Invalid number format; validate E.164 format
30006
Twilio
Landline or unreachable carrier
Verify number type with Lookup API
21408
Twilio
Permission to send denied
Sender ID not registered or blocked
40301
Sinch
Invalid sender ID
Use registered alphanumeric sender or valid long code
40302
Sinch
Insufficient funds
Top up account balance
40303
Sinch
Forbidden content
Message contains blocked keywords; review content
40001
Sinch
Syntax error
Check JSON payload structure
9
MessageBird
Routing error
Carrier routing issue; retry or use fallback
21
MessageBird
Invalid recipient
Check phone number format (+381...)
98
MessageBird
Missing parameter
Verify all required API parameters included
Monitoring Dashboard Recommendations:
Tools: Grafana + Prometheus, DataDog, New Relic, or provider-native dashboards
Key Metrics: Delivery rate %, average latency (time to delivery), error rate by code, cost per message
Alerting Thresholds:
Delivery rate drops below 94% (15-minute window)
Error rate exceeds 3% (5-minute window)
Opt-out rate spikes above 1% (daily)
Average latency exceeds 30 seconds (5-minute window)
Frequently Asked Questions (FAQ)
What are the SMS compliance requirements in Serbia?
To send SMS messages to Serbia legally, you must obtain explicit written or electronic consent before sending marketing messages. All marketing SMS must include the opt-out instruction "Odjava STOPMFL na 1599, 0din" and process STOP commands within 24 hours. RATEL (Regulatory Agency for Electronic Communications and Postal Services) oversees SMS compliance.
Do I need to register alphanumeric sender IDs to send SMS in Serbia?
Yes, pre-registration is strongly recommended when sending SMS to Serbia with alphanumeric sender IDs. Registration takes approximately 16 days and costs around €30/month. Registered sender IDs are preserved across MTS, Yettel, and A1 networks, while unregistered IDs may be overwritten with a generic sender ID.
What is the character limit when sending SMS to Serbia?
When you send SMS to Serbia, standard messages support 160 characters using GSM-7 encoding for basic Latin characters, or 70 characters using UCS-2 encoding for Serbian Cyrillic characters. Concatenated (multi-part) messages are supported, though availability varies by sender ID type.
Is mobile number portability available in Serbia?
Yes, Mobile Number Portability (MNP) has been available in Serbia since 2011. RATEL manages the centralized MNP database (prenesibroj.rs), and over 1,025,771 numbers have been ported. The porting process typically takes 2-3 days after technical validation.
What are the best times to send marketing SMS in Serbia?
Send marketing messages between 9:00 AM and 8:00 PM Central European Time (CET/CEST). Avoid sending during national holidays and respect weekend quiet hours (before 10:00 AM and after 6:00 PM).
Which mobile operators support SMS in Serbia?
Serbia has three mobile operators: Telekom Srbija/MTS (46.8% market share), Yettel (31.2%, formerly Telenor Serbia), and A1 Srbija (22%, formerly VIP Mobile). All three operators support SMS messaging with concatenated messages and alphanumeric sender IDs.
Is two-way SMS supported in Serbia?
No, two-way SMS is not supported in Serbia through major SMS providers. For interactive messaging capabilities, you should use alternative communication channels such as mobile apps or messaging platforms.
Can I send SMS to landline numbers in Serbia?
No, sending SMS to landline numbers is not supported in Serbia. Attempts to send messages to landline numbers will result in a 400 response error (code 21614), and no charges will be incurred.
What opt-out message format is required in Serbia?
All marketing messages in Serbia must include the phrase "Odjava STOPMFL na 1599, 0din" for opt-out instructions. The system must support both Latin and Cyrillic scripts for opt-out messages and recognize keywords in both Serbian and English.
How long does sender ID registration take in Serbia?
Alphanumeric sender ID pre-registration in Serbia takes approximately 16 days. While pre-registration is optional, it ensures your sender ID is preserved across all three mobile operators (MTS, Yettel, A1).
What are typical SMS delivery times in Serbia?
Transactional SMS typically delivers within 3-10 seconds during normal network conditions. Promotional SMS may experience 10-60 second delays during peak hours (9-11 AM, 5-7 PM weekdays). Bulk campaigns (1,000+ messages) should allow 5-15 minutes for complete delivery.
How much does SMS cost in Serbia?
Pricing varies by provider and volume but typically ranges from €0.015-0.045 per message for standard delivery. Registered sender IDs incur additional setup (€20) and monthly (€30) fees. Volume discounts available for 10,000+ messages/month.
What should I do if messages aren't being delivered?
Common troubleshooting steps: (1) Verify number format (E.164: +381XXXXXXXXX), (2) Check sender ID registration status, (3) Review message content for blocked keywords, (4) Confirm account balance with provider, (5) Test across all three carriers (MTS, Yettel, A1), (6) Check error logs for specific error codes (see table above).
Recap and Additional Resources
Key Takeaways
Compliance Priorities
Obtain explicit consent
Include opt-out instructions
Respect sending hours (9 AM - 8 PM CET)
Technical Considerations
Use registered sender IDs
Implement proper error handling
Monitor delivery rates
Next Steps
Review RATEL regulations
Set up monitoring systems
Test with small volumes initially
Implementation Checklist:
Register alphanumeric sender ID (allow 16 days)
Implement E.164 number validation (+381XXXXXXXXX)
Configure webhook endpoints for delivery status
Set up opt-out keyword recognition (STOP, ODJAVA, etc.)
Create consent record database with 3-year retention
Test message delivery across all carriers (MTS, Yettel, A1)
Configure rate limiting (30-100 msg/sec)
Set up monitoring dashboards with alerting
Prepare message templates for common use cases
Schedule sending to respect CET timezone (9 AM - 8 PM)
Troubleshooting Decision Tree:
Message not delivered:
Check error code → If 21614: recipient is landline (validate mobile only)
If 30003/30005: invalid number (verify E.164 format)
If 21408/40301: sender ID issue (register or use different ID)
If 40303: content blocked (review keywords, remove prohibited terms)
Low delivery rate (<95%):
Verify sender ID registration status
Check for carrier filtering (test with transactional vs. promotional content)
Review list hygiene (remove bounced/inactive numbers)
RATEL Address: Trg Nikole Pašića 2, 11000 Belgrade, Serbia
Frequently asked questions
Use an SMS API like Twilio, Sinch, or MessageBird, ensuring the recipient's number is in E.164 format (+381...). Register an alphanumeric sender ID for better deliverability and brand recognition. Remember to comply with Serbian regulations, including obtaining consent and providing opt-out instructions.
Utilize a queueing system like Bull to manage high-volume sends, incorporating exponential backoff for rate limiting and error handling. Batch APIs are recommended for efficiency, and ensure compliance with Serbian regulations by obtaining consent and providing opt-out instructions.
Short codes are not supported within Serbia. For transactional messages, alerts, and notifications, international long codes are supported as an alternative.
Adhere to Serbian business hours (9:00 AM to 8:00 PM CET) and avoid sending during national or religious holidays. Respect weekend quiet hours (before 10:00 AM and after 6:00 PM) to minimize disruption.
Obtain explicit consent before sending marketing messages, include a clear opt-out instruction ("Odjava STOPMFL na 1599, 0din") in every message, and process opt-outs within 24 hours. Maintain records of consent and opt-out requests.
Serbian regulations require processing opt-out requests within 24 hours. Include the opt-out phrase "Odjava STOPMFL na 1599, 0din" in every message. Use "STOP" or "STOPMFL" keywords and recognize them in both Serbian and English. Maintain a database of unsubscribed numbers.
Concatenated messages and alphanumeric sender IDs are supported, enabling longer messages and brand recognition. Two-way SMS is not supported while MMS messages are converted to SMS with embedded links to access rich content
No, sending SMS to landline numbers in Serbia is not supported and will result in a 400 error (code 21614). No charges are incurred for these failed attempts.
Both GSM-7 and UCS-2 are supported. However, messages with Serbian characters require UCS-2 encoding, limiting each segment to 70 characters instead of the standard 160 characters for GSM-7.
Pre-registration for alphanumeric sender IDs in Serbia takes approximately 16 days. Registered IDs are preserved, while unregistered ones may be overwritten with a generic sender ID.
Gambling, adult content, cryptocurrency promotions, unauthorized financial services, and political campaign messages without authorization are restricted. Content filtering by carriers may also block messages with certain keywords, URLs, or excessive punctuation.
Keep messages concise, include a clear call to action, personalize thoughtfully, and maintain a consistent brand voice. Limit messages to 2-4 per month per recipient, respect holidays and quiet hours, and prioritize Serbian language (Latin script).
Obtain explicit written or electronic consent before sending marketing messages. Clearly state the purpose of communication during the opt-in process. Double opt-in is recommended for marketing campaigns and records of consent should be maintained
The Regulatory Agency for Electronic Communications and Postal Services (RATEL) website (www.ratel.rs/en) provides detailed information on telecommunications regulations, including those pertaining to SMS.
Implement exponential backoff strategies for retry logic to handle rate limits imposed by SMS providers. Utilize batch APIs for high-volume sending and consider queue systems for large campaigns to manage throughput effectively.
Serbia SMS Market Overview
Sending SMS messages to Serbia requires understanding the local market structure, operator landscape, and technical requirements. This guide covers everything you need to integrate SMS APIs for Serbian recipients, including Twilio, Sinch, and MessageBird implementation examples.
Mobile Number Format: Serbia mobile numbers follow the E.164 international format:
+381XXXXXXXXX. Mobile numbers are 8-9 digits after the country code. The leading "0" trunk prefix used domestically (e.g., 063 123 4567) must be dropped when formatting for international use.Format Examples:
+381631234567063 123 4567+381 63 123 4567Network Prefixes by Operator:
Market Conditions: Serbia has a mature mobile market with high SMS adoption rates. The country's three mobile operators – Telekom Srbija/MTS (46.8% market share), Yettel (31.2%, formerly Telenor Serbia), and A1 Srbija (22%, formerly VIP Mobile) – serve the entire market. In 2024, MTS achieved the highest network quality score (940.75 points), followed by A1 (895.58) and Yettel (858.90). These network quality scores directly impact SMS deliverability, with higher-scoring networks typically achieving 98-99% delivery rates for properly formatted messages. While OTT messaging apps like WhatsApp and Viber are popular, SMS remains crucial for business communications and authentication. Android devices dominate with approximately 74.6% market share (as of 2022-2023), while iOS represents approximately 25% of the mobile OS market.
Key SMS Features and Capabilities in Serbia
When sending SMS to Serbia, you'll have access to concatenated messaging and alphanumeric sender IDs for brand recognition. However, two-way SMS functionality is not supported through major providers.
Two-way SMS Support
Two-way SMS is not supported in Serbia through major SMS providers. For interactive messaging capabilities, use alternative communication channels such as:
Concatenated Messages (Segmented SMS)
Support: Yes, though availability varies by sender ID type Message length: 160 characters (GSM-7), 70 characters (UCS-2) Encoding: GSM-7 for basic Latin; UCS-2 for Serbian characters (reduces limit to 70 per segment)
Practical Example:
Cost Implication: Each segment is billed separately. A 200-character GSM-7 message requires 2 segments; a 140-character UCS-2 message requires 2 segments.
MMS Support
MMS messages convert automatically to SMS with an embedded URL link, ensuring delivery while enabling rich media sharing through web-based content.
Technical Details:
Recipient Phone Number Compatibility
Number Portability
Number portability is available in Serbia. Mobile Number Portability (MNP) was implemented in 2011 and is managed by RATEL through a centralized database (prenesibroj.rs). Over 1,025,771 numbers have been ported in mobile networks over the past decade. The porting process typically takes 2-3 days after technical validation, and messages route automatically to the current carrier without impacting delivery.
API Lookup and Handling:
GET /v1/PhoneNumbers/{PhoneNumber}?Type=carrierreturns current carrier/lookup/{phoneNumber}provides carrier routing informationSending SMS to Landlines
Sending SMS to landline numbers is not supported. Attempts to send messages to landline numbers will result in a 400 response error (code 21614), and no charges will be incurred.
Number Validation Regex:
// Serbia mobile number validation (international format) const serbianMobileRegex = /^\+381(6[0-6])\d{6,7}$/; // Validate before sending function isValidSerbianMobile(phoneNumber) { return serbianMobileRegex.test(phoneNumber); } // Example usage isValidSerbianMobile('+381631234567'); // true (valid mobile) isValidSerbianMobile('+381111234567'); // false (Belgrade landline)RATEL Compliance and Regulatory Guidelines for SMS in Serbia
Serbia follows local telecommunications regulations and EU-aligned practices. The Regulatory Agency for Electronic Communications and Postal Services (RATEL) oversees telecommunications services, including SMS communications.
Legal Framework:
GDPR Alignment: Serbia's 2018 Data Protection Law aligns closely with EU GDPR, requiring explicit consent, data minimization, purpose limitation, and providing rights to access, rectification, and erasure.
Consent and Opt-In
Explicit Consent Requirements:
Consent Record Requirements:
HELP/STOP and Other Commands
Complete Opt-Out Keywords (recognize all variants):
Do Not Call / Do Not Disturb Registries
Serbia does not maintain a centralized Do Not Call registry. You must:
Time Zone Sensitivity
Serbia observes Central European Time (CET/CEST):
Serbian National Holidays 2025:
DST Transitions:
How to Register Sender IDs for SMS in Serbia
Alphanumeric Sender ID
Operator network capability: Supported with optional pre-registration Registration requirements: Pre-registration available, takes approximately 16 days Sender ID preservation: Yes for registered IDs; unregistered may be overwritten
Registration Process:
Naming Conventions:
.:-_Long Codes
Domestic vs. International:
Sender ID preservation: No, overwritten with generic alphanumeric ID Provisioning time: Immediate for international long codes Use cases: Transactional messages, alerts, notifications
Why Domestic Long Codes Are Unavailable: Serbian regulations require dedicated short codes for two-way SMS services. Domestic long codes are reserved for voice/data services only. Workaround: Use international long codes for one-way transactional messaging or switch to registered alphanumeric sender IDs for better deliverability.
Short Codes
Support: Not supported in Serbia Provisioning time: N/A Use cases: N/A
Restricted SMS Content, Industries, and Use Cases
Restricted Industries:
Political Message Authorization: Political campaigns must register with RATEL and include sender identification, campaign authorization code, and comply with electoral communication laws. Contact RATEL at +381 11 3242 673 for authorization process.
Content Filtering
Carrier Filtering Rules:
Specific Blocked Keywords Examples (partial list, varies by carrier):
URL Whitelisting Process:
Throttling Thresholds:
Best Practices to Avoid Filtering:
Best Practices for Sending SMS in Serbia
Messaging Strategy
Message Template Examples:
OTP/2FA:
Appointment Reminder:
Marketing (with opt-out):
Sending Frequency and Timing
Orthodox Religious Observances to Avoid:
Localization
Script Guidance:
Opt-Out Management
Testing and Monitoring
SMS KPI Benchmarks for Serbia:
What Constitutes 'Good' Performance:
SMS API integrations for Serbia
Twilio
Twilio provides robust SMS API support for Serbian message delivery. 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); // Function to send SMS to Serbia async function sendSMSToSerbia( to: string, message: string, senderId: string ): Promise<void> { try { // Ensure phone number is in E.164 format for Serbia (+381...) const formattedNumber = to.startsWith('+381') ? to : `+381${to}`; const response = await client.messages.create({ body: message, from: senderId, // Registered alphanumeric sender ID to: formattedNumber, // Optional: Set status callback URL statusCallback: 'https://your-domain.com/sms/status' }); console.log(`Message sent successfully! SID: ${response.sid}`); } catch (error) { console.error('Error sending message:', error); throw error; } }Webhook Payload Structure (status callback):
{ "SmsSid": "SM...", "SmsStatus": "delivered", "MessageStatus": "delivered", "To": "+381631234567", "MessageSid": "SM...", "AccountSid": "AC...", "From": "YourBrand", "ApiVersion": "2010-04-01", "ErrorCode": null, "ErrorMessage": null }Status Callback Implementation:
// Express.js webhook endpoint app.post('/sms/status', (req, res) => { const { MessageSid, MessageStatus, To, ErrorCode } = req.body; // Update database with delivery status if (MessageStatus === 'delivered') { updateMessageStatus(MessageSid, 'delivered'); } else if (MessageStatus === 'failed') { logFailure(MessageSid, To, ErrorCode); } res.sendStatus(200); });Sinch
Sinch offers straightforward REST API for SMS delivery in Serbia with API token authentication.
import axios from 'axios'; class SinchSMSService { private readonly baseUrl: string; private readonly apiToken: string; constructor(serviceId: string, apiToken: string) { this.baseUrl = `https://sms.api.sinch.com/xms/v1/${serviceId}`; this.apiToken = apiToken; } async sendSMS(to: string, message: string): Promise<void> { try { const response = await axios.post( `${this.baseUrl}/batches`, { from: 'YourBrand', // Registered sender ID to: [to], body: message, encoding: 'AUTO' // Automatically handles Serbian characters }, { 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 provides feature-rich API with strong support for Serbian message delivery.
import messagebird from 'messagebird'; class MessageBirdService { private client: any; constructor(apiKey: string) { this.client = messagebird(apiKey); } sendSMS(to: string, message: string): Promise<void> { return new Promise((resolve, reject) => { this.client.messages.create({ originator: 'YourBrand', recipients: [to], body: message, type: 'sms', // Explicitly set message type encoding: 'auto' // Handles Serbian character sets }, (err: any, response: any) => { if (err) { console.error('MessageBird error:', err); reject(err); } else { console.log('Message sent:', response.id); resolve(); } }); }); } }API Rate Limits and Throughput
Provider-Specific Rate Limits for Serbia:
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); // Log to monitoring system console.error(`SMS Error [${error.code}]: ${error.message}`); // Handle specific error types switch(error.code) { case 'invalid_number': // Clean up invalid numbers from database break; case 'rate_limit': // Implement backoff strategy break; case 'delivery_failed': // Retry with fallback provider break; } } }Serbia-Specific Error Code Reference:
Monitoring Dashboard Recommendations:
Frequently Asked Questions (FAQ)
What are the SMS compliance requirements in Serbia?
To send SMS messages to Serbia legally, you must obtain explicit written or electronic consent before sending marketing messages. All marketing SMS must include the opt-out instruction "Odjava STOPMFL na 1599, 0din" and process STOP commands within 24 hours. RATEL (Regulatory Agency for Electronic Communications and Postal Services) oversees SMS compliance.
Do I need to register alphanumeric sender IDs to send SMS in Serbia?
Yes, pre-registration is strongly recommended when sending SMS to Serbia with alphanumeric sender IDs. Registration takes approximately 16 days and costs around €30/month. Registered sender IDs are preserved across MTS, Yettel, and A1 networks, while unregistered IDs may be overwritten with a generic sender ID.
What is the character limit when sending SMS to Serbia?
When you send SMS to Serbia, standard messages support 160 characters using GSM-7 encoding for basic Latin characters, or 70 characters using UCS-2 encoding for Serbian Cyrillic characters. Concatenated (multi-part) messages are supported, though availability varies by sender ID type.
Is mobile number portability available in Serbia?
Yes, Mobile Number Portability (MNP) has been available in Serbia since 2011. RATEL manages the centralized MNP database (prenesibroj.rs), and over 1,025,771 numbers have been ported. The porting process typically takes 2-3 days after technical validation.
What are the best times to send marketing SMS in Serbia?
Send marketing messages between 9:00 AM and 8:00 PM Central European Time (CET/CEST). Avoid sending during national holidays and respect weekend quiet hours (before 10:00 AM and after 6:00 PM).
Which mobile operators support SMS in Serbia?
Serbia has three mobile operators: Telekom Srbija/MTS (46.8% market share), Yettel (31.2%, formerly Telenor Serbia), and A1 Srbija (22%, formerly VIP Mobile). All three operators support SMS messaging with concatenated messages and alphanumeric sender IDs.
Is two-way SMS supported in Serbia?
No, two-way SMS is not supported in Serbia through major SMS providers. For interactive messaging capabilities, you should use alternative communication channels such as mobile apps or messaging platforms.
Can I send SMS to landline numbers in Serbia?
No, sending SMS to landline numbers is not supported in Serbia. Attempts to send messages to landline numbers will result in a 400 response error (code 21614), and no charges will be incurred.
What opt-out message format is required in Serbia?
All marketing messages in Serbia must include the phrase "Odjava STOPMFL na 1599, 0din" for opt-out instructions. The system must support both Latin and Cyrillic scripts for opt-out messages and recognize keywords in both Serbian and English.
How long does sender ID registration take in Serbia?
Alphanumeric sender ID pre-registration in Serbia takes approximately 16 days. While pre-registration is optional, it ensures your sender ID is preserved across all three mobile operators (MTS, Yettel, A1).
What are typical SMS delivery times in Serbia?
Transactional SMS typically delivers within 3-10 seconds during normal network conditions. Promotional SMS may experience 10-60 second delays during peak hours (9-11 AM, 5-7 PM weekdays). Bulk campaigns (1,000+ messages) should allow 5-15 minutes for complete delivery.
How much does SMS cost in Serbia?
Pricing varies by provider and volume but typically ranges from €0.015-0.045 per message for standard delivery. Registered sender IDs incur additional setup (
€20) and monthly (€30) fees. Volume discounts available for 10,000+ messages/month.What should I do if messages aren't being delivered?
Common troubleshooting steps: (1) Verify number format (E.164: +381XXXXXXXXX), (2) Check sender ID registration status, (3) Review message content for blocked keywords, (4) Confirm account balance with provider, (5) Test across all three carriers (MTS, Yettel, A1), (6) Check error logs for specific error codes (see table above).
Recap and Additional Resources
Key Takeaways
Compliance Priorities
Technical Considerations
Next Steps
Implementation Checklist:
Troubleshooting Decision Tree:
Message not delivered:
Low delivery rate (<95%):
High opt-out rate (>2%):
Additional Resources
Contact Information: