Características de envio e recebimento de mensagens para números de diferentes países#
Números da Federação Russa
Todos os números da Rússia devem ter o código do país 7, se o número tiver o código 8, as mensagens enviadas via API serão enviadas para uma conta inexistente. Você pode verificar a correção do número usando a consulta https://wa.me/80123456789. Como resultado, o número de telefone terá 11 dígitos: +7 XXX XXX XXXX.
Ao adicionar o número de telefone 80123456789 à sua lista de contatos, o WhatsApp irá automaticamente redirecionar para a conta existente 70123456789. O método checkWhatsapp retornará "existsWhatsapp": true.
Número necessário para o envio de mensagens: 70123456789@c.us
Números do México
Em todos os números do México, deve ser inserido o dígito "1" entre o código do país "52" e o código da cidade (também para o operador Nextel). O código "11" no início deve ser removido. Como resultado, o número de telefone terá 13 dígitos: +52 1 XXX XXX XXXX.
Número de telefone original +520123456789
Número necessário para o envio de mensagens: 5210123456789@c.us
Números da Argentina
Em todos os números de telefone da Argentina, deve ser inserido o dígito "9" entre o código do país "54" e o código da cidade. O código "15" no início deve ser removido. Como resultado, o número de telefone terá 13 dígitos: +54 9 XXX XXX XXXX.
Número de telefone original +540123456789
Número necessário para o envio de mensagens: 5490123456789@c.us
Números do Brasil
Em algumas regiões do Brasil, um dígito "9" é adicionado ao número de telefone, entre o número local e o código de área do Brasil. A lista de códigos de área aos quais o dígito "9" deve ser adicionado inclui: 11-19, 21, 22, 24, 27, 28. Para números do Brasil com outros códigos de área, o dígito "9" deve ser removido.
Como resultado, o número de telefone pode ter 12 ou 13 dígitos: +55 21 (9) XXXX XXXX, onde 55 é o código do país, 21 é o código de área e XXXX XXXX é o número local.
Número de telefone original +552112345678
Número necessário para o envio de mensagens: 5521912345678@c.us
Exemplo de código em Python
Instale o pacote
pip install phonenumbers
import phonenumbers
# Lista de áreas em que o WhatsApp atualizou para o dígito 9
AREA_CODE_ATUALIZADO = {"55": ["11", "12", "13", "14", "15", "16", "17", "18", "19", "21", "22", "24", "27", "28"]}
def preparar_numero_whatsapp(numero):
x = phonenumbers.parse(numero, None)
codigo_pais = str(x.country_code)
codigo_area = str(x.national_number)[0:2]
numero = numero.replace('+','')
area_atualizada = AREA_CODE_ATUALIZADO
if area_atualizada.get(codigo_pais):
area_codigo_atualizado = area_atualizada[codigo_pais]
# Adicionar ou remover o dígito 9 para estados que não foram atualizados
if codigo_area not in area_codigo_atualizado:
if len(str(x.national_number)) == 11:
numero = '%s%s%s' % (codigo_pais, codigo_area, str(x.national_number)[3:])
else:
if len(str(x.national_number)) == 10:
numero = '%s%s%s%s' % (codigo_pais, codigo_area,"9", str(x.national_number)[2:])
return numero
print(preparar_numero_whatsapp("+559212345678"))
print(preparar_numero_whatsapp("+5592912345678")) # número de telefone não funciona
Informações obtidas do artigo