phone number standards
phone number standards
North Carolina Area Codes & Phone Numbers: Complete 2025 Guide
Complete NC phone number guide: 10 area codes (252, 336, 472, 704, 743, 828, 910, 919, 980, 984), Charlotte & Raleigh area code lookup, validation, porting rules, and NCUC regulations. Expert guide for developers.
North Carolina Phone Numbers: Format, Area Code & Validation Guide
North Carolina has 10 active area codes under the North American Numbering Plan (NANP): 252, 336, 472, 704, 743, 828, 910, 919, 980, and 984. This comprehensive guide covers NC phone number validation, formatting standards, area code lookup by region (Charlotte 704/980, Raleigh 919/984), overlay dialing requirements, FCC number portability rules, and NCUC telecommunications regulations for developers and service providers.
North Carolina Area Codes: Complete List & Coverage Map
North Carolina divides its telecommunications network into 10 active area codes to manage expanding communication requirements and growing demand for phone numbers.
| Area Code | Region | Type | Implementation Date |
|---|---|---|---|
| 252 | Eastern | Geographic | 1998 |
| 336 | Central Piedmont | Geographic | 1997 |
| 472 | Southern Coastal | Overlay | October 7, 2022 |
| 704 | Charlotte Metro | Geographic | 1947 |
| 743 | Central Piedmont | Overlay | May 23, 2016 |
| 828 | Western/Mountains | Geographic | 1998 |
| 910 | Southern Coastal | Geographic | 1993 |
| 919 | Research Triangle | Geographic | 1954 |
| 980 | Charlotte Metro | Overlay | 2000 |
| 984 | Research Triangle | Overlay | April 30, 2012 |
NC Area Code Lookup: Regional Coverage & Cities
-
252 (Eastern Region): Serves northeastern North Carolina, including Greenville, Rocky Mount, Wilson, and coastal communities like the Outer Banks and Elizabeth City. Created in 1998 to relieve numbering pressure on 919.
-
336/743 (Central Piedmont Region): Uses an overlay system covering Greensboro, High Point, and Winston-Salem. Area code 336 launched in 1997 (split from 910). The 743 overlay began on May 23, 2016, after a permissive dialing period (October 24, 2015 – April 23, 2016) when 10-digit dialing became mandatory. Both area codes cover the same geographic area.
Source: North Carolina Utilities Commission (NCUC) – Area Code 743 Implementation
-
704/980 (Charlotte Metropolitan Area): Area code 704, originally covering the entire state in 1947, now serves the Charlotte metro area. The 980 overlay launched in 2000 as North Carolina's first overlay implementation.
-
828 (Western/Mountainous Region): Covers western, mountainous North Carolina, including Asheville and Hickory. Created in 1998 as a split from 704.
-
910/472 (Southern Coastal Plain): Serves southeastern North Carolina, including Wilmington and Fayetteville. Area code 910 launched in 1993 (split from 919). The 472 overlay went live on October 7, 2022, when remaining 910 numbers were projected to exhaust by early 2023. No permissive dialing period was necessary – 10-digit dialing was already required.
Source: WUNC – New Area Code 472 Implementation
- 919/984 (Research Triangle): Covers the Research Triangle region, including Raleigh, Durham, and Chapel Hill. Area code 919 launched in 1954 (split from 704). The 984 overlay went live on April 30, 2012, after a permissive dialing period (October 1, 2011 – March 31, 2012). Originally planned for 2001, the overlay was deferred due to number pooling implementation but became necessary by 2011 due to continued growth and cellular device proliferation.
Source: Wikipedia – Area Codes 919 and 984
North Carolina Phone Number Allocation & Management
North Carolina follows North American Numbering Plan Administration (NANPA) guidelines with state-specific modifications for efficient and equitable distribution of numbering resources.
Rate Centers: Geographic points that define local calling areas and toll boundaries. Each rate center has a unique name and coordinates. Carriers assign phone numbers to specific rate centers, determining local vs. long-distance call classification.
Key Management Principles
-
Verification: Carriers requesting number blocks undergo eligibility assessment, infrastructure capability checks, service area confirmation, and compliance history review.
-
Utilization Monitoring: NANPA and state regulators monitor number utilization rates. Carriers submit monthly reports and quarterly forecasts. Low utilization triggers conservation measures. High utilization qualifies carriers for additional number blocks.
-
Reporting: Carriers submit monthly utilization reports, quarterly forecasts, annual audits, and exception reports for unusual usage patterns.
Conservation Strategies
North Carolina uses several strategies to conserve numbering resources:
- Number Pooling: Allocates numbers in thousand-block increments to minimize fragmentation.
- Rate Center Consolidation: Optimizes rate center boundaries to reduce required blocks.
- Sequential Number Assignment: Assigns numbers sequentially within blocks to maximize utilization.
- Reclamation: Requires carriers to return unused numbers for reassignment.
Premium Rate Services: NC Regulatory Requirements
Premium rate services (e.g., 900 numbers) face stringent consumer protection regulations in North Carolina.
Regulatory Framework
-
Disclosure: Disclose rates before charging with audible and visible notifications in English and Spanish. Provide transparent rate structures.
-
Provider Responsibilities: Register with the North Carolina Utilities Commission (NCUC), submit monthly compliance reports, maintain a consumer complaint resolution system, and monitor service quality.
-
Technical Requirements: Include these elements in premium rate service call flows: initial greeting, rate disclosure, opt-in confirmation, service delivery, duration tracking, and termination notification.
Dialing Requirements in North Carolina (10-Digit Mandatory)
North Carolina requires 10-digit dialing (area code + 7-digit number) for all local calls. This supports the 988 National Suicide Prevention Lifeline, which launched on July 16, 2022. The FCC mandate ensures calls beginning with 9-8-8 route to the crisis hotline instead of being misdialed as local numbers.
Source: FCC – 988 Suicide & Crisis Lifeline Implementation
Call Types
- Local Calls: Dial area code + 7-digit number (e.g., 919-555-1212).
- Long-Distance Calls (within the US): Dial 1 + area code + 7-digit number (e.g., 1-800-555-1212).
- International Calls: Dial 011 + country code + phone number (e.g., 011-44-20-1234-5678 for the UK).
- Toll-Free Numbers: Dial 1 + toll-free code + 7-digit number (e.g., 1-800-555-1212).
North Carolina Phone Number Porting: FCC Rules & Timeline
Number portability lets you keep your phone number when switching service providers. North Carolina follows FCC guidelines under 47 CFR § 52.35.
Key Aspects
-
Carrier Participation: All licensed carriers (wireline, wireless, local, long-distance) must support number porting.
-
Processing Time: Simple ports complete within one business day. Port requests submitted before the cutoff time complete the same business day. Complex ports take 4–7 business days.
| Port Type | Definition | Processing Time |
|---|---|---|
| Simple | Wireline-to-wireline, wireline-to-wireless, wireless-to-wireline, or interconnected VoIP | 1 business day |
| Complex | Multiple lines, mixed services, or special features | 4–7 business days |
Source: 47 CFR § 52.35 – Porting Intervals (Effective August 3, 2009, as amended by FCC 09-41)
- Documentation: Provide valid identification, current service agreement information (account number, billing address), account verification (last four digits of SSN or tax ID), and signed authorization.
Common Port Rejection Reasons:
- Mismatched account information (name, address, account number)
- Outstanding balance with current carrier
- Invalid or expired authorization
- Number not eligible for porting (landline-only numbers)
- Pending service orders or features on the line
North Carolina Telecommunications Regulatory Framework
North Carolina Utilities Commission (NCUC)
The NCUC regulates telecommunications services in North Carolina, overseeing 16 incumbent local exchange companies (ILECs), 162 competing local providers (CLPs), 245 interexchange long distance carriers (IXCs), 44 payphone service providers (PSPs), and 16 shared tenant services providers (STS).
Important: The NCUC does not regulate commercial mobile radio service (including cellular service and paging service), cable providers, satellite providers, or data and internet service providers.
Regulatory Statutes
North Carolina telecommunications regulation is governed by Chapter 62 of the North Carolina General Statutes and NCUC rules including:
- Chapter 17: Provision of Local Exchange and Exchange Access Competition
- Chapter 20: Regulations Concerning the Marketing of Telecommunications Services
- Chapter 21: Discontinuance or Reduction of Telecommunications Services
Source: North Carolina Utilities Commission and NC General Statutes Chapter 62
NCUC Contact Information
For telecommunications inquiries, complaints, or regulatory questions:
- Website: ncuc.gov
- Phone: Contact information available on the NCUC website for specific divisions
- Address: North Carolina Utilities Commission, Raleigh, NC
How to Validate NC Phone Numbers (Developer Guide)
This section provides guidance for building applications with North Carolina phone numbers.
Prerequisites
- NPAC credentials (via iconectiv)
- Familiarity with North Carolina's numbering plan
- Node.js v14+ development environment
- Redis instance (optional, for caching)
NC Phone Number Validation Using Regular Expressions
Use these regular expressions for validation:
const ncNumberRegex = /^\+1(?:\s)?([2-9]\d{2})(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/; // Matches +1 with optional spaces/hyphens
const tollFreeRegex = /^\+1(?:\s)?(800|888|877|866|855|844|833)(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/;
const premiumRateRegex = /^\+1(?:\s)?(900)(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/;
function validatePhoneNumber(phoneNumber, type = 'standard') {
try {
let regex;
switch (type) {
case 'standard': regex = ncNumberRegex; break;
case 'tollfree': regex = tollFreeRegex; break;
case 'premium': regex = premiumRateRegex; break;
default: throw new Error('Invalid validation type. Use "standard", "tollfree", or "premium".');
}
return regex.test(phoneNumber);
} catch (error) {
console.error(`Validation error: ${error.message}`);
return false;
}
}
// Example usage with input sanitization
function sanitizeAndValidate(input) {
// Remove common formatting characters
const cleaned = input.replace(/[\s\-\(\)\.]/g, '');
// Add +1 prefix if missing
const formatted = cleaned.startsWith('+1') ? cleaned : `+1${cleaned}`;
// Validate
if (!validatePhoneNumber(formatted)) {
throw new Error('Invalid phone number format');
}
return formatted;
}Validation Strategy Selection:
- Use regex validation for initial input screening and format checking
- Use NPAC lookup for production systems requiring real-time portability data
- Consider caching NPAC results to reduce API calls and improve performance
NPAC Database Connection
const npacConfig = {
endpoint: process.env.NPAC_API_ENDPOINT,
token: process.env.NPAC_TOKEN,
timeout: 30000,
retryAttempts: 3
};
async function checkPortingStatus(phoneNumber) {
for (let attempt = 0; attempt < npacConfig.retryAttempts; attempt++) {
try {
const response = await fetch(npacConfig.endpoint, {
method: 'POST',
headers: {
'Authorization': `Bearer ${npacConfig.token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ phoneNumber, requestId: generateUniqueId() }),
timeout: npacConfig.timeout
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
// NPAC API response structure:
// {
// phoneNumber: string,
// lrn: string (Location Routing Number),
// spid: string (Service Provider ID),
// status: 'active' | 'pending' | 'disconnected',
// lastPortDate: ISO 8601 timestamp,
// carrier: string
// }
return data;
} catch (error) {
if (attempt < npacConfig.retryAttempts - 1) {
const delayMs = 1000 * (attempt + 1); // Exponential backoff
console.warn(`NPAC lookup attempt ${attempt + 1} failed. Retrying in ${delayMs}ms…`);
await new Promise(resolve => setTimeout(resolve, delayMs));
} else {
throw new Error(`NPAC lookup failed after ${npacConfig.retryAttempts} attempts: ${error.message}`);
}
}
}
}
// Example unique ID generator (replace with your implementation)
function generateUniqueId() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
});
}Performance Considerations:
- Implement Redis caching with 24-hour TTL for NPAC lookups to reduce API calls
- Use rate limiting (100 requests/minute recommended) to avoid API throttling
- Consider batch lookups for bulk validation scenarios
- Monitor NPAC API response times and implement circuit breakers for degraded service
Common NPAC API Errors:
400 Bad Request: Invalid phone number format or missing required fields401 Unauthorized: Invalid or expired API token404 Not Found: Phone number not found in NPAC database429 Too Many Requests: Rate limit exceeded – implement exponential backoff503 Service Unavailable: NPAC service temporarily unavailable – retry with backoff
Troubleshooting
Common Validation Errors:
-
Format Mismatch: Input doesn't match expected E.164 format (+1XXXXXXXXXX)
- Solution: Implement input sanitization to remove formatting characters
- Test: Verify handling of (919) 555-1212, 919.555.1212, 919-555-1212
-
Invalid Area Code: Area code not in North Carolina's active list
- Solution: Maintain updated area code list and validate against it
- Test: Reject 999-555-1212, accept 919-555-1212
-
NPAC Timeout: API request exceeds timeout threshold
- Solution: Increase timeout or implement retry logic with exponential backoff
- Test: Simulate network latency and verify retry behavior
Debugging Strategies:
- Log sanitized input, validation results, and error messages
- Use test phone numbers for development (e.g., 555-0100 to 555-0199)
- Monitor NPAC API response times and error rates
- Implement health checks for NPAC connectivity
Testing Approaches:
- Unit test regex patterns with valid/invalid inputs
- Integration test NPAC connectivity with mock responses
- Load test validation endpoints under peak traffic conditions
- Validate error handling for network failures and timeouts
Consult official NANPA and FCC documentation for the most up-to-date information.
Frequently Asked Questions
What are all North Carolina area codes?
North Carolina uses 10 area codes: 252 (Eastern), 336 (Piedmont Triad), 472 (Southern Coastal overlay), 704 (Charlotte), 743 (Piedmont Triad overlay), 828 (Western), 910 (Southern Coastal), 919 (Research Triangle), 980 (Charlotte overlay), and 984 (Research Triangle overlay). Three overlay pairs exist: 336/743 (Greensboro area), 704/980 (Charlotte area), and 910/472 (Wilmington/Fayetteville area).
When was the 472 area code implemented in North Carolina?
The 472 area code overlay became operational on October 7, 2022, for the 910 area code region covering southeastern North Carolina (Wilmington, Fayetteville). No permissive dialing period was necessary because 10-digit dialing was already mandatory in the region. The overlay was implemented when remaining 910 numbers were projected to exhaust by early 2023.
Do I need to dial 10 digits for local calls in North Carolina?
Yes. Dial area code + 7-digit number for all local calls in North Carolina. This became mandatory to accommodate the 988 National Suicide Prevention Lifeline, which launched on July 16, 2022. The FCC mandate ensures calls beginning with 9-8-8 route to the crisis hotline instead of being misdialed as local numbers.
How long does it take to port a phone number in North Carolina?
FCC regulations (47 CFR § 52.35) require simple ports (wireline-to-wireline or simple intermodal transfers including wireline-to-wireless, wireless-to-wireline, and interconnected VoIP) to complete within one business day. Port requests submitted before the cutoff time complete the same business day. Complex ports involving multiple lines or special services take 4–7 business days.
What is Charlotte NC area code?
Charlotte uses two area codes in an overlay configuration: 704 (original, established 1947) and 980 (overlay, introduced 2000). The 980 overlay was North Carolina's first area code overlay. Both area codes cover the same geographic region, requiring 10-digit dialing for all calls in the Charlotte metro area.
What is Raleigh NC area code?
The Research Triangle region (Raleigh, Durham, Chapel Hill) uses two area codes: 919 (original, established 1954) and 984 (overlay, effective April 30, 2012). The 984 overlay was implemented after a permissive dialing period from October 1, 2011 to March 31, 2012, when 10-digit dialing became mandatory throughout the region.
What is the North Carolina Utilities Commission (NCUC)?
The NCUC is the state regulatory body overseeing telecommunications services in North Carolina. It regulates 16 incumbent local exchange companies (ILECs), 162 competing local providers (CLPs), 245 long distance carriers (IXCs), 44 payphone providers (PSPs), and 16 shared tenant services providers (STS). The NCUC does not regulate cellular service, cable providers, satellite providers, or internet service providers.
How do I validate a North Carolina phone number programmatically?
Use regular expressions to validate North Carolina phone numbers in E.164 format (+1XXXXXXXXXX). Ensure the area code matches one of North Carolina's 10 active area codes (252, 336, 472, 704, 743, 828, 910, 919, 980, 984). For production applications, use a comprehensive phone number validation library like libphonenumber that handles NANP formatting rules, area code verification, and number portability lookups through the NPAC database.