Operating Company Number

OCN (Operating Company Number) is a 4-character alphanumeric identifier assigned by NECA (National Exchange Carrier Association) to each US telecommunications carrier. It uniquely identifies the company currently serving a phone number and is more reliable than carrier name strings for any programmatic use — routing tables, 10DLC registration, billing rate lookups, and analytics.

OCN vs. Carrier Name

Carrier names are inconsistent across data sources. The same Verizon Wireless appears as “Verizon Wireless,” “Verizon,” “VZW,” and “Cellco Partnership DBA Verizon Wireless” depending on which system reports it. String matching on carrier names breaks silently — routing logic passes, but the wrong gateway gets the traffic.

The OCN is fixed: Verizon Wireless is always 6006. AT&T Mobility is always 6664. Using OCN in routing tables and registration payloads eliminates name-format mismatches entirely.

Identifier Format Reliable for code? Example
Carrier name Free text No — varies by source “Verizon Wireless,” “VZW,” “Verizon”
OCN 4-char alphanumeric Yes — stable, unique per carrier 6006

How OCN Is Used in NPAC and LRN Routing

NPAC (the Number Portability Administration Center) is the authoritative database for all US phone number assignments. Every record in NPAC includes the serving carrier’s OCN. When a carrier routes a call or SMS, it queries NPAC for the LRN (Local Routing Number) and OCN to determine which network handles delivery.

For ported numbers, the OCN reflects the current serving carrier, not the original assignee. A number originally issued by AT&T and later ported to T-Mobile will return T-Mobile’s OCN. Prefix-based lookup (NPA-NXX) gives you the original assignment only — irrelevant after a port. Over 30% of US numbers have been ported at least once.

SMS aggregators and CPaaS providers use OCN to route outbound messages through the correct inter-carrier gateway. Routing to the wrong gateway is a primary cause of increased filtering and delivery failures on high-volume A2P campaigns.

Why OCN Matters for 10DLC Campaign Registration

The Campaign Registry (TCR) and carrier vetting systems require accurate carrier data for each phone number registered to a 10DLC campaign. Submitting a carrier name string that doesn’t match the format expected by TCR can cause registration rejection or delayed throughput approval.

When registering phone numbers with a messaging service provider for A2P throughput, the registration must align with the number’s actual serving carrier. OCN is the stable, format-agnostic identifier that eliminates manual carrier-name reconciliation errors. For SMS aggregators processing thousands of numbers, automating OCN lookup at registration time is the only scalable approach.

Additionally, MVNOs (Mobile Virtual Network Operators) ride on the infrastructure of a major carrier but have their own OCN. A number on Cricket (an AT&T MVNO) has a different OCN than a number on AT&T Mobility directly. Carrier name alone does not distinguish these; OCN does.

Key OCN Codes for Major US Carriers

OCN Carrier Line Type
6006 Verizon Wireless Wireless
6529 T-Mobile USA Wireless
6664 AT&T Mobility Wireless
7018 AT&T (wireline) Landline
9208 Bandwidth.com VoIP / CLEC
7850 Twilio VoIP / CPaaS

The full NECA OCN table contains thousands of entries covering regional carriers, MVNOs, and VoIP resellers. VRI maintains a current OCN mapping refreshed from live NPAC data.

OCN in VeriRoute Intel API Responses

VRI returns the OCN with every LRN lookup as part of the enhanced_lrn object. No additional parameter is required — pass include_enhanced_lrn: true and OCN is included automatically.

curl -X POST https://api-service.verirouteintel.io/api/v1/lrn \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone_number": "13364086644", "include_enhanced_lrn": true}'

# Response
{
  "phone_number": "13364086644",
  "lrn": "13364086644",
  "lrn_activated_at": "2019-03-15T00:00:00Z",
  "enhanced_lrn": {
    "carrier": "Verizon Wireless",
    "carrier_type": "WIRELESS",
    "ocn": "6006",
    "lata": "424",
    "rate_center": "WINSTN SAL",
    "state": "NC"
  }
}

The ocn field returns the 4-character OCN for the current serving carrier. Use this value directly in routing tables and 10DLC registration payloads instead of the carrier name string to avoid format-mismatch errors.

Building Carrier-Agnostic Routing Logic with OCN

A reliable routing pattern for SMS aggregators is to key the routing table on OCN rather than on carrier name. This handles carrier name variations and ported numbers automatically:

import httpx

def get_ocn(phone: str, api_key: str) -> str:
    resp = httpx.post(
        "https://api-service.verirouteintel.io/api/v1/lrn",
        headers={"Authorization": f"Bearer {api_key}"},
        json={"phone_number": phone, "include_enhanced_lrn": True},
    )
    return resp.json()["enhanced_lrn"]["ocn"]

CARRIER_ROUTES = {
    "6006": "verizon_gateway",
    "6529": "tmobile_gateway",
    "6664": "att_gateway",
}

ocn = get_ocn("13364086644", API_KEY)
gateway = CARRIER_ROUTES.get(ocn, "default_gateway")

Because VRI queries NPAC in real time, this pattern is correct even for recently ported numbers. The OCN reflects the current serving carrier, not the number’s origin.

Look up the carrier OCN for any US phone number. LRN + OCN + carrier name + line type in one API call. $0.0009/lookup, no minimum.

Get Free API Key

Try It

Get phone intelligence data including OCN with VeriRoute Intel.

Get Free API Key

Related Terms