
Compartilhar:
Álvaro é um ex-membro da equipe da Vonage. Ele atuou como defensor dos desenvolvedores na Vonage, com foco em APIs de rede. É apaixonado por experiência do desenvolvedor, APIs e código aberto. Fora do trabalho, é comum encontrá-lo explorando lojas de quadrinhos, participando de festivais de ficção científica e terror ou montando coisas com aqueles famosos blocinhos de plástico.
O que é o formato E.164?
Tempo de leitura: 4 minutos
Este artigo foi atualizado em junho de 2026
A norma E.164 é uma norma internacional que define um esquema de numeração telefônica que garante que cada usuário em todo o mundo tenha um número de telefone único e permite que eles se conectem entre si para fazer chamadas e enviar mensagens. Como resultado, a norma simplifica as chamadas internacionais e reduz o risco de discar o número errado.
De acordo com a norma E.164, existem diferentes formas de especificar um número de telefone: áreas geográficas, serviços globais, redes, etc. Este artigo utilizará a representação padrão para áreas geográficas, já que esse é o formato utilizado nas APIs da Vonage.
O formato E.164
Os números de telefone E.164 contêm no máximo 15 dígitos, excluindo o + e seguem o formato:
[código do país] [código de destino nacional] [número do assinante]
onde:
Código do país (CC) corresponde aos códigos internacionais códigos de chamada internacionais (de 1 a 3 dígitos). Por convenção, os números de telefone internacionais são representados colocando-se o sinal de mais (+) à frente do código do país.
Código Nacional de Destino (NDC) identifica uma área, região ou rede específica dentro do país.
Número de Assinante (SN) é o número de telefone individual atribuído ao usuário. O comprimento do NDC e do SN deve ser 15 menos o comprimento do CC.
Exemplos
Estados Unidos
O número de telefone 212 123 1234 pode ser representado no formato E.164 como +12121231234, em que:
+1 é o código de país dos EUA.
212 é o NDC.
1231234 é o número do assinante.
Reino Unido
O número de telefone 020 1234 5678 pode ser representado no formato E.164 como +442012345678, onde:
+44 é o código de país do Reino Unido.
20 é o NDC de Londres.
12345678 é o número do assinante.
Espanha
O número de telefone 91 234 5678 pode ser representado no padrão E.164 como +34912345678, onde:
+34 é o código de país da Espanha.
91 é o NDC de Madri.
2345678 é o número do assinante.
Alemanha
O número de telefone 030 12345678 pode ser representado no padrão E.164 como +493012345678, em que:
+49 é o código de país da Alemanha.
30 é o NDC de Berlim.
12345678 é o número do assinante.
Por que a norma E.164 é importante?
Muitas de nossas APIs utilizam números de telefone de acordo com a norma E.164. Em particular, as APIs de rede esperam que os usuários das APIs sigam esse formato ao acessar alguns endpoints.
Por exemplo, a API do Identity Insights aceita o número de telefone do assinante no formato E.164. Ela retorna informações como, por exemplo, se o chip foi vinculado recentemente a esse número, bem como a operadora original e a atual.
Como podemos validar um número de telefone E.164?
Como desenvolvedores, é essencial garantir que os dados inseridos pelo usuário estejam corretos. Isso inclui a limpeza, a validação e a confirmação de que o número de telefone segue o formato E.164 antes de realizar qualquer chamada à API. Isso nos poupará tempo e largura de banda.
Uma solução é usar uma das bibliotecas já existentes para ajudar a validar números de telefone.
Talvez seja uma boa ideia verificar o biblioteca se estiver programando em JavaScript. O exemplo a seguir mostra a validação de um número de telefone:
const {phone} = require('phone');
phone('+1(817) 569-8900', {country: 'USA'});
/*
{ isValid: true,
phoneNumber: '+18175698900',
countryIso2: 'US',
countryIso3: 'USA',
countryCode: '+1'
}
/*Se você é um programador de Python, phonenumbers é a biblioteca ideal para você. Veja um exemplo:
import phonenumbers
my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # TrueComo alternativa, você poderia criar seu próprio validador usando expressões regulares. Dependendo da linguagem de expressões regulares, algo mais ou menos assim:
^\+?[1-9]\d{1,14}$O código Python a seguir usa essa expressão regular para validar alguns dados de entrada:
import re
def validate_e164(phone_number):
pattern = r'^\+?[1-9]\d{1,14}$'
return bool(re.match(pattern, phone_number))
# Test the function
test_numbers = [
"+14155552671", # Valid E.164 number (US)
"+442071838750", # Valid E.164 number (UK)
"+493012345678", # Valid E.164 number (Germany)
"+34916543210", # Valid E.164 number (Spain)
"1234567890", # Invalid (missing +)
"+1234567890123456" # Invalid (too long)
]
for number in test_numbers:
print(f"{number}: {validate_e164(number)}") Entre em contato!
Neste artigo, exploramos o formato de números de telefone E.164, sua estrutura e várias abordagens para validar números de telefone antes de enviar solicitações às APIs da Vonage. Como próximo passo, você pode explorar a API Vonage Identity Insights ou outras APIs de rede que utilizam números no formato E.164.
Have a question or want to share what you're building?
Subscribe to the Developer Newsletter
Follow us on X (formerly Twitter) for updates
Watch tutorials on our YouTube channel
Connect with us on the Vonage Developer page on LinkedIn
Stay connected and keep up with the latest developer news, tips, and events.
Compartilhar:
Álvaro é um ex-membro da equipe da Vonage. Ele atuou como defensor dos desenvolvedores na Vonage, com foco em APIs de rede. É apaixonado por experiência do desenvolvedor, APIs e código aberto. Fora do trabalho, é comum encontrá-lo explorando lojas de quadrinhos, participando de festivais de ficção científica e terror ou montando coisas com aqueles famosos blocinhos de plástico.