# Mensajes de audio de WhatsApp

Un mensaje de audio lleva una URL pública que WhatsApp obtiene en el momento del envío. No tiene pie de texto y opcionalmente puede mostrarse como nota de voz.

## Enviar un mensaje de audio

Configura `audio.url`:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  audio: { url: "https://cdn.example.com/vm/9f2.ogg" },
});
console.log(msg.id, msg.status);
```

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

La forma completa añade el flag opcional `voice`, el único otro campo que tiene `audio`:

```json
{
  "to": "+16505551234",
  "from": "+13124495648",
  "audio": { "url": "https://cdn.example.com/voice/9f2e4a.ogg", "voice": true }
}
```

`audio` no tiene campo `caption` en absoluto. `from` es obligatorio en cada mensaje de servicio: un número que tu espacio de trabajo posee, no uno gestionado por Bird.

## Límites

| Campo             | Límite                                                                      | Validado por                                 |
| ----------------- | --------------------------------------------------------------------------- | -------------------------------------------- |
| Tamaño de archivo | 16 MB                                                                       | Solo WhatsApp, al obtener (async)            |
| Formato           | AAC, AMR, MP3, M4A u OGG con el códec OPUS, mono                            | Solo WhatsApp, al obtener (async)            |
| `voice: true`     | requiere `.ogg`/OPUS, mono; otros formatos hacen que la transcripción falle | Solo WhatsApp, al obtener (async)            |
| `caption`         | no es un campo válido                                                       | Bird, al aceptar (`422`, rechazo de esquema) |
| `url`             | absoluta, `https`, tiene host, sin espacios en blanco                       | Bird, al aceptar (`422`)                     |

Bird comprueba la forma de la URL antes de encolar nada; no comprueba el tamaño real del archivo, el formato ni el códec, y no comprueba que un envío con `voice: true` sea realmente `.ogg`/OPUS. Solo la obtención propia de WhatsApp en el momento del envío puede hacerlo. Enviar un `caption` en un mensaje de audio no es un error de longitud; el campo no existe en el esquema de este tipo, así que falla como propiedad no reconocida. Consulta en el hub [enviar multimedia por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) y [cuando falla la multimedia](/docs/guides/whatsapp/message-types#when-media-fails).

## Leer un mensaje de audio entrante

Un mensaje de audio entrante lleva el mismo objeto `audio`, más un `id` y `mime_type` que Bird obtuvo al descargar el archivo, y sin `caption` en ninguna dirección. Consulta [Recibir audio de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/audio) para la lectura entrante completa, el payload `whatsapp.received` y qué tener en cuenta.

## Límites y modos de fallo

- **La ventana de atención al cliente tiene que estar abierta.** El audio es un mensaje de servicio, entregable solo dentro de una ventana abierta; consulta en el hub la [ventana de atención al cliente](/docs/guides/whatsapp/message-types#the-customer-service-window).
- **Bird rechaza `http`; WhatsApp sí la obtendría.** Consulta en el hub [enviar multimedia por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) para la comprobación de forma completa.
- **Una obtención rechazada se cobra igualmente.** Consulta en el hub [cuando falla la multimedia](/docs/guides/whatsapp/message-types#when-media-fails). El texto de rechazo propio de audio de WhatsApp no se ha medido de forma independiente, así que trata la correspondencia como inferida por simetría en lugar de confirmada por causa.
- **El flag `voice` cambia cómo el cliente del destinatario muestra el mensaje, no lo que Bird valida.** `voice: true` lo muestra como nota de voz: se descarga automáticamente, muestra un icono de micrófono en línea y puede transcribirse. Para que funcione correctamente necesitas un archivo `.ogg` codificado con OPUS, mono; cualquier otro formato se envía igual, pero la transcripción falla en el lado del destinatario. `voice` tiene como valor predeterminado `false`.
- **El umbral del icono de reproducción de WhatsApp y la señal "played" no son algo que Bird exponga.** WhatsApp documenta un comportamiento del cliente con notas de voz pequeñas y un estado de reproducido, pero Bird no modela ninguno de los dos; no construyas una integración que espere leer cualquiera de ellos desde la API.
- **WhatsApp almacena en caché una URL obtenida durante unos 10 minutos.** Reenviar la misma URL dentro de esa ventana sirve de nuevo la primera obtención; varía la URL para forzar una nueva.

## Siguientes pasos

- [Mensajes de servicio de WhatsApp](/docs/guides/whatsapp/message-types): la ventana de atención al cliente y el modelo que comparten todos los mensajes de servicio
- [Video](/docs/guides/whatsapp/message-types/video): para un clip de video en lugar de audio
- [Stickers](/docs/guides/whatsapp/message-types/stickers): otro tipo de multimedia sin campo de pie de texto
- [Enviar mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): el sobre de la solicitud, el modelo `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)
