# Mensajes de ubicación de WhatsApp

Un mensaje de ubicación envía un pin: un punto en el mapa, con un nombre y una dirección opcionales debajo. Esta es la parte de envío; para pedirle a un contacto que comparta su ubicación, consulta [solicitudes de ubicación](/docs/guides/whatsapp/message-types/interactive/location-requests).

## Enviar una ubicación

Establece `location.latitude` y `location.longitude`:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  location: { latitude: 37.7793, longitude: -122.4193 },
});
console.log(msg.id, msg.status);
```

Examples: [TypeScript](/es-es/documentacion/guides/whatsapp/message-types/location.ts.md) · [Python](/es-es/documentacion/guides/whatsapp/message-types/location.py.md) · [Go](/es-es/documentacion/guides/whatsapp/message-types/location.go.md) · [PHP](/es-es/documentacion/guides/whatsapp/message-types/location.php.md) · [CLI](/es-es/documentacion/guides/whatsapp/message-types/location.cli.md) · [MCP](/es-es/documentacion/guides/whatsapp/message-types/location.mcp.md) · [cURL](/es-es/documentacion/guides/whatsapp/message-types/location.curl.md)

La forma completa añade `name` y `address`:

```json
{
  "to": "+16505551234",
  "from": "+13124495648",
  "location": {
    "latitude": 37.7793,
    "longitude": -122.4193,
    "name": "Ferry Building Pickup",
    "address": "1 Market St, San Francisco, CA 94105"
  }
}
```

`address` solo se muestra al destinatario cuando `name` también está establecido. `from` es obligatorio en cada mensaje de servicio: un número que pertenece a tu espacio de trabajo, no uno gestionado por Bird.

## Límites

| Campo       | Restricción                                                                     | Aplicado por             |
| ----------- | ------------------------------------------------------------------------------- | ------------------------ |
| `latitude`  | obligatorio, -90 a 90, grados decimales                                         | Bird, al aceptar (`422`) |
| `longitude` | obligatorio, -180 a 180, grados decimales                                       | Bird, al aceptar (`422`) |
| `name`      | opcional, hasta 1000 caracteres                                                 | Bird, al aceptar (`422`) |
| `address`   | opcional, hasta 1000 caracteres, se muestra solo cuando `name` está establecido | Bird, al aceptar (`422`) |

La documentación propia de WhatsApp indica `latitude` y `longitude` como obligatorios sin un rango numérico declarado; la verificación de rango ±90/±180 y los límites de 1000 caracteres en `name` y `address` son restricciones propias de Bird.

## Leer una ubicación entrante

Un contacto que comparte su ubicación, de forma espontánea o en respuesta a una solicitud de ubicación, genera un mensaje entrante ordinario de `location`. Nada en él está garantizado: un pin sin procesar puede llegar sin `name` ni `address`, y uno entrante también puede incluir un `url` que enlaza al lugar, algo que nunca aparece en una ubicación que tú envías. La ubicación no es un tipo de medio, así que no hay archivo que descargar. Consulta [Recibir ubicaciones de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/location) para la lectura entrante completa, el payload de `whatsapp.received` y qué tener en cuenta.

## Límites y casos especiales

- **La ventana de servicio al cliente debe estar abierta.** Un envío de ubicación es un mensaje de servicio, entregable solo dentro de una ventana abierta; consulta la [ventana de servicio al cliente](/docs/guides/whatsapp/message-types#the-customer-service-window) del hub.
- **`name` y `address` son genuinamente opcionales en lectura, no opcionales con respaldo.** Un pin sin procesar no tiene ninguno de los dos, y `address` nunca aparece sin `name`. No asumas que una dirección postal acompaña a un par de coordenadas.
- **Este no es el mismo tipo que una solicitud de ubicación.** Las [solicitudes de ubicación](/docs/guides/whatsapp/message-types/interactive/location-requests) son un tipo interactivo que pide al destinatario su propia ubicación; esta página envía una hacia ellos. No confundas las dos formas de envío.
- **Un toque en una solicitud de ubicación regresa como un mensaje entrante ordinario de `location`, no como un `interactive_reply`.** Una integración que solo observa `interactive_reply` para toques pierde esto por completo; también debe observar mensajes entrantes de `location`.

## Próximos pasos

- [Mensajes de servicio de WhatsApp](/docs/guides/whatsapp/message-types): la ventana de servicio al cliente y el modelo que comparten todos los mensajes de servicio
- [Solicitudes de ubicación](/docs/guides/whatsapp/message-types/interactive/location-requests): pide a un contacto su ubicación en lugar de enviarle una
- [Enviar mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): la estructura de la solicitud, el modelo de `202` y reintentos seguros

## 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)
