Step 1

Pick one target format: E.164

A phone column becomes useful to software when every row is written the same way. The common target is the international format defined by ITU-T Recommendation E.164, the international public telecommunication numbering plan. In storage form it is a plus sign, the country calling code, and the national significant number, with no spaces, dashes, or brackets: +12025550143, +442079460321.

E.164 caps an international number at 15 digits, counting the country code but not the plus sign. Country codes are one to three digits long, and none begins with 0. Those two facts already catch a surprising number of bad rows: a value with 16 or more digits after the plus is not a single phone number, and +0... is never a valid start.

Keep the readable form for display only. Messaging platforms, CRMs, and dialers generally compare numbers as strings, so (202) 555-0143 and +1 202-555-0143 look like two different contacts until both are reduced to the same E.164 string.

Step 2

Add the country code and drop the national trunk prefix

Most contact lists mix numbers written for local dialling with numbers written internationally. A local number has no country code, so you must state which country it belongs to. In the CSV phone validator that is the default country setting, and the report counts how many rows relied on it so the assumption stays visible.

Many national plans use a trunk prefix, often 0, that is dialled inside the country but is not part of the international number. When you add the country code, that prefix is removed: a number written nationally as 020 7946 0321 is +44 20 7946 0321 internationally. Not every plan works that way, and some keep a leading 0 after the country code, so check the rule for each country rather than stripping zeros everywhere. The ITU publishes the national numbering plans that administrations notify to it.

The validator encodes trunk handling only for the countries in its list. Where a rule is uncertain, for example a possible carrier-selection code or a legacy dialling prefix, it normalizes conservatively and raises a review instead of silently guessing.

Step 3

Convert international call prefixes to a plus sign

People also type numbers the way they dial them from abroad: 00 44 20 7946 0321 in much of the world, or 011 44 20 7946 0321 from the United States and Canada. The 00 or 011 is a dialling instruction, not part of the number. E.164 storage replaces it with the plus sign.

Be careful with 011 outside North America. In some national plans a local number can legitimately begin with 011, so the validator treats 011 as an international prefix only when the default country is a +1 country. A leading 00 is always treated as an international prefix.

After conversion, the digits after the plus are checked like any other international number: the country code must not start with 0 and the total must stay within 15 digits.

Step 4

Check +1 numbers against the North American plan

Numbers with country code 1 belong to the North American Numbering Plan. According to NANPA, they are ten-digit numbers in the form NXX-NXX-XXXX: a three-digit area code (NPA), a three-digit central office code, and a four-digit line number, where N is any digit from 2 to 9 and X is any digit from 0 to 9.

That gives three deterministic checks. A +1 number with anything other than ten digits after the country code is wrong. An area code starting with 0 or 1 is wrong. A central office code starting with 0 or 1 is wrong. A national 11-digit number that starts with 1 is the long-distance form, and the leading 1 is removed before the check.

NANPA's abbreviated codes page lists N11 codes such as 211, 311, 411, 611, 711, 811, and 911 for special services. A list row with an N11 pattern in the area or office code deserves a second look, so the validator flags it as a review rather than a blocker.

Step 5

Flag fictional 555 numbers

NANPA's 555 line numbers page states that the fictitious, non-working numbers 555-0100 through 555-0199 remain reserved for entertainment and advertising. A real customer list should not contain them, but test data, demos, and form spam often do.

The validator flags any +1 number whose office code is 555 and whose line number falls in 0100-0199. It is a review, not a blocker, because sample files and staging data use the range on purpose. The same page lists 555-1212 for directory assistance and 555-4334 as assigned for national use; other 555 line numbers are not flagged.

Use the review to decide whether the row belongs in a production import at all.

Step 6

Avoid the Excel scientific-notation trap

The most damaging phone-column problem happens before any validation: a spreadsheet opens the CSV, decides that a column of digits is a column of numbers, and stores each value as a number. Long values are then displayed in scientific notation, such as 1.20255E+11. If the file is saved again as CSV, that display text can be written back into the file.

Scientific notation with six significant digits cannot represent a ten- or twelve-digit phone number. The missing digits are not hidden; they are gone. No formula can restore them, which is why the validator treats a scientific-notation cell as a blocker and tells you to recover the number from the original source system.

The same conversion silently removes leading zeros and a leading plus sign. A cell that should read 07700 900123 becomes 7700900123. When a digits-only cell is missing the trunk 0 that its country normally shows, the validator raises a lost-leading-zero review, because the number may still be correct in national significant form.

Step 7

Import phone columns as text

The fix is to stop the conversion at import time. Instead of double-clicking a CSV, use the spreadsheet's import-from-text or data import feature, select the phone column in the preview, and set its column type to Text before finishing. Do the same for postal codes and IDs that have leading zeros.

If a column was already converted, formatting the cells as Text afterwards does not bring digits back. Re-import from the original export with the column typed as Text. When you must hand-edit numbers in a spreadsheet, set the column to Text first and then type or paste the values, so the plus sign and leading zeros are kept as characters.

Finally, save as UTF-8 CSV and check the file in a text editor or in the CSV viewer before importing it elsewhere. Related guides: keeping leading zeros and preventing scientific notation.

Step 8

Separate extensions and choose E.164 or a tel URI

Office numbers often carry an extension: (213) 555-0177 x204, ext. 42, or #15. An extension is not part of the E.164 number, and gluing its digits on can push the total past 15 or create a different number. Move it into its own column.

If a system wants a link rather than a bare number, RFC 3966 defines the tel URI. A global number starts with the plus sign, visual separators are limited to hyphens, periods, and parentheses, spaces are not allowed, and an extension is written as the ;ext= parameter. The RFC's own example is tel:+1-201-555-0123.

The validator can output either form. In tel URI mode it writes tel:+12135550177;ext=204 and still keeps the extension column, so downstream tools that ignore URI parameters do not lose it.

Step 9

Remove duplicates after normalization, not before

Two rows that look different can be the same number: 202-555-0101 with a US default and +1 202 555 0101. Deduplicate on the normalized value, never on the raw text, or both rows survive and a person gets two messages.

The validator keys each row on the normalized number plus extension. An exact repeat is a blocker for the clean list: the first row stays and the repeat moves to the flagged list with the earlier row number. The same number with a different extension is a review, because a shared switchboard with separate extensions is legitimate.

Decide which duplicate wins before importing. The clean list keeps source order, so the earliest row is the one retained.

Step 10

Know what a format check cannot prove

A number that passes every rule here is well formed. It is not proven to be assigned to a subscriber, reachable, a mobile line, or owned by the person in the row. Numbers are reassigned and ported, and none of that is visible in a CSV. The validator makes no carrier, HLR, or line-type lookup, and it does not consult any do-not-call registry.

Calling and texting also depend on consent and local rules that a file cannot show. That is why the clean and flagged downloads require one explicit acknowledgment: a well-formed number is not proof it is assigned, reachable, or consented for calls/SMS.

Keep the counts-only report with your import notes. It records how many rows were normalized, flagged, or relied on the default country, without repeating any number.

Common questions
  • *

    What is E.164 format for a phone number?

    E.164 is the ITU-T international numbering plan. Written for machines, a number is a plus sign, the country calling code, and the national significant number with no spaces or punctuation, for example +12025550143. The whole number is at most 15 digits.

  • *

    Does this validator upload my phone list?

    No. Parsing, normalization, checks, masked evidence, and downloads all happen in the current browser tab. No number is sent to a carrier, lookup service, or csvtodashboard.

  • *

    Does a valid result mean the number works?

    No. The tool checks structure only. A well-formed number is not proof it is assigned, reachable, or consented for calls or SMS, and no carrier, HLR, or line-type lookup is made.

  • *

    Why does Excel show my phone numbers as 1.23457E+11?

    The column was stored as a number instead of text. Scientific notation in a saved CSV means digits were rounded away, so the original number must be recovered from the source system, not repaired from the file.

  • *

    How should extensions be stored?

    Keep the extension out of the main number. The validator moves ext., x, or # extensions into a separate column; in an RFC 3966 tel URI the extension becomes the ;ext= parameter.

  • *

    What happens to numbers without a + country code?

    You choose a default country. The validator removes that country's national trunk prefix where its rule is known, adds the calling code, and counts how many rows relied on the default.

  • *

    Why is 555-0100 through 555-0199 flagged?

    NANPA reserves 555-0100 through 555-0199 for fictitious use in entertainment and advertising, so a +1 number in that range is flagged for review rather than treated as a real contact.

  • *

    Are duplicate numbers removed?

    Exact duplicates after normalization, including the same extension, are blocked from the clean list and kept in the flagged list. The same number with a different extension is a review.

Keep going