BSUID e identificadores de usuario
WhatsApp está introduciendo los usernames (nombres de usuario públicos, en el formato@nombre) a lo largo de 2026. Cuando un usuario adopta un username, su teléfono puede dejar de aparecer en los webhooks. Para que la integración pueda seguir identificando a cada usuario sin depender del teléfono, Meta creó el BSUID (Business-Scoped User ID).
Esta página explica, de forma conceptual, los identificadores de usuario y las reglas que deciden cuándo aparece el teléfono. Los campos exactos en cada payload de webhook y el formato de las solicitudes están en las páginas de Webhook y API.
Qué es el BSUID
El BSUID (Business-Scoped User ID), entregado en el campouser_id, es un identificador único por par (portafolio de negocio × usuario). Es decir, el mismo usuario de WhatsApp recibe un BSUID distinto para cada portafolio de negocio con el que interactúa — de ahí “scoped” (acotado) al negocio.
- Formato: código de país ISO 3166 alpha-2 (2 letras) + punto + hasta 128 caracteres alfanuméricos.
- Ejemplo:
BR.1234567890
Al usar un BSUID en solicitudes, use el valor completo — código de país, punto y todos los caracteres alfanuméricos. Omitir o alterar cualquier parte hace que la solicitud falle.
Como el BSUID está acotado al portafolio, cualquier número de teléfono comercial del mismo portafolio puede enviar un mensaje a ese BSUID. Intentar usar un BSUID de otro portafolio falla.
Los tres identificadores
Ahora coexisten tres formas de identificar al usuario en los payloads:Parent BSUID
Las empresas gestionadas con varios portafolios de negocio pueden inscribirse (enroll) en una cuenta padre (parent BSUID account) para compartir un identificador entre ellos. En ese caso, cada usuario recibe también un parent BSUID, entregado en el campoparent_user_id.
- Formato: igual al BSUID, pero con
ENTentre el código de país y el identificador. - Ejemplo:
BR.ENT.1234567890
El
parent_user_id solo aparece si el portafolio está inscrito en una cuenta padre, lo que requiere una solicitud a su punto de contacto de Meta. Una vez inscrito, todo webhook que trae user_id pasa a traer también parent_user_id (y los campos relacionados *_parent_user_id). Puede seguir usando el BSUID normal con normalidad.Username (@nombre)
El username es un nombre público y opcional que el usuario de WhatsApp puede definir para aparecer en lugar del teléfono. Cuando está presente, llega en contacts[].profile.username (ej.: @pablomorales).
El punto crítico: cuando el usuario adopta un username, el teléfono (wa_id) puede desaparecer de los webhooks. Su integración debe manejar este escenario sin depender del teléfono — usando el BSUID como identificador principal y el username solo para visualización.
Regla de los 30 días
En la práctica: no confíe en la presencia del teléfono. Siempre que necesite identificar al usuario de forma duradera, use eluser_id (BSUID).
Precedencia: teléfono × BSUID
En las solicitudes de envío, además del campo de teléfono puede informar el BSUID. Cuando ambos coexisten, el teléfono tiene precedencia.- Envío de mensajes / marketing: el teléfono va en
to; el nuevo camporecipientacepta un BSUID o parent BSUID. Si envíatoyrecipientjuntos,to(teléfono) prevalece; el envío se hace al teléfono. - Puede usar solo uno de los dos: solo teléfono (informe
to, omitarecipient) o solo BSUID/parent BSUID (informerecipient, omitato).
Esta página describe el comportamiento conceptual. Los ejemplos de request/response con
to, recipient, user_id y la respuesta (contacts[].input, wa_id, user_id) están en la página de API.Contact book
El contact book es un recurso de Meta (alojado por Meta, sin trabajo de integración) que almacena el teléfono y el BSUID de los usuarios con los que ha interactuado. Cuando usted envía o recibe un mensaje/llamada hacia o desde un teléfono, el par teléfono + BSUID se registra en el contact book. Una vez registrado, ese dato se usa para poblar el teléfono en los webhooks — incluso si el usuario adoptó un username. Por eso el contact book cuenta como la tercera condición de la regla de los 30 días.El contact book está acotado al portafolio de negocio: cualquier interacción entre cualquier número del portafolio y un usuario registra el dato. Solo se capturan las interacciones posteriores al lanzamiento del recurso — nada se registra retroactivamente. El recurso puede desactivarse en la configuración de Meta Business Suite; al desactivarlo se eliminan los datos ya almacenados.
Casos especiales
No todo flujo acepta BSUID — algunos exigen el teléfono:- Las plantillas de autenticación de los tipos one-tap, zero-tap y copy-code exigen el teléfono del usuario; no aceptan BSUID.
- Bloqueo / Desbloqueo (Block / Unblock) acepta BSUID, pero no acepta parent BSUID — usar un parent BSUID en estas solicitudes hace que la operación falle.
- Estado
failed(fallo de mensaje): el bloquecontactsse omite por completo, y elrecipient_user_idse omite si el mensaje fue enviado al teléfono.
Línea de tiempo (Meta)
Las fechas de abajo son de Meta y están sujetas a cambios. Úselas solo como orientación de planificación.El despliegue de usernames por país (Jun/2026) y el despliegue global (Ago/2026) reflejan el cronograma comunicado por Meta y pueden ajustarse. Consulte siempre la documentación oficial para el estado actual.
Próximos pasos
Webhook
Vea dónde aparecen
user_id, parent_user_id y username en los payloads de mensajes y de estado.API
Cómo usar
recipient (BSUID) en el envío e interpretar la respuesta con teléfono × BSUID.