Por que os BSUIDs existem
O WhatsApp está implementando nomes de usuário opcionais em 2026. Quando um usuário adota um nome de usuário, o WhatsApp pode exibir o nome de usuário em vez do número de telefone do usuário e pode omitir o número de telefone das payloads de webhook. Cada usuário controla se deseja adotar um nome de usuário, portanto, as empresas não podem depender dos números de telefone como a única forma de identificar clientes. A Meta, portanto, exige que empresas e parceiros da Plataforma do WhatsApp Business, bem como anunciantes de anúncios com clique para o WhatsApp, ofereçam suporte a BSUIDs para que possam continuar processando mensagens de usuários que adotam nomes de usuário. Para oferecer suporte a essa mudança, a Meta começou a adicionar IDs de usuário com escopo de negócios (BSUIDs) às payloads de webhook no início de abril de 2026. Um BSUID é um identificador de back-end para um usuário do WhatsApp dentro de um portfólio de negócios da Meta. A Meta o inclui nos webhooks de mensagens independentemente de o usuário ter adotado um nome de usuário, e ele pode ser usado para enviar mensagens ao usuário quando o número de telefone dele não estiver disponível. Nomes de usuário e BSUIDs têm ciclos de vida diferentes. Um usuário pode alterar seu nome de usuário sem alterar seu número de telefone ou BSUID. Se o usuário alterar seu número de telefone, a Meta gerará um novo BSUID. Armazene esses identificadores separadamente e atualize a associação entre eles quando receber um evento de sistema de alteração de número de telefone. Um número de telefone ainda pode aparecer quando o número de telefone comercial tiver trocado uma mensagem ou chamada com o usuário nos 30 dias anteriores, ou quando a lista de contatos da Meta contiver o usuário. Trate os campos de número de telefone e nome de usuário como condicionais e atualize os analisadores e o armazenamento de identidades para aceitar BSUIDs junto com quaisquer outros identificadores presentes. Este guia aborda as regras de identidade de BSUID, solicitações de mensagem e chamada, a lista de contatos da Meta e os campos de webhook que sua integração precisa armazenar.
Entenda os identificadores
A Meta gera BSUIDs regulares automaticamente. Cada BSUID começa com o código de país de duas letras ISO 3166 alpha-2 do usuário, seguido por um ponto e até 128 caracteres alfanuméricos. Preserve o valor completo. Não remova nem altere o prefixo do país, o ponto ou os caracteres do identificador.
Os BSUIDs têm as seguintes regras de ciclo de vida:
- Um BSUID é exclusivo para um par de portfólio de negócios e usuário.
- O BSUID de um usuário muda quando o usuário altera seu número de telefone.
- Um BSUID pai funciona em todos os portfólios vinculados para os quais a Meta o habilitou.
- Um número de telefone comercial não pode usar um BSUID regular com escopo definido para outro portfólio.
Antes de começar
- Armazene sua chave de API da YCloud em
YCLOUD_API_KEY. - Use um número de telefone comercial do WhatsApp de propriedade do mesmo portfólio que o BSUID regular.
- Inscreva seu endpoint de Webhook nos eventos do WhatsApp que sua integração utiliza.
- Trate cada novo campo de BSUID, BSUID pai, número de telefone e nome de usuário como opcional ao desserializar webhooks.
- Armazene o BSUID regular e o BSUID pai de forma independente quando ambos estiverem presentes.
Enviar uma mensagem com um BSUID
Ambos os endpoints de mensagens do WhatsApp aceitamrecipient:
Defina
recipient como um BSUID regular ou um BSUID pai. Omita to quando quiser que a YCloud enderece o usuário pelo BSUID.
POST /whatsapp/messages para enfileirar a mensagem.
Solicitar o número de telefone de um usuário
Use uma mensagem de solicitação de informações de contato quando seu fluxo de trabalho precisar de um número de telefone que não foi incluído em um webhook. O usuário decide se deseja compartilhá-lo.Usar um botão de modelo
Adicione um botãoREQUEST_CONTACT_INFO a um modelo de utilidade ou marketing. O texto do botão é fixo como Share Contact Info, e o botão não aceita parâmetros no momento do envio.
Usar uma mensagem interativa
Envie uma mensagem interativa do tiporequest_contact_info quando não precisar de um modelo:
Processar a resposta do contato
Quando o usuário compartilha informações de contato, o YCloud envia um eventowhatsapp.inbound_message.received cujo tipo de mensagem type é contacts. Para uma resposta à sua solicitação, contacts[].origin é contact_request.
2xx e processe o número de telefone de forma assíncrona. Um contato compartilhado diretamente do WhatsApp também pode incluir um vCard.
Entender o catálogo de contatos da Meta
O catálogo de contatos da Meta armazena a associação entre o número de telefone de um usuário e o BSUID. Com o recurso ativado, o envio ou recebimento de uma mensagem ou chamada usando o número de telefone do usuário registra ambos os identificadores. A Meta pode então incluir essa associação nos webhooks mesmo após o usuário adotar um nome de usuário. Os catálogos de contatos pertencem a portfólios empresariais individuais. Portfólios vinculados não compartilham nem sincronizam suas entradas: registre a associação de forma independente em cada portfólio. A Meta retém as entradas até que você desative o recurso ou desative sua conta. Você pode desativá-lo em Meta Business Suite > Configurações da empresa > Informações da empresa. Desativar o recurso exclui as entradas armazenadas e interrompe o registro de novas entradas. Reativá-lo volta a coletar novas entradas; ele não restaura os dados excluídos.
Solicitações de contato e Armazenamento Local
Quando um usuário compartilha seu número de telefone por meio de um botão de solicitação de informações de contato, a Meta adiciona o número de telefone ao catálogo de contatos se o recurso estiver ativado. Para empresas que usam o Armazenamento Local, a Meta extrai o número de telefone do vCard compartilhado e o armazena no catálogo de contatos nos data centers da Meta. Outros dados do vCard não são retidos além do período de retenção padrão. A Meta removeu a exigência anterior de enviar uma mensagem separada para capturar essa associação. Consulte a documentação oficial do BSUID para obter o comportamento atual do Armazenamento Local.Excluir uma entrada do catálogo de contatos da Meta
Exclua uma entrada do catálogo de contatos da Meta para um BSUID regular por meio de um número de telefone comercial do WhatsApp com:DELETE /whatsapp/phoneNumbers/{wabaId}/{phoneNumber}/contactBook/{bsuid}
.ENT. não são suportados. Codifique como URL o caractere + inicial no número de telefone como %2B ao construir o caminho manualmente.
Uma resposta HTTP 200 sempre contém success: true. Um valor de deleted igual a true significa que a Meta excluiu uma entrada correspondente. Um valor de false significa que a Meta processou a solicitação, mas não encontrou nenhuma entrada correspondente.
A exclusão da entrada não exclui contatos, mensagens ou registros comerciais do BSUID no YCloud. Após a exclusão, os eventos de webhook para números de telefone comerciais no mesmo portfólio empresarial da Meta não incluem mais o número de telefone e o BSUID do usuário juntos. O cache de 30 dias da Meta ainda pode fornecer ambos os identificadores, e uma interação posterior pode criar a entrada no catálogo de contatos novamente.
Iniciar uma chamada com um BSUID
POST /whatsapp/calls/connect também aceita recipient. As mesmas regras de destino se aplicam: forneça to ou recipient, e to tem precedência quando ambos estiverem presentes.
Processar campos de webhook de BSUID
Os campos a seguir são adições aos conteúdos (payloads) de eventos existentes. Mantenha o objeto de nível superior do evento ao definir seu modelo de dados.
Aplique estas regras de omissão:
- Um campo de BSUID principal fica ausente quando BSUIDs principais não estão ativados.
- Um campo de destino de mensagem ou chamada enviada pode estar ausente quando você se direcionou ao usuário por número de telefone.
customerProfileaparece em atualizações de mensagenssent,deliverederead, mas não em atualizações defailed.customerProfile.usernamefica ausente quando o usuário não tiver ativado nomes de usuário. Ele também fica ausente das atualizações de status desent.- Um número de telefone pode estar ausente mesmo quando o BSUID correspondente estiver presente.
Lidar com a alteração de número de telefone por um usuário
Quando uma mensagem recebida contivertype: system e system.type: user_changed_number, substitua o mapeamento de identidade antigo pelos novos valores. Os nomes dos campos BSUID do objeto system permanecem no formato snake_case da Meta.
parent_user_id como opcional. Mantenha os valores antigos e novos por tempo suficiente para reconciliar conversas existentes e atualizar seu repositório de identidades de forma idempotente.
Nomes de usuário comerciais
Um nome de usuário comercial ajuda os clientes a encontrarem sua empresa no WhatsApp. Ele não oculta o número de telefone da sua empresa. Cada número de telefone pode ter um nome de usuário, e um nome de usuário não pode ser compartilhado por dois números de telefone do WhatsApp. O nome de usuário de um cliente pode mudar sem alterar o BSUID do usuário. Mantenha o nome de usuário como informação de perfil em vez de usá-lo como sua chave de identidade. Consulte Reivindicar um nome de usuário comercial para conhecer as regras de formato de 3 a 35 caracteres e o processo de reivindicação e análise.
Nomes de usuário reservados
Você pode reivindicar um nome de usuário qualificado reservado pela Meta ou escolher outro nome de usuário para sua marca. Use o Gerenciador do WhatsApp, o Meta Business Suite ou a API de nome de usuário. A aprovação, por si só, não significa que o nome de usuário esteja ativo para os clientes. Se o nome de usuário reservado pertencer à sua Página do Facebook ou conta do Instagram, vincule o número de telefone da sua empresa a essa Página ou conta antes de reivindicá-lo. Você pode vinculá-lo ao reivindicar o nome de usuário no Meta Business Suite ou no Gerenciador do WhatsApp, ou adicionar o número de telefone à Página ou conta. É necessário ter controle total ou acesso parcial básico com a permissãomanage_phone.
Prioridade de exibição na janela de conversa
O WhatsApp exibe a identidade da empresa nesta ordem:- O nome salvo nos contatos do cliente.
- O nome comercial verificado ou o nome da Conta Comercial Oficial.
- O nome de usuário comercial.
- O número de telefone.
Lista de verificação de migração
- Adicione todos os campos de webhook relacionados a BSUID ao seu modelo de desserialização como um campo opcional.
- Armazene os BSUIDs comuns e principais separadamente dos números de telefone e nomes de usuário.
- Indexe a identidade do cliente por portfólio e BSUID. Não trate um BSUID como um identificador globalmente portátil.
- Encaminhe as solicitações de mensagens e chamadas por meio de
toourecipient, e teste a regra de precedência deto. - Teste usuários somente com nome de usuário, números de telefone ausentes, alterações de número de telefone, BSUIDs principais ausentes, webhooks duplicados e recriação da lista de contatos.
Exemplos de status de mensagem
Inspecione os payloads de mensagens enviadas, entregues, lidas e com falha.
Exemplos de mensagens recebidas
Inspecione contatos, atualizações do sistema e outros payloads recebidos.

