Ir para o conteúdo

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