O WhatsApp identifica todo participante — usuários, grupos, listas de transmissão e feeds de status — com um JID (Jabber ID). JIDs vêm do protocolo XMPP e seguem o formatoDocumentation Index
Fetch the complete documentation index at: https://whiskeysockets-docs-jids-socket-config-ptbr.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
local@server. Você os encontra o tempo todo no Baileys: como destino de sock.sendMessage, no key.remoteJid de cada mensagem recebida e como parâmetro de consultas a grupos e contatos.
O WhatsApp moderno identifica a mesma pessoa de duas formas, dependendo do contexto. Ambas são JIDs:
- PNJID — Phone Number Jabber Identifier. Vive em
@s.whatsapp.nete é derivado do número de telefone do usuário. É o identificador legado e o que você usa para procurar alguém pelo número. - LIDJID — Linked Identity Jabber Identifier. Vive em
@lide é um identificador opaco por usuário que o WhatsApp atribui para anonimizar números em grupos, comunidades e outras superfícies compartilhadas. É o identificador padrão no Baileys 7.x e posteriores.
Formatos de JID
Usuário (PNJID)
[ddi][numero]@s.whatsapp.netExemplo: 5511999999999@s.whatsapp.netUsuário (LIDJID)
[lid]@lidExemplo: 123456789012345@lidGrupo
[timestamp]-[random]@g.usExemplo: 123456789-123345@g.usLista de transmissão
[timestamp]@broadcastExemplo: 1234567890@broadcastStories / Status
status@broadcastConstante fixa — todas as atualizações de status vão para este JID.Newsletter
[id]@newsletterExemplo: 12345@newsletter| Servidor | Significado |
|---|---|
@hosted | PN hospedado — usuário PN roteado pelo Meta hosting |
@hosted.lid | LID hospedado — usuário LID roteado pelo Meta hosting |
@bot | Conta de bot Meta AI / first-party |
@c.us | Domínio legado do WhatsApp (ainda usado para 0@c.us, JID oficial business e PSAs) |
@call | Sinalização de chamadas de voz/vídeo |
Regras do número de telefone
Ao construir um PNJID a partir de um número:- Inclua o código do país (ex.:
1para EUA,55para Brasil). - Não inclua
+,-, espaços ou parênteses. 5511999999999@s.whatsapp.netestá correto;+55 (11) 99999-9999@s.whatsapp.netnão está.
PN ↔ LID: o modelo de identidade dupla
Desde 2024, o WhatsApp vem migrando de identificadores de número de telefone para LIDs (Linked Identity JIDs). Um LID é opaco e por usuário — esconde o número de telefone subjacente para que sua conta apareça em grupos grandes, comunidades e canais sem vazar o número. No Baileys 7.x e posteriores:- Novas sessões Signal são criadas em formato LID por padrão.
- Um único usuário tem tanto um PNJID (
...@s.whatsapp.net) quanto um LIDJID (...@lid). Eles se referem à mesma pessoa. - Os campos
participantem grupos costumam ser LIDs;participantAltcarrega o PN correspondente, e vice-versa. MessageKey.remoteJidAlteMessageKey.participantAltdão a você o identificador alternativo para mensagens diretas e mensagens de grupo/transmissão/canal respectivamente.- O tipo
Contactagora expõe um únicoidmais camposphoneNumber(quandoidé LID) elid(quandoidé PN).
Não tente “restaurar” PN JIDs no seu app. Migre seu armazenamento, indexação e roteamento para LIDs — o WhatsApp trata LIDs como o identificador canônico daqui pra frente.
Resolução PNJID ↔ LIDJID
O WhatsApp permite resolver um número para o seu LID. O caminho inverso — de LID para número — não é geralmente suportado. UseonWhatsApp para verificações pontuais de existência por PN, e o store lidMapping em sock.signalRepository para conversões diretas:
lid-mapping.update dispara sempre que o Baileys aprende um novo par PN ↔ LID pela rede. Para consultas de diretório mais avançadas, veja Protocolo USync.
Compartilhamento de número entre contas
Como LIDs escondem números por padrão, o WhatsApp fornece flags explícitas de opt-in para trocá-los quando ambos os lados concordam:- Empresas podem solicitar o número do destinatário com
{ requestPhoneNumber: true }em uma mensagem enviada. - Usuários podem compartilhar seu número com
{ sharePhoneNumber: true }.
JIDs multi-aparelho
No protocolo multi-aparelho do WhatsApp, uma única conta pode ter múltiplos aparelhos conectados. Cada aparelho recebe um sufixo:5511999999999:2@s.whatsapp.net ou 123456789012345:3@lid. A parte antes do : é o usuário, e o número depois é o ID do aparelho.
É por isso que você nunca deve comparar ou dividir JIDs com operações de string — uma mensagem do aparelho :0 e uma do :2 pertencem ao mesmo usuário.
Helpers de JID
O Baileys exporta um conjunto de helpers em@whiskeysockets/baileys. Sempre use eles em vez de manipulação manual de string.
Parsing e codificação
domainType no resultado decodificado corresponde ao enum WAJIDDomains:
| Valor | Constante | Domínio |
|---|---|---|
0 | WHATSAPP | s.whatsapp.net |
1 | LID | lid |
128 | HOSTED | hosted |
129 | HOSTED_LID | hosted.lid |
Verificações de tipo
isJidUser de versões anteriores foi removido. Use isPnUser ou isLidUser dependendo da forma desejada.