Formato E.164 de telefone: como converter e validar números
Formato E.164 de telefone: regras, como converter números locais com tabela de exemplos, exigências das APIs de WhatsApp e SMS, regex e libphonenumber.
Por OmniChannels.ai Editorial Team · Revisado por BroadNet Messaging Solutions Team
Integração
Resposta curta
E.164 é o plano internacional de numeração da ITU-T. Um número E.164 é escrito com um sinal de mais inicial, o código do país e o número nacional, com no máximo 15 dígitos e sem espaços nem pontuação, por exemplo +971501234567. Para converter um número local, retire o prefixo nacional de tronco (em geral 0) nos países que o usam, acrescente o sinal de mais e o código do país e remova espaços e parênteses.
Nesta página
- O que é o formato E.164?
- Como converto um telefone local para E.164?
- Como são os números E.164 em diferentes países?
- Por que a Itália mantém o 0 inicial?
- Por que as APIs de SMS e WhatsApp exigem E.164?
- Como valido e normalizo números em código?
- Como corrijo números de telefone em uma planilha?
- Exemplo prático: limpando uma lista de clientes
- Quais são os erros mais comuns?
- Como a OmniChannels.ai ajuda
Pontos principais
- Um número E.164 é um sinal de mais, o código do país e o número nacional: até 15 dígitos no total, sem espaços, hífens nem parênteses.
- Converter significa remover o prefixo nacional de tronco, em geral o 0, mas nem todo país tem um: a tabela de procedimentos de discagem da ITU não lista nenhum para Itália, Espanha e Catar.
- A Meta recomenda incluir o sinal de mais e o código de chamada do país nas requisições de envio do WhatsApp, porque um número sem eles recebe o código do país do remetente e pode chegar à pessoa errada.
- Uma regex verifica o formato de um número; uma biblioteca como a libphonenumber verifica se ele é válido para o país.
- O Excel pode remover zeros à esquerda e exibir números longos em notação científica, então mantenha as colunas de telefone formatadas como Texto.
Este guia é para profissionais de marketing, analistas e desenvolvedores que lidam com números de telefone para SMS ou WhatsApp e precisam deles na forma que uma API aceita. Ele explica o que é o E.164, mostra como converter números de diferentes países e trata da validação em código e dos problemas de planilha que corrompem números antes mesmo de serem enviados.
O que é o formato E.164?
E.164 é o plano internacional de numeração de telecomunicações públicas, publicado pela ITU-T como Recomendação E.164. No dia a dia, o termo descreve uma forma de escrever um número: um sinal de mais, o código do país e o número nacional, apenas com dígitos.
Um número E.164 tem estas partes:
+representa o prefixo de chamada internacional, que varia por país (00 em muitos lugares, 011 nos EUA).- Código do país, de um a três dígitos, como 971 para os Emirados Árabes Unidos ou 1 para os EUA e o Canadá.
- Número nacional, o restante do número sem o prefixo nacional de tronco.
A recomendação fixa o comprimento máximo em 15 dígitos, sem contar o prefixo internacional. Assim, +971501234567 é um E.164 válido (12 dígitos), enquanto um valor de 17 dígitos não pode ser. Nosso verbete do glossário sobre E.164 traz uma definição curta.
Como converto um telefone local para E.164?
Remova a formatação, retire o prefixo nacional de tronco, se houver, e acrescente o sinal de mais e o código do país.
- Remova espaços, hífens, pontos e parênteses.
050 123 4567vira0501234567. - Remova o prefixo de chamada internacional, se o número tiver um:
00971...ou011...vira971.... - Retire o prefixo nacional de tronco, se o país usar um. Em muitos países é
0; nos EUA e no Canadá é1. - Acrescente o código do país se ele ainda não estiver lá.
- Acrescente o sinal de mais.
É preciso saber o país para fazer isso. 0501234567 só faz sentido com um país associado, e por isso as planilhas devem ter uma coluna de país.
Como são os números E.164 em diferentes países?
A tabela mostra exemplos. Os números são ilustrativos, não assinantes reais. Os códigos de discagem vêm dos nossos dados regulatórios; os prefixos de tronco vêm da tabela de procedimentos de discagem da ITU.
| País | Código de discagem | Prefixo de tronco (tabela ITU) | Forma local (exemplo) | E.164 |
|---|---|---|---|---|
| Emirados Árabes Unidos | +971 | 0 | 050 123 4567 | +971501234567 |
| Arábia Saudita | +966 | 0 | 051 234 5678 | +966512345678 |
| Catar | +974 | nenhum listado | 5512 3456 | +97455123456 |
| Quênia | +254 | 0 | 0712 345 678 | +254712345678 |
| Reino Unido | +44 | 0 | 07700 900123 | +447700900123 |
| Alemanha | +49 | 0 | 0151 12345678 | +4915112345678 |
| Índia | +91 | 0 | 098765 43210 | +919876543210 |
| Espanha | +34 | nenhum listado | 612 345 678 | +34612345678 |
| Itália (celular) | +39 | nenhum listado | 312 345 6789 | +393123456789 |
| Itália (fixo) | +39 | nenhum listado | 06 1234 5678 | +390612345678 |
| Estados Unidos | +1 | 1 | (202) 555-0123 | +12025550123 |
A tabela da ITU é uma posição publicada em dezembro de 2011, então trate-a como um guia do padrão e confirme um país específico com a biblioteca ou com o regulador.
Por que a Itália mantém o 0 inicial?
Porque na Itália o 0 faz parte do número, não é um prefixo de tronco. A tabela de procedimentos de discagem da ITU mostra a Itália (código de país 39) sem prefixo nacional, então não há nada a retirar. Os números geográficos italianos começam com 0, como no exemplo de estilo romano 06 1234 5678, e o mantêm na forma internacional: +390612345678. Os celulares italianos começam com 3 e não têm zero a manter, então 312 345 6789 vira +393123456789.
Não aplique "sempre retire o zero" como regra geral. A mesma tabela não lista prefixo de tronco para Espanha e Catar, e os dados mudam, o que é um bom motivo para usar uma biblioteca em tudo que você não consegue verificar à mão.
Por que as APIs de SMS e WhatsApp exigem E.164?
Porque o roteamento depende de um número sem ambiguidade. Um número sem código de país pode pertencer a vários países, e a plataforma poderia enviar ao mercado errado, aplicar as regras de sender ID erradas e cobrar a tarifa errada. Tarifas, registro de sender ID e horários de envio promocional são aplicados por país de destino, e o código do país é o que identifica o destino.
O que a Meta diz sobre os números do WhatsApp?
A documentação da Meta sobre os formatos de número de telefone de usuários do WhatsApp diz que sinais de mais, hífens, parênteses e espaços são aceitos nas requisições de envio de mensagem e recomenda enfaticamente incluir o sinal de mais e o código de chamada do país. Se o sinal de mais estiver ausente, o código de chamada do país do remetente é acrescentado ao número, o que pode levar a mensagem a um número errado. Exemplo da Meta: para um remetente na Índia (código 91), (631) 555-1234 é entregue a +916315551234, enquanto +1 (631) 555-1234 é entregue corretamente. A Meta também observa que, para o Brasil e o México, a Cloud API pode modificar o prefixo extra que aparece em alguns números, e chama isso de comportamento padrão.
A abordagem segura: guarde E.164 limpo e envie exatamente isso.
E no caso do SMS?
As APIs de SMS também esperam o número internacional completo. Algumas exigem os dígitos sem o sinal de mais; o formato varia entre APIs e protocolos, então consulte a documentação da API que você usa e teste com o seu próprio número. Veja enviar SMS por API e enviar mensagem de WhatsApp por API para exemplos funcionais.
Como valido e normalizo números em código?
Use uma regex para uma verificação rápida de formato e uma biblioteca para a validação de verdade.
Uma verificação comum do formato E.164:
// Plus, a non-zero first digit, then 1 to 14 more digits: 15 digits at most
const E164 = /^\+[1-9]\d{1,14}$/;
function looksLikeE164(value) {
return E164.test(value);
}
looksLikeE164("+971501234567"); // true
looksLikeE164("0501234567"); // false: no plus or country code
looksLikeE164("+0501234567"); // false: country codes do not start with 0
A regex verifica apenas tamanho e caracteres. Ela aceita +99999999999 mesmo que esse número não exista. Para validação de verdade, use a libphonenumber, biblioteca de código aberto do Google para analisar, formatar e validar números de telefone internacionais, disponível para Java, C++ e JavaScript, com portes da comunidade em outras linguagens. O README descreve isValidNumber como validação completa para uma região usando informações de tamanho e prefixo, e mostra como formatar um número analisado como E.164.
# pip install phonenumbers (a Python port of libphonenumber)
import phonenumbers
def to_e164(raw, default_region):
try:
number = phonenumbers.parse(raw, default_region) # e.g. "AE", "SA", "GB"
except phonenumbers.NumberParseException:
return None
if not phonenumbers.is_valid_number(number):
return None
return phonenumbers.format_number(number, phonenumbers.PhoneNumberFormat.E164)
print(to_e164("050 123 4567", "AE")) # +971501234567 if the number is valid for the UAE
print(to_e164("+44 7700 900123", "GB"))
Os portes são escritos por desenvolvedores externos, então avalie a qualidade do que escolher. Faça a análise com uma região padrão tirada do país do cliente e depois guarde o resultado E.164. Guarde também a entrada original, para poder analisar de novo se as regras mudarem.
Normalize no ponto de entrada, no formulário de cadastro, na importação do CRM ou na API, não na hora do envio. Um número escrito de duas formas vira dois contatos que recebem a mesma campanha.
Como corrijo números de telefone em uma planilha?
Formate a coluna de telefone como Texto antes de inserir ou colar os números. Os problemas mais comuns são:
| Problema | O que acontece | Solução |
|---|---|---|
| Zero à esquerda removido | 0501234567 vira 501234567 |
Formate as células como Texto antes; ou comece a entrada com um apóstrofo |
| Notação científica | Um número longo aparece como 9.71501E+11 |
Formate como Texto; o Excel mantém 15 dígitos de precisão numérica |
| Sinal de mais perdido | Uma célula numérica pode não manter o + |
Formate como Texto e confira os primeiros caracteres da coluna |
| Espaços e hífens | 971 50 123 4567 |
Remova com Localizar e Substituir ou SUBSTITUTE |
| Código do país ausente | Só números locais | Adicione uma coluna de país; monte o número com uma fórmula |
A Microsoft documenta que o Excel remove zeros à esquerda e converte números grandes em notação científica, e que números inseridos antes de aplicar o formato Texto precisam ser inseridos de novo. Quando você abre um arquivo CSV diretamente, o Excel aplica a cada coluna os formatos padrão, então use o Assistente de Importação de Texto ou De Texto/CSV para marcar a coluna de telefone como texto.
Para uma lista de celulares dos Emirados guardada como 050 123 4567 na coluna A, esta fórmula monta o E.164 como texto:
="+971"&RIGHT(SUBSTITUTE(A2," ",""),9)
Ela mantém os últimos nove dígitos depois de remover os espaços, então só serve para números nesse formato. Copie o resultado e cole como valores antes de salvar em CSV. O formatador de números de telefone converte um número sem fórmula, e nosso guia de envio de SMS em massa pelo Excel ou CSV mostra o fluxo completo de importação.
Exemplo prático: limpando uma lista de clientes
A "Souq Rafiq" (fictícia), varejista de Dubai, exporta 8.000 contatos de três sistemas com números como 0501234567, 971 50 123 4567, +971-50-123-4567 e 00971501234567.
- O analista adiciona uma coluna de país a partir do país de cobrança de cada cliente.
- Um script analisa cada linha com o país como região padrão, de modo que os quatro formatos viram
+971501234567. - As linhas que falham na validação vão para uma planilha de revisão em vez de serem enviadas.
- Os duplicados são removidos depois da normalização, que reúne os quatro formatos em um só contato.
- Uma consulta HLR sinaliza números inativos antes da campanha. Veja consulta HLR explicada.
- A coluna limpa é guardada como Texto e importada.
Normalizar primeiro é o que faz a verificação de duplicados funcionar; antes disso, o mesmo cliente parecia quatro pessoas.
Quais são os erros mais comuns?
- Sempre remover o zero inicial. Alguns países, como a Itália, não têm prefixo de tronco.
- Manter o zero e acrescentar o código do país, resultando em
+9710501234567. - Enviar sem o sinal de mais ao WhatsApp, de modo que o código do país do remetente é acrescentado.
- Usar uma regex como validação. Ela verifica o formato, não a validade.
- Deixar o Excel tratar telefones como números, perdendo zeros ou passando para notação científica.
- Normalizar na hora do envio em vez de na entrada.
- Supor que formato válido significa número alcançável. Números portados ou desconectados ainda falham.
- Confiar em uma tabela estática. Os planos de numeração mudam; use uma biblioteca mantida.
Como a OmniChannels.ai ajuda
A OmniChannels.ai aceita números internacionais para SMS e WhatsApp por uma única API REST, e suas campanhas aceitam uploads de Excel e CSV com pré-visualização e filtro de duplicados. A BroadNet oferece HLR e consulta de números, para você verificar se um número bem formado está ativo. Leia a documentação da API de SMS e a documentação da API de WhatsApp para ver os campos exatos das requisições, ou fale com nossa equipe sobre o onboarding.
Perguntas frequentes
O que é o formato E.164?
E.164 é o plano internacional de numeração telefônica definido pela Recomendação ITU-T E.164. No uso cotidiano, um número E.164 é um sinal de mais, o código do país e o número nacional escritos apenas com dígitos, com no máximo 15 dígitos no total. Ele identifica um número de forma única no mundo todo, e por isso plataformas e APIs de mensagens o exigem.
Como converto um número de telefone para E.164?
Remova espaços, hífens e parênteses. Retire o prefixo nacional de tronco, se o país o usar, em geral um 0 inicial. Acrescente o sinal de mais e o código do país. Assim, o número dos Emirados 050 123 4567 vira +971501234567. Países como a Itália mantêm o 0 inicial dos números fixos, então confira a regra do país ou use uma biblioteca.
Quantos dígitos pode ter um número E.164?
No máximo 15 dígitos, contando o código do país e o número nacional e sem contar o prefixo de chamada internacional. O sinal de mais não é um dígito. Muitos números nacionais são bem mais curtos. Um valor com mais de 15 dígitos não pode ser um número E.164 válido e costuma indicar um erro de colagem ou uma célula de planilha danificada.
A API do WhatsApp precisa do sinal de mais?
A documentação da Meta diz que sinais de mais, hífens, parênteses e espaços são aceitos nas requisições de envio de mensagem e recomenda enfaticamente incluir o sinal de mais e o código de chamada do país. Sem o sinal de mais, o código de chamada do país do remetente é acrescentado ao número, o que pode enviar a mensagem a um número diferente e errado. Envie o E.164 completo para ficar seguro.
Por que o Excel remove o zero ou altera meus números de telefone?
O Excel trata um telefone digitado como número como um valor numérico. A Microsoft documenta que isso remove zeros à esquerda e exibe números longos em notação científica, porque o Excel mantém 15 dígitos de precisão. Formate a coluna como Texto antes de inserir ou colar os números, ou comece as entradas com um apóstrofo, e digite de novo os números inseridos antes.
Um número E.164 válido é também um número alcançável?
Não. Um número pode estar bem formatado, mas não atribuído, desconectado ou portado. A validação de formato verifica a estrutura e o tamanho para um país. Para saber se um número está ativo e em qual rede, use uma consulta HLR ou de número antes de um envio grande.
Fontes
- Recommendation ITU-T E.164: The international public telecommunication numbering plan
- Dialling procedures (international prefix, national (trunk) prefix and national (significant) number), ITU Operational Bulletin No. 994, 15.XII.2011
- WhatsApp user phone number formats — WhatsApp Business Platform, Meta for Developers
- Keeping leading zeros and large numbers — Microsoft Support
- libphonenumber — Google, open-source library on GitHub
Continue lendo
Mais guiasIntegração
Autopreenchimento de OTP por SMS: Android, iOS e Web
Como funciona o autopreenchimento de OTP no Android, iOS e web: hash do SMS Retriever, códigos vinculados ao domínio, WebOTP, formato único e WhatsApp.
9 min de leitura
Integração
Throughput e limites de taxa da WhatsApp Cloud API explicados
Throughput e limites de taxa da WhatsApp Cloud API: mensagens por segundo, como aumentá-los, limites por par e da Graph API, códigos de erro e retry com backoff.
9 min de leitura
Marketing
Lembretes automáticos de agendamento por WhatsApp e SMS: guia
Automatize lembretes de agendamento por WhatsApp e SMS para clínicas, salões e hotéis: momento do envio, modelos, botões de confirmar e reagendar e SMS.
8 min de leitura
