# Identificadores de usuario con alcance de negocio

Un **identificador de usuario con alcance de negocio** (BSUID) es el identificador de Meta para un usuario de WhatsApp, con alcance a un portafolio de negocio. Llega en los mensajes entrantes sin importar si el contacto usa un nombre de usuario de WhatsApp, y permite dirigirse a un contacto cuyo número de teléfono no tienes.

Bird lo expone como `bsuid` en los campos `from` y `to` de un mensaje, lo acepta como `to` de un envío y filtra la lista de mensajes por él. La referencia de [identificadores de usuario con alcance de negocio](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-scoped-user-ids) de Meta es la fuente sobre el despliegue en sí y sobre lo que otras superficies de Meta hacen con el identificador.

## Por qué un contacto llega sin número de teléfono

WhatsApp está desplegando nombres de usuario. Un usuario que adopta uno muestra su nombre de usuario en lugar de su número de teléfono en la app, y Meta omite entonces el número en los payloads que recibe un negocio. El BSUID es la identidad que siempre está presente, por eso un mensaje entrante puede traer uno y ningún `phone_number` en absoluto.

Meta aún incluye el número de teléfono cuando ya tienes una relación con el contacto: cuando ese número de teléfono de negocio específico les ha enviado un mensaje o llamado, o ha recibido un mensaje o llamada de ellos, en los últimos 30 días, o cuando están en tu libreta de contactos de Meta. La condición de 30 días se evalúa por número de teléfono de negocio, así que un contacto que escribió a uno de tus números puede llegar sin número de teléfono en otro.

Un mensaje de un usuario de WhatsApp también trae el perfil que publica, en `username` y `display_name` de `from`. Ambos están ausentes cuando el contacto no ha adoptado un nombre de usuario o el mensaje no trae perfil, y ninguno puede usarse para dirigir un mensaje.

## Cómo se ve un BSUID

```json
{
  "from": {
    "bsuid": "US.13491208655302741918",
    "username": "alexr",
    "display_name": "Alex Rivera"
  }
}
```

Un código de país ISO 3166 alfa-2, un punto y luego hasta 128 caracteres alfanuméricos. Un **BSUID padre**, en el que un negocio gestionado puede inscribirse para que un solo identificador funcione en un conjunto de portafolios, inserta `ENT` después del país: `US.ENT.11815799212886844830`. Bird acepta ambas formas como destinatario.

Tres propiedades determinan cómo almacenas y usas uno:

- **Pasa el valor completo, sin modificar.** Meta rechaza un BSUID modificado, así que ninguna parte es opcional: el código de país, el punto y cada carácter del identificador viajan juntos. Bird valida la forma antes de aceptar un envío, y el código de país debe estar en mayúsculas y ser un código ISO 3166 alfa-2 real; un prefijo en minúsculas o desconocido se rechaza en lugar de corregirse. El límite de 128 caracteres aplica al identificador después del código de país, y después del segmento `ENT.` en un BSUID padre.
- **Tiene alcance a un portafolio de negocio.** Cualquier número de teléfono de negocio en el mismo portafolio puede enviar mensajes a ese BSUID; un número en un portafolio diferente no puede, y el envío falla.
- **No es permanente.** Meta documenta que el BSUID de un contacto se regenera cuando cambia su número de teléfono, así que identifica a un interlocutor en vez de servir como clave de cliente duradera propia.

## Cómo transcurre una conversación típica

Un contacto con el que no has hablado antes te escribe por BSUID, y el intercambio que te consigue su número se desarrolla en tres pasos:

1. **El contacto te escribe.** El mensaje entrante trae `from.bsuid`, y `from.phone_number` puede estar ausente. Ese mensaje abre la [ventana de servicio al cliente](/docs/knowledge-base/whatsapp/customer-service-window), así que puedes responder libremente durante las siguientes 24 horas.
2. **Pides el número.** Envía una [solicitud de información de contacto](/docs/guides/whatsapp/message-types/interactive/contact-info-requests), un botón único que permite al contacto compartir un número de teléfono. La misma solicitud viaja en una plantilla a través de su botón `request_contact_info`, que alcanza a un contacto cuya ventana ya se cerró.
3. **El contacto toca el botón.** El número revelado llega como una [tarjeta de contacto](/docs/guides/whatsapp/receiving-whatsapp/contact-cards) entrante con `origin` establecido en `contact_request` y el número en `phone_numbers`. Una tarjeta de contacto revelada puede describir a otra persona u otro número. Almacena esa revelación por separado de la identidad WhatsApp del remitente; usa las identidades que realmente llegan en los mensajes posteriores en lugar de sobrescribir el registro del cliente solo con la tarjeta.

Un contacto puede rechazar. Descartar la hoja de compartir no produce ningún mensaje ni webhook, así que un flujo que necesita un número debe expirar por su cuenta en lugar de esperar a que llegue un rechazo, y debe seguir funcionando para un contacto que nunca comparte uno.

## Envío a un BSUID

`to` acepta un BSUID en cualquier lugar donde acepta un número de teléfono:

```json
{
  "to": "US.13491208655302741918",
  "from": "+13124495648",
  "text": { "body": "Your order shipped." }
}
```

Cuatro cosas difieren de un envío dirigido por número de teléfono:

- **`from` debe estar en el portafolio al que está vinculado el BSUID.** Es el mismo requisito de portafolio que aplica Meta, y una discrepancia falla en WhatsApp en lugar de en la aceptación.
- **Las plantillas de código de verificación de un solo uso necesitan un número de teléfono.** Una plantilla gestionada por Bird en la categoría `authentication`, o una que lleve un botón de código de verificación de un solo uso, se rechaza en la aceptación con un `422` [`E15014`](/docs/api/errors/E15014) `WhatsAppRecipientNotSupportedForTemplate`. Una plantilla creada por tu espacio de trabajo no se verifica en la aceptación: Meta requiere un número de teléfono para las plantillas de autenticación de un toque, cero toques y copia de código, así que ese envío se acepta y luego falla.
- **Un valor que no es ni un número de teléfono ni un BSUID bien formado se rechaza en la aceptación**, con un `422` [`E15001`](/docs/api/errors/E15001) `WhatsAppInvalidRecipient`.
- **El precio se determina por el prefijo de país del BSUID.** Un número de teléfono proporciona el país contra el que se tarifica un mensaje, y en un envío por BSUID el prefijo de dos letras lo proporciona en su lugar.

Todo lo demás del envío permanece igual: la [ventana de servicio al cliente](/docs/guides/whatsapp/message-types#the-customer-service-window) sigue controlando el contenido libre, y el `202` sigue significando aceptado, no entregado.

**Dirige el mensaje al contacto con la identidad con la que te escribió.** Bird registra una ventana abierta bajo cada identidad que traía el mensaje entrante, y un envío busca la ventana bajo la identidad a la que se dirige. Un contacto que te escribió solo por BSUID no deja ninguna ventana asociada a un número de teléfono, así que un envío libre a un número de teléfono que tengas de otra fuente puede rechazarse con un `422` [`E15044`](/docs/api/errors/E15044) `WhatsAppServiceWindowClosed` aunque Meta aún considere la conversación abierta. Responder al `from` de su mensaje evita la discrepancia.

## Lectura y filtrado por BSUID

Cada lectura trae las identidades que el mensaje contenga:

- **En un mensaje**, `from` y `to` llevan cada uno un `phone_number`, un `bsuid`, o ambos. Un mensaje entrante nombra al contacto en `from`; uno saliente lo nombra en `to`.
- **En un webhook**, las mismas direcciones van en el payload del evento. Consulta [eventos de WhatsApp](/docs/guides/whatsapp/events#the-event-envelope) para ver la estructura.
- **En la lista de mensajes**, `to` y `from` aceptan cada uno un BSUID además de un número de teléfono, y cada uno coincide con un extremo del mensaje. El filtro `bsuid` coincide con el contacto en cualquier dirección. El filtro anterior `phone_number` está deprecado: `to` y `from` lo reemplazan y coinciden con ambos tipos de identidad.

Almacena ambas identidades junto a tu propio registro de contacto y usa tu propio identificador como clave en lugar de cualquiera de los de Meta. Un contacto puede llegar solo con un BSUID; cuando comparta su número de teléfono, también podrás asociarlo a su registro. Si cambia de número, recibirá un nuevo BSUID.

## Próximos pasos

- [Recepción de tarjetas de contacto](/docs/guides/whatsapp/receiving-whatsapp/contact-cards): el canal por el que llega el número compartido
- [Solicitudes de información de contacto de WhatsApp](/docs/guides/whatsapp/message-types/interactive/contact-info-requests): el botón que la pide
- [Envío de mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): la estructura de la solicitud, el modelo `202` y reintentos seguros
- [Referencia de identificadores de usuario con alcance de negocio de Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/business-scoped-user-ids): el despliegue, los BSUID padre y el resto de las superficies de Meta

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
