How-to

How to format an international phone number (E.164, +country, no dashes)

Every messaging link — WhatsApp, Viber, Telegram — expects E.164. Here's how to write a phone number so it works everywhere.

By RingLink_HK··5 min read

Every reliable click-to-chat link — wa.me, viber://, signal.me, t.me, zalo.me — expects a phone number in the same format: E.164. If you hand a link the number in the wrong shape, it silently fails. This is the #1 reason people say "the link didn't work."

What E.164 is

E.164 is the ITU's international numbering standard. A conforming number is:

  • Up to 15 digits total (including country code).
  • Country code first (1 to 3 digits).
  • Optionally prefixed with +.
  • No spaces, no dashes, no parentheses, no dots.

Examples:

  • UK mobile: +447700900123
  • US mobile: +14155552671
  • Hong Kong mobile: +85298765432
  • India mobile: +919876543210
  • Brazil mobile: +5511987654321

The plus sign: sometimes yes, sometimes no

Different link formats disagree on whether the plus sign belongs:

  • wa.me/no plus sign. wa.me/85298765432.
  • viber://chat?number=plus sign required. viber://chat?number=+85298765432.
  • signal.me/#p/plus sign required.
  • zalo.me/no plus sign.
  • tel: (dial pad) — plus sign optional but strongly recommended for international dialing.

Ringlink handles this for you. Internally we always store numbers in E.164 with the plus sign, and format per-link at launch time.

The trunk prefix trap

Most countries have a "trunk prefix" — a leading digit or two you dial for domestic calls but drop for international. This is where users get it wrong most often:

  • UK: domestic 07700 900123 → international +44 7700 900123. Drop the leading 0.
  • France: 06 12 34 56 78 +33 6 12 34 56 78. Drop the 0.
  • Germany: 0171 1234567 +49 171 1234567. Drop the 0.
  • Russia: 8 (925) 123-45-67 +7 925 123 45 67. Drop the 8, add +7.
  • Italy: 333 1234567+39 333 1234567. Keep the leading digit — Italy doesn't use trunk zeros for mobiles.

North American Numbering Plan (NANP)

The US, Canada, most of the Caribbean, and some Pacific territories all share country code +1. Numbers look like area-code + 7 digits: +14155552671. There's no trunk prefix to drop — the "1" you dial for long distance IS the country code.

Special numbers to avoid in links

  • Toll-free numbers (US 800, UK 0800, etc.) — many don't route from outside the country. Don't put them in international WhatsApp links.
  • Short codes — 4–6 digit codes used for SMS services (like 32665 for Facebook). Not phone numbers; won't work in any messenger link.
  • Premium-rate numbers — often can't receive messages at all.

How to test a number quickly

  1. Type it into Ringlink with the country flag picked.
  2. If Ringlink accepts it, it's E.164-valid.
  3. If a messenger tile fails to open, the specific app doesn't have that number registered — but the format is right.

Storing numbers programmatically

If you're building a system that will eventually feed into messenger links, always store numbers as E.164 strings with the plus sign. Every mainstream phone-number library (Google's libphonenumber, the many JavaScript ports) accepts E.164 as input and can format it for display. Store canonical; format for humans; never the other way around.

Related guides

Try it now

Open Ringlink, paste any phone number, and tap the app you want — no contact save required.

Open Ringlink →

Questions? Email cs@ringlink.app or visit our contact page.