Por qué existen los BSUID
WhatsApp implementará nombres de usuario opcionales en 2026. Cuando un usuario adopta un nombre de usuario, WhatsApp puede mostrar el nombre de usuario en lugar del número de teléfono del usuario y puede omitir el número de teléfono en las cargas útiles de webhooks. Cada usuario decide si adoptar un nombre de usuario, por lo que las empresas no pueden depender de los números de teléfono como la única forma de identificar a los clientes. Por lo tanto, Meta exige que las empresas y socios de WhatsApp Business Platform, así como los anunciantes de anuncios de clic a WhatsApp, admitan BSUID para que puedan seguir procesando mensajes de usuarios que adopten nombres de usuario. Para respaldar este cambio, Meta comenzó a agregar identificadores de usuario con ámbito empresarial (BSUID) a las cargas útiles de webhook a principios de abril de 2026. Un BSUID es un identificador de backend para un usuario de WhatsApp dentro de un portafolio comercial de Meta. Meta lo incluye en los webhooks de mensajes independientemente de si el usuario ha adoptado un nombre de usuario, y se puede usar para enviar mensajes al usuario cuando su número de teléfono no está disponible. Los nombres de usuario y los BSUID tienen ciclos de vida diferentes. Un usuario puede cambiar su nombre de usuario sin cambiar su número de teléfono o BSUID. Si el usuario cambia su número de teléfono, Meta genera un nuevo BSUID. Almacena estos identificadores por separado y actualiza su asociación cuando recibas un evento del sistema de cambio de número de teléfono. Un número de teléfono aún puede aparecer cuando el número de teléfono comercial ha intercambiado un mensaje o una llamada con el usuario en los últimos 30 días, o cuando la libreta de contactos de Meta contiene al usuario. Trata los campos de número de teléfono y nombre de usuario como condicionales, y actualiza los analizadores y el almacenamiento de identidades para aceptar BSUID junto con cualquier otro identificador presente. Esta guía cubre las reglas de identidad de BSUID, las solicitudes de mensajes y llamadas, la libreta de contactos de Meta y los campos de webhook que tu integración necesita almacenar.
Comprender los identificadores
Meta genera automáticamente BSUID regulares. Cada BSUID comienza con el código de país de
dos letras ISO 3166 alfa-2 del usuario, seguido de un punto y hasta 128
caracteres alfanuméricos. Conserva el valor completo. No elimines ni modifiques
el prefijo de país, el punto ni los caracteres del identificador.
Los BSUID tienen estas reglas de ciclo de vida:
- Un BSUID es único para un par de portafolio comercial y usuario.
- El BSUID de un usuario cambia cuando el usuario cambia su número de teléfono.
- Un BSUID principal funciona en todos los portafolios vinculados para los que Meta lo haya habilitado.
- Un número de teléfono comercial no puede usar un BSUID regular asignado a otro portafolio.
Antes de comenzar
- Almacena tu clave de API de YCloud en
YCLOUD_API_KEY. - Usa un número de teléfono comercial de WhatsApp propiedad del mismo portafolio que el BSUID regular.
- Suscribe tu punto de conexión de webhook a los eventos de WhatsApp que utilice tu integración.
- Trata cada nuevo campo de BSUID, BSUID principal, número de teléfono y nombre de usuario como opcional al deserializar webhooks.
- Almacena el BSUID regular y el BSUID principal de forma independiente cuando ambos estén presentes.
Enviar un mensaje con un BSUID
Ambos puntos de conexión de mensajes de WhatsApp aceptanrecipient:
Establece
recipient en un BSUID regular o en un BSUID principal. Omite to cuando
quieras que YCloud se dirija al usuario mediante BSUID.
POST /whatsapp/messages para encolar el mensaje.
Solicitar el número de teléfono de un usuario
Utilice un mensaje de solicitud de información de contacto (request-contact-info) cuando su flujo de trabajo necesite un número de teléfono que no se incluyó en un webhook. El usuario decide si compartirlo.Usar un botón de plantilla
Agrega un botónREQUEST_CONTACT_INFO a una plantilla de utilidad o marketing. El texto del botón es fijo como Share Contact Info, y el botón no admite parámetros al momento del envío.
Usar un mensaje interactivo
Envía un mensaje interactivo derequest_contact_info cuando no necesites una plantilla:
Gestionar la respuesta del contacto
Cuando el usuario comparte información de contacto, YCloud envía un eventowhatsapp.inbound_message.received cuyo type de mensaje es contacts.
Para una respuesta a tu solicitud, contacts[].origin es contact_request.
2xx y procesa el número de teléfono de forma asíncrona. Un contacto compartido directamente desde WhatsApp también puede incluir una vCard.
Entender la libreta de contactos de Meta
La libreta de contactos de Meta almacena la asociación entre el número de teléfono de un usuario y el BSUID. Con la función habilitada, enviar o recibir un mensaje o una llamada usando el número de teléfono del usuario registra ambos identificadores. Meta puede luego incluir esa asociación en los webhooks incluso después de que el usuario adopte un nombre de usuario. Las libretas de contactos pertenecen a portafolios comerciales individuales. Los portafolios vinculados no comparten ni sincronizan sus entradas: registra la asociación de forma independiente en cada portafolio. Meta conserva las entradas hasta que desactives la función o desactives tu cuenta. Puedes desactivarla en Meta Business Suite > Configuración del negocio > Información del negocio. Desactivar la función elimina las entradas almacenadas y deja de registrar nuevas. Volver a activarla comienza a recopilar nuevas entradas; no restaura los datos eliminados.
Solicitudes de contacto y almacenamiento local
Cuando un usuario comparte su número de teléfono a través de un botón de solicitud de información de contacto (request-contact-info), Meta agrega el número de teléfono a la libreta de contactos si la función está habilitada. Para las empresas que utilizan Local Storage, Meta extrae el número de teléfono de la vCard compartida y lo almacena en la libreta de contactos en los centros de datos de Meta. El resto de los datos de la vCard no se conservan más allá del período de retención estándar. Meta eliminó el requisito anterior de enviar un mensaje por separado para capturar esta asociación. Consulta la documentación oficial de BSUID para conocer el comportamiento actual de Local Storage.Eliminar una entrada de la libreta de contactos de Meta
Elimine una entrada de la libreta de contactos de Meta para un BSUID regular a través de un número de teléfono comercial de WhatsApp con:DELETE /whatsapp/phoneNumbers/{wabaId}/{phoneNumber}/contactBook/{bsuid}
.ENT.. Codifique en formato URL el signo + inicial en el número de teléfono como %2B cuando construya la ruta manualmente.
Una respuesta HTTP 200 siempre contiene success: true. Un valor de deleted de
true significa que Meta eliminó una entrada coincidente. Un valor de false significa que Meta
procesó la solicitud pero no encontró ninguna entrada coincidente.
Eliminar la entrada no borra los contactos de YCloud, los mensajes ni los registros comerciales de BSUID. Después de la eliminación, los eventos de webhook para los números de teléfono comerciales en la misma cartera comercial de Meta ya no incluirán el número de teléfono del usuario y el BSUID juntos. La memoria caché de 30 días de Meta aún puede suministrar ambos identificadores, y una interacción posterior puede volver a crear la entrada de la libreta de contactos.
Iniciar una llamada con un BSUID
POST /whatsapp/calls/connect también acepta recipient. Se aplican las mismas reglas de destino: proporcione to o recipient, y to tiene prioridad cuando ambos están presentes.
Procesar los campos de webhook de BSUID
Los siguientes campos son adiciones a las cargas útiles de eventos existentes. Mantén el objeto de nivel superior del evento al definir tu modelo de datos.
Aplica estas reglas de omisión:
- El campo de BSUID principal no aparece cuando los BSUID principales no están habilitados.
- El campo del destino de un mensaje o llamada enviados puede estar ausente si te dirigiste al usuario por número de teléfono.
customerProfileaparece en las actualizaciones de mensajessent,deliveredyread, pero no en las actualizaciones defailed.customerProfile.usernameno está presente si el usuario no ha habilitado los nombres de usuario. También está ausente de las actualizaciones de estadosent.- Un número de teléfono puede estar ausente incluso cuando el BSUID correspondiente está presente.
Gestionar el cambio de número de teléfono de un usuario
Cuando un mensaje entrante tengatype: system y system.type: user_changed_number, reemplace el mapeo de identidad anterior con los nuevos valores. Los nombres de campo BSUID del objeto system se mantienen en el formato snake_case de Meta.
parent_user_id como opcional. Conserve los valores antiguos y nuevos el tiempo suficiente para conciliar las conversaciones existentes y actualizar de forma idempotente su almacén de identidades.
Nombres de usuario de la empresa
Un nombre de usuario de la empresa ayuda a los clientes a encontrar su negocio en WhatsApp. No oculta el número de teléfono de su empresa. Cada número de teléfono puede tener un nombre de usuario, y un nombre de usuario no se puede compartir entre dos números de teléfono de WhatsApp. El nombre de usuario de un consumidor puede cambiar sin que cambie el BSUID del usuario. Mantenga el nombre de usuario como información de perfil en lugar de usarlo como su clave de identidad. Consulte Reclamar un nombre de usuario de la empresa para ver las reglas de formato de 3 a 35 caracteres y el proceso de reclamación y revisión.
Nombres de usuario reservados
Puede reclamar un nombre de usuario apto reservado por Meta o elegir otro nombre de usuario para su marca. Utilice WhatsApp Manager, Meta Business Suite o la API de nombres de usuario. La aprobación no significa por sí sola que un nombre de usuario esté activo para los clientes. Si el nombre de usuario reservado pertenece a su página de Facebook o cuenta de Instagram, vincule el número de teléfono de su empresa a esa página o cuenta antes de reclamarlo. Puede vincularlo al reclamar el nombre de usuario en Meta Business Suite o WhatsApp Manager, o agregar el número de teléfono a la página o cuenta. Necesita control total o acceso parcial básico con permisomanage_phone.
Prioridad de visualización en la ventana de chat
WhatsApp muestra la identidad comercial en este orden:- El nombre guardado en los contactos del cliente.
- El nombre comercial verificado o el nombre de la cuenta oficial de empresa.
- El nombre de usuario de la empresa.
- El número de teléfono.
Lista de verificación de migración
- Agregue cada campo de Webhook relacionado con BSUID a su modelo de deserialización como un campo opcional.
- Almacene los BSUID normales y principales por separado de los números de teléfono y los nombres de usuario.
- Indexe la identidad del cliente por portafolio y BSUID. No trate un BSUID como un identificador portátil globalmente.
- Enrute las solicitudes de mensajes y llamadas a través de
toorecipient, y pruebe la regla de precedenciato. - Pruebe usuarios solo con nombre de usuario, números de teléfono faltantes, cambios de número de teléfono, BSUID principales faltantes, webhooks duplicados y recreación de la libreta de contactos.
Ejemplos de estado de mensajes
Inspeccione las cargas útiles de mensajes enviados, entregados, leídos y fallidos.
Ejemplos de mensajes entrantes
Inspeccione contactos, actualizaciones del sistema y otras cargas útiles entrantes.

