Serbia Phone Numbers: Format, Area Code & Validation Guide
Complete guide to Serbian phone numbers including +381 country code, area codes, mobile formats (06X), number portability (MNP/FNP), and RATEL regulations for developers and telecom professionals.
Serbia phone numbers use the +381 country code and follow a structured numbering plan managed by RATEL. Learn Serbia's phone number formats, validation rules, and implementation best practices. Build telecommunications systems with proper area codes, mobile prefixes, number portability, and RATEL compliance.
The Serbian Numbering Plan
Serbia's telephone system follows international E.164 standards while accommodating regional variations. Serbian phone numbers are organized by service type and geography, with distinct formats for landlines, mobile numbers, and special services.
Historical Background and Regulatory Oversight
Serbia adopted the +381 country code after Yugoslavia's breakup in the early 1990s. Previously, it used +38 with area codes starting with 1, 2, or 3 for geographic regions.
The Regulatory Agency for Electronic Communications and Postal Services (RATEL) oversees Serbia's numbering plan and ensures compliance with international standards, simplifying integration with global communication systems.
General Number Structure
Serbian phone numbers use this structure:
Country Code: +381 (Serbia's international identifier)
Area/City Codes: 2–3 digit regional identifiers (e.g., 11 for Belgrade, 21 for Novi Sad)
Subscriber Number: 6–9 digits, varying by service type
Service-Specific Prefixes: Special codes for different services (e.g., 06X for mobile, 0800 for toll-free)
Serbian Phone Number Formats and Examples
Complete breakdown of Serbia phone number formats by service type:
These patterns accommodate both domestic and international formats. For production validation of international phone numbers including Serbia (RS), use libphonenumber. It provides comprehensive validation and handles edge cases better than regex. For regional phone number validation across other Balkan countries, check country-specific area code guides and international dialing formats.
Common Validation Errors and Edge Cases
Handle these common scenarios when validating Serbian phone numbers:
Missing leading zero: Domestic numbers require a leading 0; international format uses +381 without the 0
Whitespace variations: Users may insert spaces, hyphens, or parentheses in various positions
Ported numbers: Prefix no longer indicates carrier; query prenesibroj.rs for current operator
Number length variations: Geographic numbers can be 8–10 digits total; mobile numbers are 9–10 digits
Invalid prefixes: Reject numbers starting with 067 (unallocated) or obsolete 2-digit emergency codes
JavaScript
// Example validation with error handlingfunctionvalidateSerbianPhone(number, type = 'mobile') {
// Normalize input: remove whitespace and special charactersconst cleaned = number.replace(/[\s\-\(\)]/g, '');
// Check formatconst patterns = {
mobile: /^(?:0|\+381)6[0-9]{7,8}$/,
geographic: /^(?:0|\+381)(?:[1-9][0-9]{1,2})[0-9]{5,7}$/
};
if (!patterns[type].test(cleaned)) {
thrownewError(`Invalid ${type} number format`);
}
// Check for unallocated prefixesif (type === 'mobile' && cleaned.match(/^(?:0|\+381)67/)) {
thrownewError('Prefix 067 is not allocated');
}
returntrue;
}
Serbian Number Portability and Implementation
Number portability (MNP and FNP) lets users keep their phone numbers when switching providers. Learn how Serbia's number porting system works and get technical implementation details for developers.
Understanding Number Portability in Serbia
RATEL manages number portability through two systems: Mobile Number Portability (MNP) and Fixed-Line Number Portability (FNP). Serbia continuously updates portability rules to streamline the process.
Central Database Integration: Real-time synchronization across operators, automated validation through RATEL's central system, and instant status updates via prenesibroj.rs.
Process Timeline: Request Submission → Technical Validation (1 business day) → Operator Approval → Port Execution (1 business day).
Technical Requirements: Active service status, no outstanding payments, device compatibility, SIM card checks, and user registration for prepaid customers.
Porting Costs and Policies:Per RATEL regulations, service providers must complete porting within one business day for mobile telephony. Users may be charged early termination fees by the donor operator. Common rejection reasons include:
Inaccurate or incomplete request submitted by unauthorized person
Unregistered prepaid user
Number already in porting procedure or ported less than 2 months ago
Outstanding debts with current provider
Number in use with current provider for less than 2 months
Fixed-Line Number Portability (FNP)
FNP became available in April 2014. By end of 2024, operators completed over 450,000 geographic number portings. FNP follows a structured approach to ensure service continuity:
Process Timeline: Request Submission → Technical Validation (2 business days) → Operator Approval → Port Execution (2 business days)
Documentation Requirements: User identity verification, statement of outstanding debts from donor operator (provided within 2 business days), commitment to pay all obligations until disconnection
Technical Differences from MNP: Longer validation period due to infrastructure requirements, fixed telephony systems that don't support portability are excluded, individual numbers from number blocks require withdrawal from the block first
JavaScript
// Check FNP eligibility before initiating porting requestfunctioncheckPortabilityEligibility(phoneNumber) {
const requirements = {
activeService: true,
outstandingPayments: false,
technicalCompatibility: true,
documentationComplete: true,
minimumServicePeriod: true// At least 2 months with current provider
};
returnObject.values(requirements).every(Boolean);
}
Cost Considerations: The contractual relationship between the donor operator and user terminates on the date of successful porting. Pay all obligations to the donor operator, including any early termination fees specified in your contract.
Technical Implementation Deep Dive
Implement number portability with these technical details.
Validation Framework
Build a robust validation framework with:
Format Verification: Ensure the number adheres to the correct format.
Golden numbers (easy-to-remember sequences) require special handling. RATEL allocates these through: Application → Technical Assessment → Market Impact Analysis → Allocation Decision.
Pricing and Acquisition: RATEL allocates golden numbers through competitive bidding or auction. Operators charge premium prices. Legal considerations include fair allocation and preventing number hoarding.
Authentication Methods: Operators use OAuth 2.0 or API key authentication. Rate limits range from 60–100 requests per minute. Error response codes follow HTTP standards:
400 Bad Request – Invalid phone number format or missing parameters
401 Unauthorized – Invalid or expired API credentials
429 Too Many Requests – Rate limit exceeded; includes Retry-After header
500 Internal Server Error – Operator system error; implement retry logic
Yettel Serbia (formerly Telenor): Mobile-focused API endpoints, automated verification, digital transformation tools. Second-largest operator with strong coverage.
A1 Serbia: Converged services API, business integration options, custom validation rules. Third-largest mobile operator.
Visit the RATEL website for detailed API documentation. RATEL transitions from Serbian Certificates of Conformity (CoCs) to EU CE Marking for radio equipment on January 1, 2027, aligning Serbia with EU standards and simplifying compliance.
Frequently Asked Questions About Serbia Phone Numbers
What is Serbia's country code for international calls?
Serbia's country code is +381. When calling Serbia from abroad, dial your international access code (011 from the US, 00 from Europe, or + from mobile devices), then 381, followed by the phone number without the leading 0.
How do I format a Serbian phone number in international format?
Remove the leading 0 and add +381. For example, a Belgrade landline 011 2345678 becomes +381 11 2345678. A mobile number 064 1234567 becomes +381 64 1234567. Always use this format for international compatibility.
What are the main area codes in Serbia?
Belgrade uses area code 11, Novi Sad uses 21, Niš uses 18, and Kragujevac uses 34. Additional major codes include 24 (Subotica), 10 (Pirot), 12 (Požarevac), 13 (Pančevo), and 23 (Zrenjanin). Area codes are 2–3 digits long. When calling domestically, dial 0 followed by the area code and subscriber number. See the complete list of 34 area codes in the Major Serbian Area Codes section above.
How do I identify Serbian mobile numbers?
Serbian mobile numbers always start with 06 followed by an operator-specific digit (06X). Per RATEL's allocation scheme: 060/061/068 (A1 Serbia), 062/063/069 (Yettel), 064/065/066 (mts), 677 (Globaltel MVNO), and 678 (Vectone MVNO). Mobile numbers are 9–10 digits total including the 06 prefix. Note that due to number portability, the prefix may no longer indicate the current operator.
What is RATEL and what does it do?
RATEL (Regulatory Agency for Electronic Communications and Postal Services) is Serbia's telecommunications regulator. RATEL manages the national numbering plan, oversees number portability, enforces compliance standards, and maintains the prenesibroj.rs portal for porting requests.
Can I port my landline number to a different provider in Serbia?
Yes. Fixed-Line Number Portability (FNP) has been available since April 2014. You must have active service, no outstanding payments, and technical compatibility. The process takes 2 business days for validation plus 2 days for execution, longer than mobile porting due to infrastructure coordination.
What is prenesibroj.rs?
Prenesibroj.rs is RATEL's official portal for number portability in Serbia. Use it to check porting eligibility, track request status, verify operator assignments, and access documentation. The portal provides real-time updates on all porting requests.
How do I validate Serbian phone numbers programmatically?
For programmatic Serbia phone number validation, use the libphonenumber library for comprehensive validation. This Google library supports parsing, formatting, and validating international phone numbers in Java, C++, JavaScript, and third-party ports for Python, PHP, C#, Go, and other languages. For basic regex validation, match geographic numbers with ^(?:0|\+381)(?:[1-9][0-9]{1,2})\s?[0-9]{5,7}$ and mobile numbers with ^(?:0|\+381)6[0-9]\s?[0-9]{6,7}$. Always validate both format and operator assignment.
Golden numbers are easy-to-remember sequences (like 064 1234567 or 011 1111111) that hold premium value. RATEL allocates these through a formal process: application, technical assessment, market impact analysis, and allocation decision. They require special handling in telecommunications systems and are often allocated through competitive bidding.
Which mobile operators serve Serbia?
Serbia has three mobile network operators (MNOs): Telekom Srbija (mts) with prefixes 060, 061, 063, 064, 065, 066 and ~37% market share; Yettel Serbia (formerly Telenor, now PPF Group) with prefixes 061, 063, 065; and A1 Serbia with prefixes 062, 064, 065, 069. Three MVNOs also operate: SBB, Globaltel (prefix 677), and Vectone Mobile (prefix 678). Each operator offers APIs for number validation and portability integration.
How long does it take to port a number in Serbia?
Number porting in Serbia takes 2–3 business days total for mobile: 1 day for technical validation plus 1 day for execution. Fixed-line porting takes 4 business days: 2 days for validation plus 2 days for execution. The exact timeline may vary based on technical requirements and operator coordination. Service providers are required by law to complete porting within these timeframes.
Conclusion and Next Steps
You now understand Serbian phone number formats, validation patterns, and number portability. Apply these principles to build robust telecommunications solutions that comply with RATEL regulations.
Next Steps:
Test Your Implementation: Use prenesibroj.rs to verify porting functionality
Review RATEL Documentation: Check www.ratel.rs/en for current regulations and technical specifications
Implement libphonenumber: Download from GitHub for production-ready validation
Serbian landline numbers follow the format 0AA X{6,7} or 0AAA X{5,6}, where AA/AAA represents the 2-3 digit area code and X{6,7} or {5,6} represents the 6-7 or 5-6 digit subscriber number. For example, a Belgrade landline might be 011 2345678, while one in Novi Sad could be 021 345678.
Serbian mobile numbers follow the format 06X X{6,7}, where X represents the mobile operator code and X{6,7} is the 6-7 digit subscriber number. You can use regex, but for production environments, it is recommended to use a dedicated library like libphonenumber for more comprehensive validation.
The country code for Serbia is +381. This code is used for international calls to Serbia and should be placed before the area code and subscriber number.
Serbia has both Mobile Number Portability (MNP) and Fixed-Line Number Portability (FNP), managed by RATEL. These systems allow users to keep their numbers when switching providers and involve real-time database synchronization across operators.
The RATEL Developer Portal (https://www.ratel.rs/en/developers) provides detailed API documentation and implementation guides for integrating with specific Serbian operators. This portal is the best resource for up-to-date information on number portability and other telecommunications regulations.
RATEL (Regulatory Agency for Electronic Communications and Postal Services) oversees Serbia's numbering plan, ensures compliance with international standards, and manages number portability. They provide resources and documentation for developers working with Serbian phone numbers.
Mobile Number Portability (MNP) was implemented in Serbia in 2011. The system features a central database integration for real-time synchronization across operators and automated validation through RATEL's central system.
While regex can be used for basic validation, libphonenumber is recommended for production environments because it provides more comprehensive validation and handles edge cases more effectively. This library is specifically designed for phone number validation and is more robust than regex alone.
Golden numbers (easy-to-remember sequences) in Serbia follow a strict allocation protocol, which includes an application, technical assessment, market impact analysis, and finally an allocation decision. Error handling should be implemented for these special cases.
Security measures for Serbian phone number integration include real-time monitoring for fraudulent activity and blocking protocols for automated threat detection. Manual override capabilities and regulatory compliance checks are also crucial.
The MNP process in Serbia involves Request Submission, Technical Validation (24 hours), Operator Approval (2-3 days), and finally Port Execution. This process is managed by RATEL and ensures a smooth transition between operators.
Belgrade uses area code 11, and Novi Sad uses 21. Area codes were originally structured geographically within the former Yugoslavia, with Serbia primarily using codes starting with 1, 2, or 3.
Eligibility for number portability in Serbia depends on several factors, including active service status, no outstanding payments, technical compatibility, and complete documentation. Consult with the specific operator for detailed requirements and procedures.
Introduction
Serbia phone numbers use the +381 country code and follow a structured numbering plan managed by RATEL. Learn Serbia's phone number formats, validation rules, and implementation best practices. Build telecommunications systems with proper area codes, mobile prefixes, number portability, and RATEL compliance.
The Serbian Numbering Plan
Serbia's telephone system follows international E.164 standards while accommodating regional variations. Serbian phone numbers are organized by service type and geography, with distinct formats for landlines, mobile numbers, and special services.
Historical Background and Regulatory Oversight
Serbia adopted the +381 country code after Yugoslavia's breakup in the early 1990s. Previously, it used +38 with area codes starting with 1, 2, or 3 for geographic regions.
The Regulatory Agency for Electronic Communications and Postal Services (RATEL) oversees Serbia's numbering plan and ensures compliance with international standards, simplifying integration with global communication systems.
General Number Structure
Serbian phone numbers use this structure:
Serbian Phone Number Formats and Examples
Complete breakdown of Serbia phone number formats by service type:
0AA X{6,7}or0AAA X{5,6}06X X{6,7}0800 X{3,9}090X X{4,7}1XXMajor Serbian Area Codes
According to RATEL's official numbering plan, Serbia uses 2–3 digit area codes covering 34 regional networks:
Serbian Mobile Operator Prefixes
Per RATEL's allocation scheme, Serbia mobile numbers begin with 06 followed by operator-specific codes:
Important: Since Mobile Number Portability (MNP) was introduced in 2011, prefixes no longer reliably indicate the current operator. Users retain their original prefix when switching providers.
Emergency and Special Service Numbers
RATEL standardized emergency numbers in 2012, transitioning from 2-digit to 3-digit codes:
Phone Number Validation Patterns for Developers
Use robust validation to ensure data integrity when working with Serbian phone numbers. Here are regex patterns for common number types:
These patterns accommodate both domestic and international formats. For production validation of international phone numbers including Serbia (RS), use libphonenumber. It provides comprehensive validation and handles edge cases better than regex. For regional phone number validation across other Balkan countries, check country-specific area code guides and international dialing formats.
Common Validation Errors and Edge Cases
Handle these common scenarios when validating Serbian phone numbers:
// Example validation with error handling function validateSerbianPhone(number, type = 'mobile') { // Normalize input: remove whitespace and special characters const cleaned = number.replace(/[\s\-\(\)]/g, ''); // Check format const patterns = { mobile: /^(?:0|\+381)6[0-9]{7,8}$/, geographic: /^(?:0|\+381)(?:[1-9][0-9]{1,2})[0-9]{5,7}$/ }; if (!patterns[type].test(cleaned)) { throw new Error(`Invalid ${type} number format`); } // Check for unallocated prefixes if (type === 'mobile' && cleaned.match(/^(?:0|\+381)67/)) { throw new Error('Prefix 067 is not allocated'); } return true; }Serbian Number Portability and Implementation
Number portability (MNP and FNP) lets users keep their phone numbers when switching providers. Learn how Serbia's number porting system works and get technical implementation details for developers.
Understanding Number Portability in Serbia
RATEL manages number portability through two systems: Mobile Number Portability (MNP) and Fixed-Line Number Portability (FNP). Serbia continuously updates portability rules to streamline the process.
Mobile Number Portability (MNP)
Serbia implemented MNP in July 2011. By end of 2024, approximately 1,400,000 mobile numbers had been ported. The system features:
Porting Costs and Policies: Per RATEL regulations, service providers must complete porting within one business day for mobile telephony. Users may be charged early termination fees by the donor operator. Common rejection reasons include:
Fixed-Line Number Portability (FNP)
FNP became available in April 2014. By end of 2024, operators completed over 450,000 geographic number portings. FNP follows a structured approach to ensure service continuity:
// Check FNP eligibility before initiating porting request function checkPortabilityEligibility(phoneNumber) { const requirements = { activeService: true, outstandingPayments: false, technicalCompatibility: true, documentationComplete: true, minimumServicePeriod: true // At least 2 months with current provider }; return Object.values(requirements).every(Boolean); }Cost Considerations: The contractual relationship between the donor operator and user terminates on the date of successful porting. Pay all obligations to the donor operator, including any early termination fees specified in your contract.
Technical Implementation Deep Dive
Implement number portability with these technical details.
Validation Framework
Build a robust validation framework with:
Format Verification: Ensure the number adheres to the correct format.
const validateGeographicNumber = (number) => { const regex = /^0[1-9][0-9]{1,2}\s?[0-9]{5,7}$/; return regex.test(number); };Operator Verification: Identify the current operator, verify service status, and check porting history. Query operator databases or use APIs.
Complete Validation Flow:
async function validateForPorting(phoneNumber) { // Step 1: Format check if (!validateFormat(phoneNumber)) { return { valid: false, error: 'INVALID_FORMAT' }; } // Step 2: Check current operator via RATEL database const operatorInfo = await queryPrenesibroj(phoneNumber); // Step 3: Verify eligibility const eligible = await checkPortabilityEligibility(phoneNumber); // Step 4: Check for recent porting if (operatorInfo.lastPortDate && daysSince(operatorInfo.lastPortDate) < 60) { return { valid: false, error: 'RECENT_PORT' }; } return { valid: true, operator: operatorInfo.currentOperator }; }Golden Numbers and Premium Allocation
Golden numbers (easy-to-remember sequences) require special handling. RATEL allocates these through: Application → Technical Assessment → Market Impact Analysis → Allocation Decision.
Pricing and Acquisition: RATEL allocates golden numbers through competitive bidding or auction. Operators charge premium prices. Legal considerations include fair allocation and preventing number hoarding.
// Detect golden number patterns function isGoldenNumber(number) { const cleaned = number.replace(/\D/g, ''); // Check for repeating patterns const patterns = [ /(\d)\1{5,}/, // 6+ consecutive identical digits /^(\d{3})\1+$/, // Repeating triplets /1234567|7654321/, // Sequential patterns /^(\d)\1{2}(\d)\2{2}$/ // Paired triplets (e.g., 111222) ]; return patterns.some(pattern => pattern.test(cleaned)); }Security Implementation
Protect your system with these security measures:
Real-time Monitoring: Watch for fraudulent activity.
const securityChecks = { fraudDetection: true, numberValidation: true, operatorAuthentication: true, userVerification: true, rateLimiting: true, suspiciousPatternDetection: true };Blocking Protocols: Deploy automated threat detection, manual override capabilities, and regulatory compliance checks.
Fraud Patterns and Mitigation:
// Rate limiting implementation class PortingRateLimiter { constructor() { this.requests = new Map(); } checkLimit(userId, maxRequests = 5, windowHours = 24) { const now = Date.now(); const windowMs = windowHours * 60 * 60 * 1000; if (!this.requests.has(userId)) { this.requests.set(userId, []); } const userRequests = this.requests.get(userId) .filter(timestamp => now - timestamp < windowMs); if (userRequests.length >= maxRequests) { return { allowed: false, retryAfter: windowMs }; } userRequests.push(now); this.requests.set(userId, userRequests); return { allowed: true }; } }Operator Integration Guide
Integrate with specific operators using these guidelines.
API Integration
RATEL regulations require operators to maintain interoperable systems with standardized APIs for number portability.
class PortabilityAPI { constructor(apiKey, environment = 'production') { this.apiKey = apiKey; this.baseUrl = environment === 'production' ? 'https://api.operator.rs/v1' : 'https://sandbox.operator.rs/v1'; this.rateLimits = { requestsPerMinute: 60, burstLimit: 100 }; } async checkEligibility(phoneNumber) { try { const response = await fetch(`${this.baseUrl}/portability/check`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ phoneNumber }) }); if (!response.ok) { throw new Error(`API error: ${response.status}`); } return await response.json(); // Returns: { eligible: boolean, reason?: string, currentOperator: string } } catch (error) { // Retry logic with exponential backoff return this.retryWithBackoff(() => this.checkEligibility(phoneNumber)); } } async initiatePort(phoneNumber, targetOperator, userData) { // Validate request before submission if (!this.validatePortRequest(phoneNumber, userData)) { throw new Error('Invalid port request data'); } const response = await fetch(`${this.baseUrl}/portability/initiate`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ phoneNumber, targetOperator, userIdentity: userData, timestamp: new Date().toISOString() }) }); const result = await response.json(); // Returns: { requestId: string, estimatedCompletion: string, status: string } return result; } async validateNumber(phoneNumber) { const response = await fetch(`${this.baseUrl}/validation/number`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ phoneNumber }) }); return await response.json(); // Returns: { valid: boolean, type: string, operator: string, ported: boolean } } async retryWithBackoff(fn, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { return await fn(); } catch (error) { if (i === maxRetries - 1) throw error; await new Promise(resolve => setTimeout(resolve, Math.pow(2, i) * 1000) ); } } } }Authentication Methods: Operators use OAuth 2.0 or API key authentication. Rate limits range from 60–100 requests per minute. Error response codes follow HTTP standards:
400 Bad Request– Invalid phone number format or missing parameters401 Unauthorized– Invalid or expired API credentials429 Too Many Requests– Rate limit exceeded; includesRetry-Afterheader500 Internal Server Error– Operator system error; implement retry logicService Provider Implementation
Each operator has specific requirements:
MVNO Operators: Three MVNOs operate in Serbia:
Visit the RATEL website for detailed API documentation. RATEL transitions from Serbian Certificates of Conformity (CoCs) to EU CE Marking for radio equipment on January 1, 2027, aligning Serbia with EU standards and simplifying compliance.
Frequently Asked Questions About Serbia Phone Numbers
What is Serbia's country code for international calls?
Serbia's country code is +381. When calling Serbia from abroad, dial your international access code (011 from the US, 00 from Europe, or + from mobile devices), then 381, followed by the phone number without the leading 0.
How do I format a Serbian phone number in international format?
Remove the leading 0 and add +381. For example, a Belgrade landline 011 2345678 becomes +381 11 2345678. A mobile number 064 1234567 becomes +381 64 1234567. Always use this format for international compatibility.
What are the main area codes in Serbia?
Belgrade uses area code 11, Novi Sad uses 21, Niš uses 18, and Kragujevac uses 34. Additional major codes include 24 (Subotica), 10 (Pirot), 12 (Požarevac), 13 (Pančevo), and 23 (Zrenjanin). Area codes are 2–3 digits long. When calling domestically, dial 0 followed by the area code and subscriber number. See the complete list of 34 area codes in the Major Serbian Area Codes section above.
How do I identify Serbian mobile numbers?
Serbian mobile numbers always start with 06 followed by an operator-specific digit (06X). Per RATEL's allocation scheme: 060/061/068 (A1 Serbia), 062/063/069 (Yettel), 064/065/066 (mts), 677 (Globaltel MVNO), and 678 (Vectone MVNO). Mobile numbers are 9–10 digits total including the 06 prefix. Note that due to number portability, the prefix may no longer indicate the current operator.
What is RATEL and what does it do?
RATEL (Regulatory Agency for Electronic Communications and Postal Services) is Serbia's telecommunications regulator. RATEL manages the national numbering plan, oversees number portability, enforces compliance standards, and maintains the prenesibroj.rs portal for porting requests.
How does number portability work in Serbia?
Number portability lets you keep your phone number when switching providers. Submit a request through your new operator, which enters RATEL's central database. Technical validation takes 1 business day for mobile or 2 days for fixed-line, then the port executes within 1–2 additional business days. Check status at prenesibroj.rs.
Can I port my landline number to a different provider in Serbia?
Yes. Fixed-Line Number Portability (FNP) has been available since April 2014. You must have active service, no outstanding payments, and technical compatibility. The process takes 2 business days for validation plus 2 days for execution, longer than mobile porting due to infrastructure coordination.
What is prenesibroj.rs?
Prenesibroj.rs is RATEL's official portal for number portability in Serbia. Use it to check porting eligibility, track request status, verify operator assignments, and access documentation. The portal provides real-time updates on all porting requests.
How do I validate Serbian phone numbers programmatically?
For programmatic Serbia phone number validation, use the libphonenumber library for comprehensive validation. This Google library supports parsing, formatting, and validating international phone numbers in Java, C++, JavaScript, and third-party ports for Python, PHP, C#, Go, and other languages. For basic regex validation, match geographic numbers with
^(?:0|\+381)(?:[1-9][0-9]{1,2})\s?[0-9]{5,7}$and mobile numbers with^(?:0|\+381)6[0-9]\s?[0-9]{6,7}$. Always validate both format and operator assignment.Example using libphonenumber-js:
import { parsePhoneNumber } from 'libphonenumber-js'; try { const phoneNumber = parsePhoneNumber('+381 64 1234567'); console.log(phoneNumber.isValid()); // true console.log(phoneNumber.country); // 'RS' console.log(phoneNumber.nationalNumber); // '641234567' } catch (error) { console.error('Invalid phone number'); }What are golden numbers in Serbia?
Golden numbers are easy-to-remember sequences (like 064 1234567 or 011 1111111) that hold premium value. RATEL allocates these through a formal process: application, technical assessment, market impact analysis, and allocation decision. They require special handling in telecommunications systems and are often allocated through competitive bidding.
Which mobile operators serve Serbia?
Serbia has three mobile network operators (MNOs): Telekom Srbija (mts) with prefixes 060, 061, 063, 064, 065, 066 and ~37% market share; Yettel Serbia (formerly Telenor, now PPF Group) with prefixes 061, 063, 065; and A1 Serbia with prefixes 062, 064, 065, 069. Three MVNOs also operate: SBB, Globaltel (prefix 677), and Vectone Mobile (prefix 678). Each operator offers APIs for number validation and portability integration.
How long does it take to port a number in Serbia?
Number porting in Serbia takes 2–3 business days total for mobile: 1 day for technical validation plus 1 day for execution. Fixed-line porting takes 4 business days: 2 days for validation plus 2 days for execution. The exact timeline may vary based on technical requirements and operator coordination. Service providers are required by law to complete porting within these timeframes.
Conclusion and Next Steps
You now understand Serbian phone number formats, validation patterns, and number portability. Apply these principles to build robust telecommunications solutions that comply with RATEL regulations.
Next Steps:
Troubleshooting Resources:
Check the RATEL website and operator documentation for current information and technical specifications.
Related Resources: