# Mensajes de servicio de WhatsApp

Un **mensaje de servicio** es cualquier cosa que envías y que no es una plantilla preaprobada: el contenido libre que un negocio envía dentro de una conversación abierta. `POST /v1/whatsapp/messages` lleva exactamente uno de nueve tipos de contenido de mensaje de servicio, o una plantilla. Esta página cubre lo que comparten los nueve tipos; la página de cada tipo cubre su formato en la red y sus propios límites.

## Los tipos de contenido

| Tipo                                                                      | Campo           | Qué transporta                                                                                               | Úsalo cuando                                                                  |
| ------------------------------------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| [Texto plano](/docs/guides/whatsapp/message-types/plain-text)             | `text`          | Un cuerpo de hasta 4096 caracteres, con una vista previa de enlace opcional                                  | envías un mensaje sin adjunto                                                 |
| [Imágenes](/docs/guides/whatsapp/message-types/images)                    | `image`         | Una URL pública de imagen y un pie de foto opcional                                                          | envías una foto o un gráfico                                                  |
| [Vídeo](/docs/guides/whatsapp/message-types/video)                        | `video`         | Una URL pública de vídeo y un pie de foto opcional                                                           | envías un clip de vídeo                                                       |
| [Audio](/docs/guides/whatsapp/message-types/audio)                        | `audio`         | Una URL pública de audio, que opcionalmente se muestra como nota de voz                                      | envías un mensaje de voz o un clip de audio                                   |
| [Stickers](/docs/guides/whatsapp/message-types/stickers)                  | `sticker`       | Una URL pública de imagen WebP                                                                               | envías un sticker                                                             |
| [Documentos](/docs/guides/whatsapp/message-types/documents)               | `document`      | Una URL pública de archivo, un pie de foto opcional y un nombre de archivo opcional                          | envías un PDF, una hoja de cálculo u otro archivo                             |
| [Ubicación](/docs/guides/whatsapp/message-types/location)                 | `location`      | Latitud y longitud, con un nombre y una dirección opcionales                                                 | envías un pin, como un punto de recogida                                      |
| [Tarjetas de contacto](/docs/guides/whatsapp/message-types/contact-cards) | `contact_cards` | De una a cinco tarjetas de contacto, cada una con un nombre y cualquier número, email, sitio web o dirección | compartes los datos de alguien, como el número de un compañero                |
| [Mensajes interactivos](/docs/guides/whatsapp/message-types/interactive)  | `interactive`   | Texto del cuerpo más un botón, un menú, un enlace, una tarjeta o una solicitud de ubicación o contacto       | quieres que el destinatario pulse algo en vez de escribir una respuesta libre |

Una solicitud lleva exactamente uno de `template` o uno de estos nueve campos. Una solicitud que no lleve ninguno, o que lleve más de uno, se rechaza con un `422`.

## La ventana de atención al cliente

Un mensaje de servicio, es decir, cualquiera de los nueve tipos anteriores, solo se entrega dentro de una ventana de atención al cliente de 24 horas abierta. El contacto abre esa ventana al enviar un mensaje o llamar a tu número de negocio, y cada mensaje posterior del contacto la restablece a 24 horas.

Un mensaje de servicio enviado a una ventana cerrada se rechaza de inmediato: la solicitud devuelve un `422` [`E15044`](/docs/api/errors/E15044) `WhatsAppServiceWindowClosed`, y no se crea ni se cobra nada. Envía una plantilla aprobada en su lugar; llega al contacto independientemente de la ventana, y su respuesta la reabre. Si la ventana se cierra en el instante entre la aceptación y el envío, también falla, pero de forma asíncrona: el mensaje llega a `failed` con `service_window_expired` en `last_error`.

La comprobación en el momento de aceptación es de mejor esfuerzo, no una garantía: **la puerta falla en abierto**, así que un fallo de caché o un error de lectura deja pasar el envío en lugar de bloquearlo. Un `202` no es, por tanto, prueba de que la ventana estaba abierta cuando se realizó el envío; la señal definitiva es el estado del propio mensaje, no la respuesta de aceptación.

Todo mensaje de servicio también requiere `from`, un número que pertenezca a tu espacio de trabajo. Los números gestionados de Bird no pueden llevarlo, así que un mensaje de servicio necesita primero un número propio conectado; consulta [Configuración del número de teléfono](/docs/guides/whatsapp/phone-number-setup).

Consulta [la ventana de atención al cliente](/docs/knowledge-base/whatsapp/customer-service-window) para el ciclo de vida completo: cómo se abre la ventana, qué la restablece y cómo se rastrea.

## Envío de medios por URL

`image`, `video`, `audio`, `sticker` y `document` toman una `url` que apunta a un archivo que WhatsApp descarga en el momento del envío, en lugar de un archivo que tú subes a Bird. Bird comprueba la forma de la URL en la aceptación, antes de poner nada en cola:

- No vacía y analizable, con un host y sin espacios sin codificar
- El esquema es `https`

Una URL `http` se rechaza con un `422` en la aceptación, aunque WhatsApp la descargaría sin problema. Es política de Bird, no un límite que imponga WhatsApp.

Bird no comprueba el tamaño del archivo, su tipo MIME ni si la URL es accesible. WhatsApp descarga la URL cuando envía el mensaje, así que una URL firmada tiene que seguir válida más allá de ese momento, no solo en el instante en que envías la solicitud; una URL privada o expirada falla cuando WhatsApp intenta descargarla. WhatsApp también almacena en caché una URL descargada durante aproximadamente 10 minutos, así que reenviar la misma URL dentro de esa ventana sirve la primera descarga en vez de descargar de nuevo.

## Cuando falla el medio

Un envío de medio sigue la misma ruta asíncrona que cualquier mensaje de WhatsApp: Bird devuelve `202` y acepta el mensaje, y luego WhatsApp descarga la URL cuando lo envía. Si esa descarga falla, el mensaje llega a `failed` con `media_rejected` en `last_error`, que es el `131053` de Meta por debajo.

`media_rejected` es un código genérico que abarca un archivo demasiado grande, un `404`, un fallo de DNS y un tipo MIME incorrecto por igual; Bird no lo desglosa más, así que no esperes un código distinto por cada causa.

Un envío de medio que falla de forma asíncrona se cobra igualmente. El cobro ocurre cuando Bird procesa el envío aceptado, antes de que WhatsApp descargue la URL, y no hay forma de reembolso una vez que se aplica el cargo. Planifica en consecuencia: un mensaje que falla después en `media_rejected` ya costó lo mismo que uno que se entregó.

## Leer lo que envió un contacto

Un mensaje entrante lleva uno de los mismos nueve tipos, así que el campo que lees coincide con el tipo que usó el contacto. Las tarjetas de contacto se leen en el mismo campo `contact_cards` tanto si el contacto compartió una como si la enviaste tú. [Recibir mensajes de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp) cubre la lectura de mensajes entrantes a través de API, la descarga de medios que envió un contacto y el webhook `whatsapp.received`.

## Próximos pasos

- [Enviar mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): la estructura de la solicitud, el modelo `202` y los reintentos seguros
- [Mensajes interactivos](/docs/guides/whatsapp/message-types/interactive): los seis tipos que un destinatario puede pulsar
- [Recibir mensajes de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp): mensajes entrantes, medios y el webhook `whatsapp.received`
- [Plantillas de WhatsApp](/docs/guides/whatsapp/templates): los mensajes que puedes seguir enviando cuando la ventana está cerrada

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