phone number standards
phone number standards
Ireland Phone Numbers: Format, Area Code & Validation Guide
Complete guide to Irish phone numbers (+353) covering formats, validation, GDPR compliance, and implementation with code examples
Ireland Phone Numbers: Format, Area Code & Validation Guide
This comprehensive guide covers everything you need to know about Irish phone numbers (+353) – from understanding area codes and mobile formats to implementing validation rules and ensuring regulatory compliance. Whether you're building telecommunications software, validating user input, or integrating SMS services, this guide provides the technical specifications and code examples you need.
Ireland Phone Number Quick Reference
- Country: Ireland 🇮🇪
- Country Code: +353
- International Prefix: 00
- National Prefix: 0
- Number Length: 7-10 digits (excluding country code)
- Regulatory Authority: Commission for Communications Regulation (ComReg) (https://www.comreg.ie)
- Time Zone: GMT+0 (GMT+1 during Irish Summer Time, late March to late October)
- Domestic Dialing: Include the 0 prefix (e.g., 01 123 4567)
- International Dialing: Replace 0 with +353 (e.g., +353 1 123 4567)
Irish Phone Number Format Explained
Ireland uses the +353 country code and employs a structured numbering system with geographic area codes for landlines and dedicated prefixes for mobile, freephone, and premium services. Understanding these formats is essential for proper validation and routing.
Irish Landline Numbers and Area Codes
Geographic numbers tie to specific regions. Area codes vary in length based on the region's size and population.
| City/Region | Area Code | Format | Example |
|---|---|---|---|
| Dublin | 01 | 01 XXX XXXX | 01 123 4567 |
| Cork | 021 | 021 XXX XXXX | 021 234 5678 |
| Limerick | 061 | 061 XXX XXX | 061 345 678 |
| Galway | 091 | 091 XXX XXX | 091 456 789 |
| Waterford | 051 | 051 XXX XXX | 051 567 890 |
| Drogheda | 041 | 041 XXX XXXX | 041 678 9012 |
| Other regions | 0XX | 0XX XXX XXX(X) | 045 123 456 |
Rural areas typically use 6-7 digits after the area code.
Key Considerations:
- Store the full number including the area code – area code length varies by region
- Always include the area code in your code, even though local dialing may omit it
Irish Mobile Phone Number Format
All Irish mobile numbers follow a consistent 10-digit format beginning with 08, making them easy to identify and validate.
- Format:
08[3-9] XXX XXXX - Example:
087 987 6543
The digits after 08 originally indicated network operators, but number portability makes this unreliable.
Major Mobile Operators:
- Three Ireland
- eir
- Vodafone
- MVNOs: Tesco Mobile, Virgin Mobile, 48 (Three network); GoMo (eir network); Lycamobile (Three); Clear Mobile, An Post Mobile (Vodafone)
Key Considerations:
- Validate the full 10-digit number – don't rely on prefixes to identify operators
- Use real-time number lookup services (like HLR lookups or carrier APIs) for accurate carrier information needed for routing or billing
Special Service Numbers
| Type | Format | Cost | Example |
|---|---|---|---|
| Freephone | 1800 XXX XXX | Free to caller | 1800 123 456 |
| Shared cost | 1850 XXX XXX | Split between caller/receiver | 1850 234 567 |
| Fixed rate | 0818 XXX XXX | Fixed per minute | 0818 345 678 |
| VoIP | 076 XXX XXXX | Varies by provider | 076 456 7890 |
| Premium rate | 15[1-9] XXX XXXX | €0.30–€3.00+ per minute | 1520 567 8901 |
| Emergency | 112 or 999 | Free (works without SIM) | 112 |
Premium Rate Requirements:
ComReg requires services using premium rate numbers to clearly display pricing information and provide opt-out mechanisms.
How to Validate Irish Phone Numbers: Implementation Guide
Implementing robust phone number validation prevents delivery failures and reduces API costs. This section provides production-ready code examples for validating, formatting, and storing Irish phone numbers.
Phone Number Validation Regex Patterns
Use these regular expression patterns to validate Irish phone numbers in both national (0XX) and international (+353) formats:
National Format (with leading 0):
^0[1-9]\d{5,7}$ // Geographic
^08[3-9]\d{7}$ // Mobile
^1800\d{6}$ // Freephone
^1850\d{6}$ // Shared cost
^0818\d{6}$ // Fixed rate
^076\d{7}$ // VoIP
^15[1-9]\d{7}$ // Premium rate
^(112|999)$ // EmergencyInternational Format (E.164):
^\+3531\d{7}$ // Dublin geographic
^\+353[2-9]\d{6,8}$ // Other geographic
^\+35388\d{7}$ // Mobile (88x)
^\+35389\d{7}$ // Mobile (89x)
^\+35383\d{7}$ // Mobile (83x-87x)Python Example:
import re
def validate_irish_mobile(number):
pattern = r'^08[3-9]\d{7}$'
cleaned = re.sub(r'\D', '', number)
return bool(re.match(pattern, cleaned))
def validate_irish_e164(number):
pattern = r'^\+353[1-9]\d{6,8}$'
return bool(re.match(pattern, number))Format Irish Phone Numbers for Display
Format phone numbers consistently for better readability.
function formatIrishNumber(number) {
if (!number) return '';
const cleaned = number.replace(/\D/g, '');
// Handle international format
if (number.startsWith('+353')) {
const national = '0' + cleaned.slice(3);
return formatIrishNumber(national);
}
// Mobile: 087 123 4567
if (cleaned.startsWith('08')) {
return cleaned.replace(/(\d{3})(\d{3})(\d{4})/, '$1 $2 $3');
}
// Geographic: 01 123 4567 or 061 234 567
if (cleaned.startsWith('0')) {
const areaCodeLen = cleaned.charAt(1) === '1' ? 2 : 3;
const pattern = areaCodeLen === 2
? /(\d{2})(\d{3})(\d{4})/
: /(\d{3})(\d{3})(\d{3,4})/;
return cleaned.replace(pattern, '$1 $2 $3');
}
return cleaned;
}Formatting Guidelines:
- Display: Use spaced format (e.g.,
087 123 4567) - Storage: Use E.164 format (e.g.,
+353871234567) - API Submission: Check API documentation – most accept E.164
Store Phone Numbers in E.164 Format
Always store phone numbers in E.164 international format (+353xxxxxxxxxx) to ensure consistency across systems, enable seamless international dialing, and eliminate area code ambiguity.
E.164 Conversion:
function toE164(number) {
const cleaned = number.replace(/\D/g, '');
// Already in E.164
if (number.startsWith('+353')) return number;
// Convert from national format (remove leading 0, add +353)
if (cleaned.startsWith('0')) {
return '+353' + cleaned.slice(1);
}
return '+353' + cleaned;
}Database Schema:
CREATE TABLE contacts (
id UUID PRIMARY KEY,
phone_number VARCHAR(20) NOT NULL, -- E.164 max length is 15, add buffer
INDEX idx_phone (phone_number) -- Index for lookups
);Irish Mobile Number Portability (MNP)
Ireland implemented Mobile Number Portability (MNP) in 2003, allowing users to keep their numbers when switching operators. Prefixes no longer reliably indicate the current carrier.
Use HLR (Home Location Register) lookup services for accurate carrier information:
- Twilio Lookup API
- Telnyx Number Lookup
- Infobip Number Lookup
- OpenRTB HLR lookups
These services query live network databases to return the current operator, number type, and validity status.
GDPR Compliance for Irish Phone Numbers
GDPR Requirements for Processing Phone Numbers
Phone numbers are classified as personal data under GDPR. When collecting or processing Irish phone numbers, you must:
- Obtain Consent: Get explicit, informed consent before collecting phone numbers for marketing
- Document Lawful Basis: Record why you're processing each number (consent, contract, legitimate interest)
- Respect Retention Limits: Delete numbers when no longer needed or when users request erasure
- Honor Erasure Requests: Provide a process for users to request deletion within 30 days
- Implement Security: Encrypt phone numbers in storage and transit
- Enable Portability: Allow users to export their data in a machine-readable format
ePrivacy Directive (Marketing Communications)
Before sending marketing SMS or making promotional calls:
- Obtain prior opt-in consent (double opt-in recommended)
- Provide clear information about message frequency and content
- Include your identity in every message
- Offer easy opt-out in every message (e.g., "Reply STOP to unsubscribe")
- Process opt-outs immediately (within 24 hours maximum)
- Respect quiet hours (avoid calls before 9 AM or after 9 PM)
ComReg Premium Rate Guidelines
- Display per-minute or per-call costs prominently
- Provide a free customer service number
- Implement spending caps for vulnerable users
- Maintain call records for 18 months
Call Recording Regulations
If recording calls:
- Notify callers at the start of the call
- Obtain consent before recording personal conversations
- Store recordings securely with access controls
- Delete recordings according to your retention policy
Compliance Checklist:
- Privacy policy mentions phone number processing
- Consent mechanism documented and auditable
- Opt-out process functional and tested
- Data retention policy defined and enforced
- Security measures implemented (encryption, access controls)
- Staff trained on GDPR and ePrivacy requirements
Official Resources and Further Reading
ComReg and Regulatory Documentation
- ComReg Numbering: https://www.comreg.ie/industry/electronic-communications/numbering/
- National Numbering Scheme: https://www.comreg.ie/publication/national-numbering-conventions/
- Premium Rate Regulation: https://www.comreg.ie/industry/electronic-communications/premium-rate-services/
- GDPR in Ireland: https://www.dataprotection.ie/
Common Troubleshooting Issues
Validation fails for valid numbers:
- Check for hidden characters (spaces, hyphens, parentheses)
- Verify the number is in the expected format (national vs. international)
- Confirm area code length handling for geographic numbers
Formatting produces incorrect output:
- Clean input before formatting (remove all non-digits)
- Handle both national (0) and international (+353) prefixes
- Account for varying local number lengths (6-7 digits)
SMS delivery failures:
- Verify the number is a mobile number (08X prefix)
- Check the number is in E.164 format for API submission
- Confirm the number is active using HLR lookup
- Verify you have the correct operator routing
GDPR compliance concerns:
- Audit your consent collection process
- Review your data retention policy
- Implement opt-out handling
- Document your lawful basis for processing
FAQ
Q: Do I need to support both 112 and 999 for emergency services?
A: 112 is the standard EU emergency number. 999 is maintained for backward compatibility. Both route to the same services.
Q: Can users port landline numbers?
A: Yes, landline number portability is available within the same geographic area.
Q: How do I identify VoIP numbers?
A: VoIP numbers use the 076 prefix. They're non-geographic and may have different routing costs.
Q: What's the difference between 1800 and 1850 numbers?
A: 1800 is freephone (caller pays nothing). 1850 is shared cost (caller and receiver split the cost).
Q: How long until number exhaustion?
A: ComReg monitors capacity. The 08X mobile range has sufficient capacity for the foreseeable future. New prefixes will be allocated if needed.
Communication Platforms
For SMS and voice services to Irish numbers:
- Telnyx: Global coverage, competitive pricing
- Twilio: Extensive API, good documentation
- Vonage (Nexmo): Strong in Europe
- Infobip: Enterprise-focused, high deliverability
- MessageBird: Developer-friendly APIs