# Mensajes de sticker de WhatsApp

Un mensaje de sticker lleva una URL pública de WebP que WhatsApp descarga en el momento del envío. Es el tipo de medio más simple: sin pie de imagen, sin ningún otro campo opcional al enviar.

## Enviar un sticker

Configura `sticker.url`; no hay nada más que agregar:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  sticker: { url: "https://cdn.example.com/stickers/thumbs-up.webp" },
});
console.log(msg.id, msg.status);
```

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

`sticker` no tiene el campo `caption`, y `animated` no es algo que configures al enviar; Bird solo lo devuelve en un sticker entrante. `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                                           | Aplicado por                                 |
| --------------------------- | ------------------------------------------------ | -------------------------------------------- |
| Tamaño de archivo, estático | 100 KB                                           | Solo WhatsApp, al descargar (async)          |
| Tamaño de archivo, animado  | 500 KB                                           | Solo WhatsApp, al descargar (async)          |
| Tipo de archivo             | Solo WebP                                        | Solo WhatsApp, al descargar (async)          |
| `caption`                   | no es un campo válido                            | Bird, al aceptar (`422`, rechazo de esquema) |
| `url`                       | absoluta, `https`, con host, sin espacios crudos | Bird, al aceptar (`422`)                     |

Bird verifica la forma de la URL antes de poner nada en cola; no verifica el tamaño real del archivo, su formato ni si es estático o animado. Solo la descarga propia de WhatsApp en el momento del envío puede hacerlo. Enviar un `caption` 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 [envío de medios por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) y [cuando un medio falla](/docs/guides/whatsapp/message-types#when-media-fails).

## Leer un sticker entrante

Un sticker entrante incluye un `id`, `mime_type` y `animated` que Bird obtuvo al descargar el archivo. Los tres están ausentes en una lectura de un envío saliente, ya que Bird nunca descargó ni inspeccionó el archivo que envió. Consulta [Recibir stickers de WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/stickers) para la lectura entrante completa, el payload `whatsapp.received` y qué tener en cuenta.

## Límites y modos de fallo

- **La ventana de servicio al cliente debe estar abierta.** Los stickers son mensajes de servicio, entregables solo dentro de una ventana abierta; consulta en el hub la [ventana de servicio al cliente](/docs/guides/whatsapp/message-types#the-customer-service-window).
- **Bird rechaza `http`; WhatsApp sí lo descargaría.** Consulta en el hub [envío de medios por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) para la verificación completa de forma.
- **Una descarga rechazada se cobra de todas formas.** Consulta en el hub [cuando un medio falla](/docs/guides/whatsapp/message-types#when-media-fails). El texto de rechazo propio de sticker de WhatsApp no se ha medido de forma independiente, así que trata la correspondencia como inferida por simetría en vez de confirmada por causa.
- **`animated` es de solo lectura y solo está presente en un sticker entrante o descargado.** Es el veredicto propio de WhatsApp sobre el archivo, no algo que puedas declarar. Que un sticker sea estático o animado solo cambia su límite de tamaño; WebP es obligatorio en ambos casos.
- **WhatsApp guarda en caché una URL descargada durante unos 10 minutos.** Reenviar la misma URL dentro de esa ventana sirve la primera descarga de nuevo; varía la URL para forzar una nueva.

## 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
- [Audio](/docs/guides/whatsapp/message-types/audio): otro tipo de medio sin campo de pie de imagen
- [Imágenes](/docs/guides/whatsapp/message-types/images): para una foto o gráfico con pie de imagen
- [Enviar mensajes de WhatsApp](/docs/guides/whatsapp/sending-whatsapp): la envoltura 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)
