Skip to main content

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. Exemplo de nome de usuário de usuário do WhatsApp

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.
Modelos de autenticação de um toque (one-tap), zero toque (zero-tap) e copiar código exigem um número de telefone. Não envie esses tipos de modelo apenas com um BSUID.
Para vincular portfólios e usar BSUIDs pai, solicite ao seu ponto de contato da Meta que verifique sua qualificação. Você pode continuar usando BSUIDs regulares dentro dos seus portfólios originais depois que a Meta habilitar os BSUIDs pai. Exemplo de ID de usuário com escopo de negócios

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 aceitam recipient: Defina recipient como um BSUID regular ou um BSUID pai. Omita to quando quiser que a YCloud enderece o usuário pelo BSUID.
Use o mesmo corpo de solicitação com 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ão REQUEST_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.
Crie e aprove o modelo antes de enviá-lo. Consulte Modelo de solicitação de número de telefone para obter uma solicitação completa de modelo.

Usar uma mensagem interativa

Envie uma mensagem interativa do tipo request_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 evento whatsapp.inbound_message.received cujo tipo de mensagem type é contacts. Para uma resposta à sua solicitação, contacts[].origin é contact_request.
Valide a assinatura do evento, confirme-o com uma resposta 2xx e processe o número de telefone de forma assíncrona. Um contato compartilhado diretamente do WhatsApp também pode incluir um vCard. Botão de solicitação de informações de contato

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. Configurações do catálogo de contatos da Meta

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}
Use um BSUID padrão para esta operação. BSUIDs principais que contêm .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.
Para o ciclo de vida completo de chamadas, consulte Gerenciar chamadas do WhatsApp.

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.
  • customerProfile aparece em atualizações de mensagens sent, delivered e read, mas não em atualizações de failed.
  • customerProfile.username fica ausente quando o usuário não tiver ativado nomes de usuário. Ele também fica ausente das atualizações de status de sent.
  • 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 contiver type: 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.
Trate 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. Exemplo de nome de usuário comercial

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ão manage_phone.

Prioridade de exibição na janela de conversa

O WhatsApp exibe a identidade da empresa nesta ordem:
  1. O nome salvo nos contatos do cliente.
  2. O nome comercial verificado ou o nome da Conta Comercial Oficial.
  3. O nome de usuário comercial.
  4. O número de telefone.
O número de telefone da sua empresa permanece visível no perfil comercial.

Lista de verificação de migração

  1. Adicione todos os campos de webhook relacionados a BSUID ao seu modelo de desserialização como um campo opcional.
  2. Armazene os BSUIDs comuns e principais separadamente dos números de telefone e nomes de usuário.
  3. Indexe a identidade do cliente por portfólio e BSUID. Não trate um BSUID como um identificador globalmente portátil.
  4. Encaminhe as solicitações de mensagens e chamadas por meio de to ou recipient, e teste a regra de precedência de to.
  5. 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.