Raphael Serafim· Publicado em 28 de setembro de 2026· 8 min de leitura

LID no WhatsApp: o que é aquele número estranho (@lid) e como resolver para telefone

Entenda o que é o LID (@lid) no WhatsApp, por que ele aparece no lugar do telefone em grupos e webhooks e como resolver para número pela API.

Ver como Markdown

LID é um identificador que o WhatsApp usa no lugar do número de telefone em algumas conversas — principalmente em grupos e com contatos que não compartilham o número com você. Ele aparece como 260417171517608@lid: parece telefone, mas não é. Pela API não oficial da WAME você pode responder direto para o LID (o campo to aceita id@lid) e, quando precisar do telefone, resolver em lote com POST /{key}/contacts/resolve-lids.

Se você já viu no seu webhook um "número" de 15 dígitos que não abre no WhatsApp, não liga e não bate com nenhum cliente, era um LID. Este guia explica o que ele é, onde aparece e como tratar no seu sistema sem estragar a base de contatos.

A camada não oficial da WAME é independente e não é afiliada, endossada ou suportada pelo WhatsApp ou pela Meta. O uso é de responsabilidade de quem envia.

O que é o LID, em uma frase

O WhatsApp passou a identificar pessoas por dois tipos de endereço:

  • Telefone — o JID clássico, [email protected].
  • LID (linked identity) — um identificador próprio da conta, 260417171517608@lid, que não revela o número.

A ideia do LID é privacidade: em comunidades, grupos grandes e em alguns contextos de contato, o WhatsApp mostra a pessoa sem expor o telefone dela para todo mundo. Para quem está no app, isso é transparente — aparece o nome, a foto, e pronto. Para quem integra por API, aparece um identificador que não é um telefone e precisa ser tratado como tal.

O ponto que confunde é o formato. Sem o sufixo, 260417171517608 tem cara de número internacional. Se o seu sistema corta tudo depois do @ e guarda só os dígitos, você acabou de criar um "cliente" com um telefone que não existe.

Onde o LID aparece

Na prática, ele surge em quatro lugares:

  1. Mensagens de grupo. O remetente dentro de um grupo pode vir como LID em vez de telefone.
  2. Lista de participantes. Em GET /{key}/groups/{id}/members, alguns membros podem aparecer com @lid.
  3. Chamadas recebidas. No webhook de chamada, o from_jid pode terminar em @lid — e o from, que vem só com dígitos, será os dígitos do LID, não um telefone.
  4. Contatos que não compartilham o número. Em conversas individuais, dependendo das configurações de privacidade de quem fala com você.

Em conversas 1:1 iniciadas por clientes comuns, o mais frequente continua sendo o telefone. O LID é mais comum em grupo — e é justamente ali que os sistemas quebram, porque muita gente escreve o código olhando só para mensagens individuais.

Como identificar um LID no webhook

No formato meta do webhook, a mensagem chega no envelope padrão, e em grupo o from é quem enviou enquanto o grupo vem em group_id:

json
{
  "object": "wame",
  "provider": "whatsapp",
  "entry": [{
    "id": "<instance-id>",
    "changes": [{
      "field": "messages",
      "value": {
        "messages": [{
          "from": "260417171517608",
          "chat_type": "group",
          "group_id": "[email protected]",
          "id": "3EB0XXXX",
          "type": "text",
          "text": { "body": "alguém sabe o horário de amanhã?" }
        }]
      }
    }]
  }]
}

O from aqui é só dígitos — ele não diz, sozinho, se é telefone ou LID. Por isso a regra de ouro é: quando o sistema tiver o JID completo, guarde o JID completo. No evento de chamada, por exemplo, o webhook entrega os dois:

json
{
  "field": "call",
  "value": {
    "calls": [{
      "id": "CALL1",
      "from": "260417171517608",
      "from_jid": "260417171517608:68@lid",
      "status": "offer",
      "is_video": false
    }]
  }
}

O from_jid terminado em @lid não deixa dúvida. E é exatamente esse valor que a API usa para atender ou recusar a chamada — veja recusar ligação automaticamente.

Uma heurística útil para mensagens de grupo: telefone brasileiro com DDI tem 12 ou 13 dígitos e começa com 55. Um identificador de 15 dígitos que não começa com um DDI plausível é forte candidato a LID. Não é prova — use só como alerta, e confirme resolvendo.

Responder para um LID não exige resolver

Boa notícia: para responder a quem falou com você, o LID basta. O campo to dos endpoints de mensagem aceita três formatos:

bash
curl -X POST "https://us.api-wa.me/SUA_KEY/message/text" \
  -H "Content-Type: application/json" \
  -d '{ "to": "260417171517608@lid", "text": "Oi! Vi sua pergunta no grupo, te respondo por aqui." }'

Isso importa para o bot de grupo: quando alguém pede ajuda com um !comando e você quer responder no privado, dá para mandar direto para o LID. O padrão de bot está em bot de comandos para grupo.

Um cuidado de bom senso: responder no privado para quem pediu é atendimento. Pegar a lista de LIDs de um grupo e mandar mensagem para todos no privado é abordagem fria em massa — é o tipo de fan-out que o anti-spam pune e que a WAME não apoia. Mais em uso responsável da API não oficial.

Resolver LID para telefone em lote

Quando você precisa do telefone — cruzar com o CRM, emitir nota, vincular a um pedido —, use o endpoint de resolução. Ele recebe uma lista e resolve em lote:

bash
curl -X POST "https://us.api-wa.me/SUA_KEY/contacts/resolve-lids" \
  -H "Content-Type: application/json" \
  -d '{ "lids": ["260417171517608@lid", "198765432109876@lid"] }'

Duas expectativas realistas:

  • Nem todo LID tem telefone disponível. Se o contato não compartilha o número com você, o LID é tudo que existe. O seu sistema precisa funcionar nesse caso, não tratar como erro.
  • Resolva em lote, não um por um. Acumule os LIDs novos que chegaram e resolva de tempos em tempos, em vez de chamar o endpoint a cada mensagem de grupo.

Em Node, um resolvedor com cache simples:

javascript
const BASE = 'https://us.api-wa.me/SUA_KEY';
const cache = new Map(); // lid -> telefone | null

async function resolverLids(lids) {
  const novos = lids.filter((l) => !cache.has(l));
  if (novos.length) {
    const r = await fetch(`${BASE}/contacts/resolve-lids`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ lids: novos }),
    });
    const dados = await r.json();
    // A resposta traz `data`: um objeto que mapeia cada LID ao telefone.
    // LID sem telefone conhecido simplesmente não aparece nele.
    for (const lid of novos) cache.set(lid, dados?.data?.[lid] ?? null);
  }
  return lids.map((l) => ({ lid: l, telefone: cache.get(l) }));
}

O cache evita repetir a mesma consulta e, de quebra, reduz chamadas desnecessárias. Em produção, troque o Map por Redis ou pela sua tabela de contatos.

Como modelar o contato no seu banco

É aqui que a maioria dos problemas nasce. A modelagem que funciona separa identidade de telefone:

CampoExemploPara que serve
wa_id260417171517608@lid ou [email protected]Chave de conversa: é para onde você responde
tipo_idlid ou telefoneEvita confundir os dois
telefone5511999999999 ou vazioSó preenchido quando resolvido
nomeMariaVem do perfil, quando disponível

Três regras que evitam dor de cabeça:

  1. Nunca grave LID na coluna de telefone. É a origem de contato duplicado, relatório errado e mensagem enviada para número inexistente.
  2. A chave da conversa é o wa_id completo. Se o mesmo cliente aparecer uma vez por telefone e outra por LID, a resolução é o que liga os dois registros — faça o merge quando o telefone resolvido bater com um contato existente.
  3. Valide antes de usar como telefone. Se algum fluxo vai usar o número fora do WhatsApp (SMS, ligação comum, cadastro fiscal), só use o campo telefone, nunca o wa_id.

Se você também valida números no cadastro, os dois processos se completam: verificar se o número tem WhatsApp trata o caminho telefone → WhatsApp; a resolução de LID trata o caminho WhatsApp → telefone.

LID em grupos: participantes e moderação

Em automação de grupo, o LID aparece em dois momentos: na lista de membros e no evento de participantes (field: "groups", com event: "participants_updated", action e a lista participants). Para as operações do grupo em si — remover, promover, rebaixar —, use o identificador exatamente como ele veio. O participante é quem ele é no grupo; não precisa virar telefone para ser moderado.

O telefone só importa quando você cruza o grupo com outro sistema. No grupo VIP pago, por exemplo, a conciliação diária compara membros do grupo com assinantes ativos. Ali vale resolver os LIDs antes de comparar, senão um assinante legítimo que aparece como LID é tratado como intruso e removido por engano.

Erros comuns ao lidar com LID

  • Cortar tudo depois do @. Transforma LID em "telefone" silenciosamente. Guarde o sufixo.
  • Resolver a cada mensagem. Gera chamadas repetidas à toa. Cacheie.
  • Tratar LID sem telefone como erro. É um estado normal; o fluxo tem que seguir com o wa_id.
  • Usar LID para prospecção. Coletar LIDs de grupos para abordar no privado é spam, com todas as consequências para o número.
  • Formatar LID como telefone na interface. O atendente vê "+26 0417..." e tenta ligar. Mostre o nome e marque o contato como "número oculto".

Conclusão

O LID não é bug nem número quebrado: é o WhatsApp protegendo o telefone das pessoas em grupos e em alguns contatos. Para a sua integração, a regra é simples — guarde o JID completo, responda direto para o @lid quando for atendimento, resolva o telefone em lote com POST /{key}/contacts/resolve-lids só quando precisar dele e nunca misture LID com a coluna de telefone. Com isso, grupos, chamadas e CRM continuam consistentes. Os formatos completos estão na documentação, e as vantagens da camada não oficial para grupos e bots estão em API do WhatsApp não oficial: vantagens.

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

O que é LID no WhatsApp?+

LID é um identificador interno que o WhatsApp usa no lugar do número de telefone em algumas situações, principalmente em grupos e com contatos que não compartilham o número com você. Ele aparece como um JID terminado em @lid, por exemplo 260417171517608@lid. Não é um telefone e não pode ser tratado como um.

Por que meu webhook mostra um número que não existe?+

Porque o remetente veio identificado por LID, não por telefone. A sequência de dígitos parece um número, mas é só o identificador. Guarde o JID completo com o sufixo @lid e resolva o telefone com POST /{key}/contacts/resolve-lids quando precisar dele.

Como converter LID em número de telefone pela API?+

Faça POST /{key}/contacts/resolve-lids enviando um array lids com os JIDs @lid que você quer resolver. A API devolve o telefone correspondente quando ele é conhecido pela instância. Nem todo LID tem telefone disponível: se o contato não compartilha o número, o LID é o único identificador.

Posso enviar mensagem para um LID?+

Sim. O campo to dos endpoints de mensagem aceita o formato id@lid, além do telefone com DDI e do JID de grupo terminado em @g.us. Você não precisa resolver o telefone só para responder a quem falou com você.

Como guardar LID no meu CRM?+

Guarde os dois campos separados: o identificador que chegou (telefone ou LID, com o sufixo) e o telefone resolvido, quando existir. Nunca grave o LID na coluna de telefone — isso gera contato duplicado, disparo para número inexistente e relatório errado.

Continue lendo