# Mensagens de sticker no WhatsApp

Uma mensagem de sticker carrega uma URL pública de WebP que o WhatsApp busca no momento do envio. É o tipo de mídia mais simples: sem legenda, sem nenhum outro campo opcional no envio.

## Enviar um sticker

Defina `sticker.url`; não há mais nada a acrescentar:

**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](/pt-br/documentacao/guides/whatsapp/message-types/stickers.ts.md) · [Python](/pt-br/documentacao/guides/whatsapp/message-types/stickers.py.md) · [Go](/pt-br/documentacao/guides/whatsapp/message-types/stickers.go.md) · [PHP](/pt-br/documentacao/guides/whatsapp/message-types/stickers.php.md) · [CLI](/pt-br/documentacao/guides/whatsapp/message-types/stickers.cli.md) · [MCP](/pt-br/documentacao/guides/whatsapp/message-types/stickers.mcp.md) · [cURL](/pt-br/documentacao/guides/whatsapp/message-types/stickers.curl.md)

`sticker` não tem o campo `caption`, e `animated` não é algo que você define no envio; Bird apenas o retorna em um sticker recebido. `from` é obrigatório em toda mensagem de serviço: um número que o seu espaço de trabalho possui, não um gerenciado pelo Bird.

## Limites

| Campo                        | Limite                                        | Aplicado por                                |
| ---------------------------- | --------------------------------------------- | ------------------------------------------- |
| Tamanho do arquivo, estático | 100 KB                                        | Apenas WhatsApp, no fetch (assíncrono)      |
| Tamanho do arquivo, animado  | 500 KB                                        | Apenas WhatsApp, no fetch (assíncrono)      |
| Tipo de arquivo              | Somente WebP                                  | Apenas WhatsApp, no fetch (assíncrono)      |
| `caption`                    | campo inválido                                | Bird, no aceite (`422`, rejeição de schema) |
| `url`                        | absoluta, `https`, com host, sem espaço bruto | Bird, no aceite (`422`)                     |

Bird verifica o formato da URL antes de qualquer enfileiramento; não verifica o tamanho real do arquivo, o formato nem se é estático ou animado. Apenas o fetch do próprio WhatsApp no momento do envio pode fazer isso. Enviar um `caption` não é um erro de tamanho; o campo não existe no schema desse tipo, então falha como propriedade não reconhecida. Veja no hub [enviar mídia por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) e [quando a mídia falha](/docs/guides/whatsapp/message-types#when-media-fails).

## Lendo um sticker recebido

Um sticker recebido carrega um `id`, `mime_type` e `animated` que o Bird obteve ao buscar o arquivo. Os três estão ausentes na leitura de uma mensagem enviada, já que o Bird nunca buscou nem inspecionou o arquivo que enviou. Veja [Recebendo stickers do WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/stickers) para a leitura completa do recebimento, o payload `whatsapp.received` e o que observar.

## Limites e modos de falha

- **A janela de atendimento ao cliente precisa estar aberta.** Stickers são mensagens de serviço, entregáveis apenas dentro de uma janela aberta; veja no hub a [janela de atendimento ao cliente](/docs/guides/whatsapp/message-types#the-customer-service-window).
- **Bird rejeita `http`; o próprio WhatsApp faria o fetch.** Veja no hub [enviar mídia por URL](/docs/guides/whatsapp/message-types#sending-media-by-url) para a verificação completa do formato.
- **Um fetch rejeitado ainda é cobrado.** Veja no hub [quando a mídia falha](/docs/guides/whatsapp/message-types#when-media-fails). O texto de rejeição específico de sticker do WhatsApp não foi medido de forma independente, então trate o mapeamento como inferido por simetria e não como confirmado por causa.
- **`animated` é somente leitura, e só aparece em um sticker recebido ou buscado.** É o veredito do próprio WhatsApp sobre o arquivo, não algo que você possa declarar. Se o sticker é estático ou animado muda apenas o limite de tamanho; WebP é obrigatório em ambos os casos.
- **WhatsApp mantém em cache uma URL buscada por cerca de 10 minutos.** Reenviar a URL idêntica dentro dessa janela reutiliza o primeiro fetch; altere a URL para forçar uma nova busca.

## Próximos passos

- [Mensagens de serviço do WhatsApp](/docs/guides/whatsapp/message-types): a janela de atendimento ao cliente e o modelo que toda mensagem de serviço compartilha
- [Áudio](/docs/guides/whatsapp/message-types/audio): outro tipo de mídia sem campo de legenda
- [Imagens](/docs/guides/whatsapp/message-types/images): para uma foto ou gráfico com legenda
- [Enviando mensagens do WhatsApp](/docs/guides/whatsapp/sending-whatsapp): o envelope de solicitação, o modelo `202` e tentativas seguras de reenvio

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