phone number standards
phone number standards
Croatia Phone Numbers: Format, Area Code & Validation Guide
Complete guide to Croatian phone number formats, validation patterns, area codes, and dialing procedures for developers implementing phone number validation.
Croatia Phone Numbers: Format, Area Code & Validation Guide
Quick Reference
- Country: Croatia
- Country Code: +385
- International Prefix: 00
- National Prefix: 0
- Regulatory Authority: Croatian Regulatory Authority for Network Industries (HAKOM)
Overview of Croatia's Phone Number System
Croatia uses country code +385 and follows a structured telephone numbering plan with 9-digit landlines and 10-digit mobile numbers. This comprehensive guide covers Croatian phone number formats, validation patterns, area codes, and dialing procedures for developers, telecom professionals, and system administrators implementing phone number validation in Croatia.
Croatia received its current country code (+385) in 1991 following the breakup of Yugoslavia. The Croatian Regulatory Authority for Network Industries (HAKOM) manages all number allocations and ensures compliance with ITU-T standards E.123 and E.164.
Number Formats in Croatia
General Structure
Croatian phone numbers follow ITU-T Recommendations E.123 and E.164 international standards, consisting of:
- Country Code: +385
- National Subscriber Number (NSN): 8 or 9 digits depending on service type
- Standard Format: Geographic (landline) numbers are 9 digits total including the leading 0; mobile numbers are 10 digits
- International Format: +385 followed by the subscriber number without the leading 0
Detailed Number Format Breakdown
| Type | Format | Example | Description |
|---|---|---|---|
| Geographic | 0XX XXX XXX | 01 234 5678 | Landline numbers (9 digits total). |
| Mobile | 09X XXXX XXX | 091 2345 678 | Mobile numbers (10 digits total). |
| Toll-Free | 0800 XXX XXX | 0800 123 456 | Toll-free services (main toll-free prefix). Also 0801. |
| Premium | 060X XXX XXX | 0601 234 567 | Premium rate services for entertainment or information. |
| Value-Added | 06X XXX XXX | 060 123 456 | Various content services (see Special Service Numbers section). |
| Emergency | XXX or XXXX | 112, 192 | Short codes for emergency services. |
Croatian Geographic Area Codes by Region
HAKOM assigns Croatian telephone area codes that correspond closely to county and regional boundaries. All geographic landline numbers are 9 digits total (including the leading 0).
| County/Region | Area Code | Format | Example |
|---|---|---|---|
| Zagreb (city and county) | 01 (011-019) | 01X XXX XXX | 011 234 5678 |
| Dubrovnik-Neretva | 020 | 020 XXX XXX | 020 123 456 |
| Split-Dalmatia | 021 | 021 XXX XXX | 021 234 567 |
| Šibenik-Knin | 022 | 022 XXX XXX | 022 345 678 |
| Zadar | 023 | 023 XXX XXX | 023 456 789 |
| Osijek-Baranja | 031 | 031 XXX XXX | 031 234 567 |
| Vukovar-Syrmia | 032 | 032 XXX XXX | 032 345 678 |
| Virovitica-Podravina | 033 | 033 XXX XXX | 033 456 789 |
| Požega-Slavonia | 034 | 034 XXX XXX | 034 567 890 |
| Brod-Posavina | 035 | 035 XXX XXX | 035 678 901 |
| Međimurje | 040 | 040 XXX XXX | 040 123 456 |
| Varaždin | 042 | 042 XXX XXX | 042 234 567 |
| Bjelovar-Bilogora | 043 | 043 XXX XXX | 043 345 678 |
| Sisak-Moslavina | 044 | 044 XXX XXX | 044 456 789 |
| Karlovac | 047 | 047 XXX XXX | 047 567 890 |
| Koprivnica-Križevci | 048 | 048 XXX XXX | 048 678 901 |
| Krapina-Zagorje | 049 | 049 XXX XXX | 049 789 012 |
| Primorje-Gorski Kotar | 051 | 051 XXX XXX | 051 234 567 |
| Istria | 052 | 052 XXX XXX | 052 345 678 |
| Lika-Senj | 053 | 053 XXX XXX | 053 456 789 |
Source: HAKOM numbering plan. Zagreb area code (01) is subdivided into 011 – 019 for different geographic zones within the city and county. Some older 8-digit landline numbers may still exist but are no longer issued.
Regular Expressions for Croatian Phone Number Validation
Use these regex patterns to validate Croatian phone numbers in national format (with leading 0):
-
Geographic Numbers (9 digits):
regex^0[1-5]\d{7}$Note: First digit after 0 is 1-5, covering area codes 01-05.
-
Mobile Numbers (10 digits):
regex^09[1-9]\d{7}$Note: Mobile prefix starts with 09, second digit is 1-9 (091-099).
-
Toll-Free Numbers:
regex^080[01]\d{6}$Covers 0800 and 0801 prefixes.
-
Premium Rate Numbers:
regex^060[0-9]\d{6}$ -
Value-Added Services (general):
regex^06[0-9]\d{7}$ -
Emergency Numbers:
regex^1(12|9[2-5]|987)$Covers 112, 192, 193, 194, 195, and 1987.
Edge Cases and Validation Notes:
- Some legacy 8-digit numbers may still be in use but are no longer issued.
- Mobile number portability means prefixes no longer guarantee the carrier.
- Always validate against current HAKOM allocation tables for production systems.
- International format (+385) validation: Remove the + and 385 prefix, then validate the remaining digits.
Code Examples for Croatian Number Validation
Implement these code examples to validate and normalize Croatian phone numbers in your applications.
Python Example:
import re
def validate_croatian_mobile(number):
"""Validate Croatian mobile number in national format."""
pattern = r'^09[1-9]\d{7}$'
return bool(re.match(pattern, number))
def validate_croatian_geographic(number):
"""Validate Croatian geographic (landline) number."""
pattern = r'^0[1-5]\d{7}$'
return bool(re.match(pattern, number))
def normalize_to_e164(number, country_code='385'):
"""Convert Croatian national format to E.164."""
# Remove spaces, hyphens, and leading 0
cleaned = re.sub(r'[\s\-]', '', number)
if cleaned.startswith('0'):
cleaned = cleaned[1:]
return f'+{country_code}{cleaned}'
# Examples
print(validate_croatian_mobile('0912345678')) # True
print(normalize_to_e164('091 234 5678')) # +3859123456678JavaScript Example:
function validateCroatianMobile(number) {
const pattern = /^09[1-9]\d{7}$/;
return pattern.test(number);
}
function normalizeToE164(number, countryCode = '385') {
// Remove spaces, hyphens, and leading 0
let cleaned = number.replace(/[\s\-]/g, '');
if (cleaned.startsWith('0')) {
cleaned = cleaned.substring(1);
}
return `+${countryCode}${cleaned}`;
}Dialing Procedures in Croatia
Domestic Calls
- Landline to Landline (same area): Dial subscriber number only, e.g.,
234 5678 - Landline to Landline (different area): Dial
0+ area code + subscriber number, e.g.,01 234 5678 - Landline to Mobile: Dial mobile prefix + subscriber number, e.g.,
091 234 5678 - Mobile to Mobile: Dial full mobile number, e.g.,
091 234 5678 - Mobile to Landline: Dial
0+ area code + subscriber number
International Calls
- Outgoing: Dial
00, then the country code, area code, and local number. Example:00 44 20 1234 5678for London, UK. - Incoming: Callers from abroad should dial
+385, followed by the area code (without0) and the local number, e.g.,+385 1 234 5678for Zagreb.
Croatia Phone Number Portability
Croatia supports number portability for both mobile and fixed-line numbers, allowing subscribers to retain their phone number when switching operators. Number portability was implemented in Croatia in 2014 to comply with EU Directive 2002/22/EC.
Key Details:
- Eligibility: All mobile and fixed-line subscribers can port their numbers.
- Process Duration: Standard porting must be completed within 1 business day for mobile, 3 business days for fixed-line (per EU regulations).
- Cost: Operators may charge a one-time porting fee. Check with individual operators for current rates.
- Continuity: Your service remains active during the porting process with minimal interruption.
- Verification: Use HAKOM's e-Prenosivost portal to check which network currently holds a number.
Porting Process Steps:
- Contact your new operator and request number porting.
- Provide authorization and account details to your new operator.
- Your new operator submits the porting request to HAKOM central database.
- Your current operator receives notification and validates the request.
- Porting executes within the regulatory timeframe.
- You receive confirmation.
Important Considerations for Developers:
- Don't rely on mobile prefixes alone for carrier identification.
- Query HAKOM's porting database or use HLR lookup for accurate routing.
- Implement fallback logic for SMS routing that accounts for ported numbers.
Major Telecom Operators and Number Ranges
Key Telecom Operators
- T-Hrvatski Telekom (HT): Largest provider, offering extensive landline and mobile services. Part of Deutsche Telekom Group.
- A1 Croatia (formerly VIPnet): Major mobile and fixed-line operator. Part of A1 Telekom Austria Group.
- Telemach Hrvatska (formerly Tele2): Key player in mobile and cable markets. Part of United Group.
Mobile Operator Prefixes
| Operator | Prefix(es) | Service Type | Status |
|---|---|---|---|
| T-Hrvatski Telekom | 098, 099 | Mobile | Active |
| A1 Croatia | 091 | Mobile | Active |
| Tomato (MVNO) | 092 | Mobile | Active (operates on A1 network) |
| Telemach Hrvatska | 095 | Mobile | Active |
| bonbon (MVNO) | 976, 977 | Mobile | Active (operates on HT network) |
| MultiPlus Mobile (Konzum) | 979 | Mobile | Defunct (shut down April 2017) |
Note: Due to number portability (implemented 2014), prefixes of existing numbers no longer guarantee the current carrier. Only newly issued numbers follow the above assignments. Source: HAKOM operator registry, verified 2024.
Special Service Numbers
Croatian special service numbers are regulated by HAKOM and include:
| Service Type | Prefix | Description |
|---|---|---|
| Toll-Free | 0800, 0801 | Free to caller; recipient pays |
| General Content | 060 | Various content services |
| Humanitarian | 0609 | Charitable/humanitarian services |
| Televoting | 061 | TV show voting and participation |
| Adult Content | 064 | Age-restricted content |
| Prize Games | 065 | Competition and lottery services |
| Children Content | 069 | Child-appropriate services |
| Nationwide Numbers | 072 (formerly 062) | Geographic-independent business numbers |
| Personal Numbers | 074, 075 | Personal routing numbers |
| Internet Dial-up | 076, 077 | Legacy internet access (largely obsolete) |
Emergency Numbers
All phones in Croatia, including those without active SIM cards, can dial emergency numbers free of charge.
| Service | Number | Description |
|---|---|---|
| General Emergency | 112 | EU-standard emergency number (all services) |
| Police | 112 or 192 | Law enforcement |
| Fire Brigade | 112 or 193 | Fire and rescue |
| Ambulance | 112 or 194 | Medical emergency |
| Maritime Rescue (MRCC Rijeka) | 112 or 195 | Search and rescue at sea |
| Roadside Assistance (HAK) | 1987 | Croatian Auto Club emergency assistance |
Note: 112 is the preferred number as it routes to all emergency services. Legacy numbers (192-195) are maintained for compatibility.
Regulatory and ITU Standards
Croatia's numbering plan adheres to ITU-T standards:
- E.123: Defines notation for national and international telephone numbers. Specifies formatting conventions (e.g., using spaces, not dots or hyphens; "+385 1 234 5678" for international format).
- E.164: International public telecommunication numbering plan. Specifies the structure and maximum length (15 digits) for international numbers. Croatian numbers comply with this standard.
Practical Implications:
- E.164 format is required for international routing and most VoIP/API integrations.
- E.123 provides display formatting guidance for user interfaces.
- Store numbers in E.164 format (
+385XXXXXXXXX) in databases for consistency. - Display numbers in E.123-compliant national format (
0XX XXX XXX) for local users.
HAKOM oversees the numbering plan, ensuring compliance with international standards and EU telecommunications regulations.
Number Allocation and Management
HAKOM manages all aspects of number allocation in Croatia:
Allocation Process:
- Operators: Must hold a general authorization for electronic communications networks and services.
- Application: Submit your request via HAKOM's e-Operator portal.
- Documentation: Requires business justification, estimated demand, and network capacity evidence.
- Fees: HAKOM charges annual fees for number block allocation (fee schedule published on HAKOM website).
- Numbering Blocks: Typically allocated in blocks of 10,000 (e.g., 091-23X-XXXX).
Special Service Numbers:
- Toll-free (0800) and premium rate (060X) numbers have additional regulatory requirements.
- Providers must comply with consumer protection rules, including maximum per-minute rates.
- Special service providers must register with HAKOM and undergo compliance review.
Number Conservation:
- HAKOM monitors utilization rates and may reclaim unused number blocks.
- Operators must report usage statistics quarterly.
- Unused blocks can be reassigned to meet demand.
Technical Restrictions and Special Cases
VoIP and Non-Geographic Numbers:
- Nationwide Numbers (072): Non-geographic numbers that can ring anywhere in Croatia, commonly used by businesses for unified national presence
- Personal Numbers (074, 075): Follow-me numbers that redirect to user-specified destinations
- VoIP Integration: VoIP providers must obtain number blocks from HAKOM; numbers appear as standard Croatian numbers to callers
IoT and M2M Numbering:
- Croatia follows EU guidelines for IoT/M2M services
- Dedicated number ranges can be allocated for large-scale IoT deployments
- M2M numbers typically use mobile prefixes (09X) but may have restricted routing
Golden Numbers and Premium Allocations:
- Numbers with memorable sequences (e.g., 091-1111-111, 091-2345-678) may be auctioned by operators
- Premium fees apply; prices vary by operator and number desirability
- Business customers often request these for marketing purposes
Restricted and Reserved Ranges:
- Certain number patterns are reserved for future services or regulatory purposes
- Numbers used for testing and network diagnostics are blocked from assignment
- HAKOM maintains a public database of reserved ranges
Number Blocking and Blacklisting:
- Operators can block numbers for non-payment, fraud, or abuse
- HAKOM operates the "NE ZOVI" (Do Not Call) registry for marketing call opt-outs
- Regulatory restrictions apply to certain value-added service prefixes
Technical Considerations for Developers
For developers and system administrators working with Croatian phone numbers, consider:
Validation Best Practices:
- Use the provided regex patterns for format validation.
- Validate number length: 9 digits for geographic, 10 for mobile (in national format).
- For international format, expect 12 – 13 digits (including +385).
- Test edge cases: legacy 8-digit numbers, spaces, hyphens, parentheses.
- Reject invalid prefixes and number ranges not allocated by HAKOM.
Normalization:
- Store numbers in E.164 format (
+385XXXXXXXXX) for consistency. - Remove all formatting characters (spaces, hyphens, parentheses) before storage.
- Strip leading 0 when converting national to international format.
- Add leading 0 when converting international to national format for display.
Portability and Routing:
- Implement logic to handle number portability.
- Don't hard-code operator mappings based on prefixes.
- Query HAKOM porting database or use HLR (Home Location Register) lookups for accurate routing.
- Cache routing information with appropriate TTL (time-to-live) to minimize lookups.
Error Handling:
- Return clear validation error messages (e.g., "Invalid mobile prefix" vs. generic "Invalid number").
- Handle international format variations (with/without +, with 00 prefix).
- Provide fallback for ambiguous input (e.g., ask the user to confirm country).
Testing Strategies:
- Test with valid numbers from each prefix range (091 – 099, 01 – 05X, 0800, etc.).
- Test invalid patterns (wrong length, invalid prefixes, non-numeric characters).
- Test international format variations (+385, 00385, 385).
- Use HAKOM test numbers if available (consult operator documentation).
Performance and Scalability:
- Index phone number columns in databases (E.164 format recommended).
- Use VARCHAR(15) or equivalent for E.164 numbers (covers maximum ITU length).
- For bulk validation, consider batch processing and parallel validation.
- Cache HAKOM numbering plan data locally and update periodically.
API Integration:
- When integrating with SMS APIs (e.g., Twilio, Vonage), always use E.164 format.
- Handle rate limiting and retry logic for number lookup services.
- Monitor for changes in HAKOM numbering plan and update validation rules accordingly.