# Pesan stiker WhatsApp

Pesan stiker membawa URL WebP publik yang diambil WhatsApp saat pengiriman. Ini adalah jenis media paling sederhana: tanpa caption, tanpa field opsional lain saat mengirim.

## Mengirim stiker

Atur `sticker.url`; tidak ada yang perlu ditambahkan lagi:

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

`sticker` tidak memiliki field `caption`, dan `animated` bukan sesuatu yang Anda atur saat mengirim; Bird hanya melaporkannya kembali pada stiker masuk. `from` wajib ada di setiap pesan layanan: nomor milik workspace Anda, bukan nomor yang dikelola Bird.

## Batas

| Field                | Batas                                               | Diterapkan oleh                            |
| -------------------- | --------------------------------------------------- | ------------------------------------------ |
| Ukuran file, statis  | 100 KB                                              | Hanya WhatsApp, saat fetch (async)         |
| Ukuran file, animasi | 500 KB                                              | Hanya WhatsApp, saat fetch (async)         |
| Tipe file            | Hanya WebP                                          | Hanya WhatsApp, saat fetch (async)         |
| `caption`            | bukan field yang valid                              | Bird, saat accept (`422`, penolakan skema) |
| `url`                | absolut, `https`, memiliki host, tanpa spasi mentah | Bird, saat accept (`422`)                  |

Bird memeriksa bentuk URL sebelum apa pun diantrikan; ia tidak memeriksa ukuran file sebenarnya, format, atau apakah file tersebut statis atau animasi. Hanya fetch WhatsApp sendiri saat pengiriman yang dapat melakukannya. Mengirim `caption` bukan error panjang; field tersebut tidak ada pada skema arm ini, sehingga gagal sebagai properti yang tidak dikenali. Lihat [mengirim media melalui URL](/docs/guides/whatsapp/message-types#sending-media-by-url) dan [saat media gagal](/docs/guides/whatsapp/message-types#when-media-fails) di hub.

## Membaca stiker masuk

Stiker masuk membawa `id`, `mime_type`, dan `animated` yang dipelajari Bird dengan mengambil file tersebut. Ketiganya tidak ada pada pembacaan kembali pesan keluar, karena Bird tidak pernah mengambil atau memeriksa file yang dikirimnya. Lihat [Menerima stiker WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/stickers) untuk pembacaan masuk secara lengkap, payload `whatsapp.received`, dan hal-hal yang perlu diperhatikan.

## Batas dan mode kegagalan

- **Jendela layanan pelanggan harus terbuka.** Stiker adalah pesan layanan, hanya dapat dikirim di dalam jendela yang terbuka; lihat [jendela layanan pelanggan](/docs/guides/whatsapp/message-types#the-customer-service-window) di hub.
- **Bird menolak `http`; WhatsApp sendiri yang akan mengambilnya.** Lihat [mengirim media melalui URL](/docs/guides/whatsapp/message-types#sending-media-by-url) di hub untuk pemeriksaan bentuk lengkap.
- **Fetch yang ditolak tetap dikenakan biaya.** Lihat [saat media gagal](/docs/guides/whatsapp/message-types#when-media-fails) di hub. Teks penolakan stiker dari WhatsApp belum diukur secara independen, jadi perlakukan pemetaan tersebut sebagai kesimpulan berdasarkan simetri, bukan dikonfirmasi per penyebab.
- **`animated` bersifat read-only, dan hanya ada pada stiker masuk atau yang sudah di-fetch.** Ini adalah penilaian WhatsApp sendiri terhadap file, bukan sesuatu yang dapat Anda deklarasikan. Apakah stiker statis atau animasi hanya memengaruhi batas ukurannya; WebP tetap wajib.
- **WhatsApp meng-cache URL yang di-fetch selama sekitar 10 menit.** Mengirim ulang URL yang sama dalam jendela tersebut akan menyajikan kembali fetch pertama; ubah URL untuk memaksa fetch baru.

## Langkah selanjutnya

- [Pesan layanan WhatsApp](/docs/guides/whatsapp/message-types): jendela layanan pelanggan dan model yang digunakan bersama oleh setiap pesan layanan
- [Audio](/docs/guides/whatsapp/message-types/audio): jenis media lain tanpa field caption
- [Gambar](/docs/guides/whatsapp/message-types/images): untuk foto atau grafis dengan caption
- [Mengirim pesan WhatsApp](/docs/guides/whatsapp/sending-whatsapp): envelope permintaan, model `202`, dan coba lagi yang aman

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