phone number standards

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

Lithuania Phone Number Format: +370 Validation Guide & Area Codes 2024-2025

Complete guide to Lithuanian phone number validation with code examples. Learn the 8→0 prefix transition, area codes, E.164 format, and RRT compliance requirements for developers.

Lithuania Phone Number Format: Complete Validation Guide for Developers

Introduction

Validate Lithuanian phone numbers correctly to ensure your users can receive messages and calls reliably. Failed validations mean lost customers and broken user experiences. This comprehensive guide covers Lithuania's +370 country code, the ongoing prefix transition from "8" to "0" (March 2024 – December 2025), area code structure, Python validation techniques with regex patterns, and Communications Regulatory Authority (RRT) compliance requirements. Learn how to validate Lithuanian mobile numbers, implement E.164 formatting, handle number portability, and integrate with Telia, Bitė, and Tele2 operators.

Quick Reference: Lithuania Phone Number Format

ComponentDetailsExample
Country Code+370+370 612 34567
National Prefix8 or 0 (transition period)0612 34567 or 8612 34567
Standard Length9 digits (with prefix)061234567
IoT/M2M Length12 digits (prefix + 2)021234567890
Mobile Area Code606x xxx xxxx
Landline Area Codes3, 4, 503x xxx xxxx
Emergency Number112112
Transition DeadlineDecember 1, 2025Both 8 and 0 valid until then

Understanding Lithuania's Phone Numbering System

Lithuania's phone numbering system follows the E.164 international standard and is transitioning from the legacy "8" national prefix to the internationally aligned "0" prefix. This modernization improves interoperability with global telecommunications systems and aligns with international dialing conventions used across Europe.

Key Components of a Lithuanian Phone Number

Every Lithuanian phone number comprises three essential parts:

  1. National Prefix: Transitioning from "8" to "0". The transition began March 1, 2024, and both prefixes remain valid until December 1, 2025. Accept both prefixes during this transition period.
  2. Area/Service Code: A 1–3 digit code identifying the geographic region or service type. This code provides crucial routing information:
    • 3, 4, 5: Landline (geographic) numbers
    • 6: Mobile numbers
    • 7: Corporate and state institution numbers
    • 8: Toll-free and shared-cost numbers
    • 9: Premium-rate numbers
    • 1: Network services (e.g., 112, 113, 116xxx, 117, 118, 119)
    • 2: IoT/M2M (Machine-to-Machine) numbers (12 digits total length)
  3. Subscriber Number: A 5–7 digit number unique to each subscriber (or up to 10 digits for IoT/M2M numbers). This is the core identifier within the area code.

Total Length: Standard numbers are 9 digits (including prefix). IoT/M2M numbers starting with "2" are 12 digits.

Lithuania Phone Number Prefix Transition: 8 to 0 (2024-2025)

The transition to the "0" prefix follows a phased approach, with a dual-prefix period enabling smooth migration. Understand these key dates and implications:

  • Dual Prefix Period (March 1, 2024 – December 1, 2025): Both "8" and "0" prefixes are valid. Accept both formats in your systems.
  • New "0" Prefix Only (December 1, 2025 onwards): The "8" prefix will be deactivated. Systems relying solely on the old prefix will fail.

Update your systems to handle both prefixes now to avoid disruptions.

The transition timeline appears below:

mermaid
gantt
    title Prefix Transition Timeline
    dateFormat  YYYY-MM-DD
    section Transition
    Dual prefix period    :2024-03-01, 2025-12-01
    New '0' prefix only   :crit, 2025-12-01, 2026-01-01

How to Validate Lithuanian Phone Numbers: Implementation Guide

This section provides practical code examples and best practices for implementing Lithuanian phone number validation in your applications. Whether you're building a mobile app, web form, or API service, these validation techniques will help you handle Lithuanian phone numbers correctly.

Python Validation Function for Lithuanian Numbers

Build robust validation logic to handle both current and new prefixes, plus the special case of IoT/M2M numbers. This Python validation function demonstrates best practices for validating Lithuanian phone numbers during the transition period:

python
def validate_lithuanian_number(phone_number):
    """
    Validates Lithuanian phone numbers, accommodating the transition period.
    Handles both '8' and '0' prefixes, checks for 9-digit length (standard)
    or 12-digit length (IoT/M2M numbers starting with 2).
    """
    cleaned_number = phone_number.replace(" ", "").replace("+370", "0")  # Remove spaces and normalize international format

    # Check for IoT/M2M numbers (starting with 2, 12 digits total)
    if cleaned_number.startswith(('82', '02')) and len(cleaned_number) == 12:
        return True

    # Check for standard numbers (9 digits)
    if not (cleaned_number.startswith(('8', '0')) and len(cleaned_number) == 9):
        return False

    return True

# Test cases
print(validate_lithuanian_number("861234567"))  # True (mobile, old format)
print(validate_lithuanian_number("061234567"))  # True (mobile, new format)
print(validate_lithuanian_number("+37061234567"))  # True (international format)
print(validate_lithuanian_number("821234567890"))  # True (IoT/M2M, old prefix)
print(validate_lithuanian_number("021234567890"))  # True (IoT/M2M, new prefix)
print(validate_lithuanian_number("86123456"))   # False (incorrect length)
print(validate_lithuanian_number("961234567"))   # False (invalid prefix)

This code cleans the input by removing spaces and normalizing the international format (+370). It checks for IoT/M2M numbers (12 digits starting with 2) before validating standard 9-digit numbers. Add more specific validation based on area codes and service types for enhanced accuracy.

Enhance this function for production use:

  • Handle None and empty strings
  • Normalize input formats (parentheses, dashes, dots)
  • Validate specific area codes
  • Add type hints and error logging

Regex Patterns for Lithuanian Phone Number Validation

Implement regular expressions for granular validation of different Lithuanian phone number types. These regex patterns help you validate mobile numbers, landlines, corporate numbers, toll-free numbers, and premium-rate services:

python
import re

MOBILE_PATTERN = r'^[80]6\d{7}$'
LANDLINE_PATTERN = r'^[80][3-5]\d{7}$'
CORPORATE_PATTERN = r'^[80]7\d{7}$'
TOLLFREE_PATTERN = r'^[80]8\d{7}$'
PREMIUM_PATTERN = r'^[80]9\d{7}$'
IOT_M2M_PATTERN = r'^[80]2\d{10}$'

def validate_number_type(phone_number, pattern):
    """Validates a phone number against a specific pattern."""
    return re.match(pattern, phone_number) is not None

# Test cases
print(validate_number_type("061234567", MOBILE_PATTERN))  # True
print(validate_number_type("031234567", LANDLINE_PATTERN))  # True
print(validate_number_type("071234567", CORPORATE_PATTERN))  # True
print(validate_number_type("021234567890", IOT_M2M_PATTERN))  # True

This example validates against specific number formats. Expand this to include other number types and combine patterns for comprehensive validation.

Best Practices for Error Handling

Users will enter numbers with invalid prefixes or incorrect lengths. Provide clear, actionable error messages:

Bad Error MessageGood Error Message
"Invalid number""Your phone number must start with 0 or 8 and contain 9 digits. Example: 061234567"
"Error""Phone number too short. Lithuanian numbers need 9 digits. You entered 7 digits."
"Validation failed""Invalid prefix. Use 0 or 8 (transition period until December 2025). Example: 0612 34567"

Log validation failures to identify systemic problems. Track which error types occur most frequently to improve your user interface.

Mobile Number Portability (MNP) in Lithuania

Lithuania operates a robust Mobile Number Portability (MNP) system. Users can switch operators (Telia, Bitė, Tele2) while keeping their existing number. Design your system to handle ported numbers correctly.

To determine the current operator for a given number, integrate with an MNP database or service. The MNP system processes requests quickly and includes automated verification. Contact operators directly for API access, authentication requirements, and documentation.

MNP integration checklist:

  • Cache MNP lookup results to avoid rate limits
  • Set appropriate cache expiration (24–48 hours)
  • Implement fallback logic when MNP service is unavailable
  • Log lookup failures for monitoring

RRT Compliance Requirements for Lithuanian Telecommunications

The Communications Regulatory Authority (RRT – Ryšių reguliavimo tarnyba) is Lithuania's telecommunications regulator. All systems handling Lithuanian phone numbers must comply with these RRT regulations:

  • Number portability support: Handle ported numbers correctly across operators
  • Prioritized routing for emergency services: Never block or deprioritize emergency numbers (112, 113, 116xxx, 117, 118, 119)
  • Format validation: Validate all numbers according to the E.164 format
  • GDPR compliance: Obtain explicit consent before storing phone numbers. Document data retention periods and deletion procedures.
  • Documentation: Maintain records of your compliance efforts for audits

Visit the RRT website (https://www.rrt.lt/en/) for detailed regulatory requirements. Consult legal counsel to understand penalties for non-compliance specific to your jurisdiction.

Integrating with Lithuanian Telecom Operators

Lithuania's telecommunications market includes three major operators: Telia, Bitė, and Tele2. Each operator offers technical integration options:

Integration MethodUse CaseAdvantages
REST APIsStandard integrationSimple, widely supported, easy to test
SOAPLegacy systemsEnterprise features, formal contracts
WebSocketsReal-time updatesLow latency, push notifications
GraphQLComplex queriesFlexible data fetching, reduced over-fetching

Contact operators directly for documentation, authentication methods, rate limits, and pricing:

  • Telia: Business integration team
  • Bitė: Developer portal
  • Tele2: API documentation

Technical details vary based on your service level agreement.

Lithuania Emergency Number Handling

Emergency numbers in Lithuania require special handling. Identify these numbers and route them with the highest priority.

Lithuanian Emergency and Special Service Numbers:

  • 112: National emergency number (universal emergency services)
  • 113: Non-emergency medical assistance
  • 116xxx: Harmonized social value services (e.g., 116 000 for missing children hotline)
  • 117: Telecommunication helpline
  • 118: Directory assistance services
  • 119: Fault registration and technical support

Implementation example:

python
EMERGENCY_NUMBERS = {'112', '113', '117', '118', '119'}
EMERGENCY_PREFIX = '116'  # For 116xxx services

def is_emergency_number(phone_number):
    """Detect Lithuanian emergency and special service numbers."""
    cleaned = phone_number.replace(' ', '').lstrip('0').lstrip('8')
    return cleaned in EMERGENCY_NUMBERS or cleaned.startswith(EMERGENCY_PREFIX)

def route_call(phone_number):
    """Route calls with priority for emergency numbers."""
    if is_emergency_number(phone_number):
        return route_with_priority(phone_number, priority='CRITICAL')
    return route_standard(phone_number)

Emergency numbers must never be blocked or deprioritized, as mandated by RRT regulations.

Frequently Asked Questions About Lithuanian Phone Numbers

What is Lithuania's country code for international calls?

Lithuania's country code is +370. When calling from abroad, dial +370 followed by the subscriber number (without the leading 0 or 8). Example: +370 612 34567.

How long are Lithuanian phone numbers?

Standard Lithuanian phone numbers are 9 digits including the national prefix (0 or 8). IoT/M2M numbers starting with 2 are 12 digits long. When formatted internationally with +370, add 3 digits for a total of 12 digits (standard) or 15 digits (IoT/M2M).

What is the Lithuania mobile phone area code?

Mobile phone numbers in Lithuania start with 6 as the area code. Format: 06x xxx xxxx or 86x xxx xxxx during the transition period. Example: 0612 34567.

When does Lithuania's phone number prefix change from 8 to 0?

The transition started March 1, 2024. Both prefixes (8 and 0) work until December 1, 2025. After that date, only the 0 prefix will be valid. Update your systems now to handle both formats.

How do I format a Lithuanian phone number in E.164 format?

E.164 format for Lithuanian numbers: +370 followed by the subscriber number without the national prefix. Example: +370612345678 (mobile) or +370312345678 (Vilnius landline). Remove spaces for machine-readable format.

Do Lithuanian phone numbers support number portability?

Yes, Lithuania has a robust Mobile Number Portability (MNP) system. Users can switch between Telia, Bitė, and Tele2 while keeping their number. The process is fast, free for consumers, and includes automated verification.

What are the area codes for major Lithuanian cities?

Major city area codes (landline):

  • Vilnius: 05 or 852 (old format)
  • Kaunas: 037 or 837 (old format)
  • Klaipėda: 046 or 846 (old format)
  • Šiauliai: 041 or 841 (old format)

Mobile numbers use area code 6 regardless of location.

Conclusion

Follow these guidelines to integrate with Lithuania's phone numbering system correctly. Update your systems to accept both "8" and "0" prefixes before the transition completes on December 1, 2025. Prioritize RRT regulatory compliance, validate the new IoT/M2M format, use proper E.164 formatting, and implement clear error handling.

Key takeaways:

  • Accept both 8 and 0 prefixes until December 2025
  • Validate 9-digit standard numbers and 12-digit IoT/M2M numbers
  • Route emergency numbers (112, 113, 116xxx, 117, 118, 119) with highest priority
  • Provide clear, actionable error messages
  • Cache MNP lookups to avoid rate limits

For related guides on international phone number validation, see our comprehensive resources on E.164 phone number format, phone number lookup services, and international SMS compliance best practices.