phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / Article

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

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

TypeFormatExampleDescription
Geographic0XX XXX XXX01 234 5678Landline numbers (9 digits total).
Mobile09X XXXX XXX091 2345 678Mobile numbers (10 digits total).
Toll-Free0800 XXX XXX0800 123 456Toll-free services (main toll-free prefix). Also 0801.
Premium060X XXX XXX0601 234 567Premium rate services for entertainment or information.
Value-Added06X XXX XXX060 123 456Various content services (see Special Service Numbers section).
EmergencyXXX or XXXX112, 192Short 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/RegionArea CodeFormatExample
Zagreb (city and county)01 (011-019)01X XXX XXX011 234 5678
Dubrovnik-Neretva020020 XXX XXX020 123 456
Split-Dalmatia021021 XXX XXX021 234 567
Šibenik-Knin022022 XXX XXX022 345 678
Zadar023023 XXX XXX023 456 789
Osijek-Baranja031031 XXX XXX031 234 567
Vukovar-Syrmia032032 XXX XXX032 345 678
Virovitica-Podravina033033 XXX XXX033 456 789
Požega-Slavonia034034 XXX XXX034 567 890
Brod-Posavina035035 XXX XXX035 678 901
Međimurje040040 XXX XXX040 123 456
Varaždin042042 XXX XXX042 234 567
Bjelovar-Bilogora043043 XXX XXX043 345 678
Sisak-Moslavina044044 XXX XXX044 456 789
Karlovac047047 XXX XXX047 567 890
Koprivnica-Križevci048048 XXX XXX048 678 901
Krapina-Zagorje049049 XXX XXX049 789 012
Primorje-Gorski Kotar051051 XXX XXX051 234 567
Istria052052 XXX XXX052 345 678
Lika-Senj053053 XXX XXX053 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:

python
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'))      # +3859123456678

JavaScript Example:

javascript
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 5678 for London, UK.
  • Incoming: Callers from abroad should dial +385, followed by the area code (without 0) and the local number, e.g., +385 1 234 5678 for 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:

  1. Contact your new operator and request number porting.
  2. Provide authorization and account details to your new operator.
  3. Your new operator submits the porting request to HAKOM central database.
  4. Your current operator receives notification and validates the request.
  5. Porting executes within the regulatory timeframe.
  6. 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

OperatorPrefix(es)Service TypeStatus
T-Hrvatski Telekom098, 099MobileActive
A1 Croatia091MobileActive
Tomato (MVNO)092MobileActive (operates on A1 network)
Telemach Hrvatska095MobileActive
bonbon (MVNO)976, 977MobileActive (operates on HT network)
MultiPlus Mobile (Konzum)979MobileDefunct (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 TypePrefixDescription
Toll-Free0800, 0801Free to caller; recipient pays
General Content060Various content services
Humanitarian0609Charitable/humanitarian services
Televoting061TV show voting and participation
Adult Content064Age-restricted content
Prize Games065Competition and lottery services
Children Content069Child-appropriate services
Nationwide Numbers072 (formerly 062)Geographic-independent business numbers
Personal Numbers074, 075Personal routing numbers
Internet Dial-up076, 077Legacy internet access (largely obsolete)

Emergency Numbers

All phones in Croatia, including those without active SIM cards, can dial emergency numbers free of charge.

ServiceNumberDescription
General Emergency112EU-standard emergency number (all services)
Police112 or 192Law enforcement
Fire Brigade112 or 193Fire and rescue
Ambulance112 or 194Medical emergency
Maritime Rescue (MRCC Rijeka)112 or 195Search and rescue at sea
Roadside Assistance (HAK)1987Croatian 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.
<Callout type="info"> For the latest telecommunications regulations in Croatia, visit the [Croatian Regulatory Authority for Network Industries (HAKOM)](https://www.hakom.hr). </Callout>