
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.
Tem alguma dúvida ou quer compartilhar o que está criando?
Inscreva-se no Boletim Informativo para Desenvolvedores
Siga-nos no X (antigo Twitter) para ficar por dentro das novidades
Assista aos tutoriais no nosso canal do YouTube
Conecte-se conosco na página de desenvolvedores da Vonage no LinkedIn
Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.
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.