Drawing 1 · Interactive
Static or animated: read the sticker spec sheet
| Static sticker | Animated sticker | |
|---|---|---|
| File format | ||
| Max file size | ||
| Canvas | ||
| Caption | ||
| Send by | ||
| Inbound webhook |
Hover, tap or arrow-key through the cells — a dot in the corner means there is a note.
Inbound webhook by Static sticker
animated: falseWhat you receive
Plus mime_type, sha256 and a media ID valid for 7 days.
Legend — press one to highlight its cells
Row 6 of 6. Inbound webhook × Static sticker: animated: false. Plus mime_type, sha256 and a media ID valid for 7 days.
What is a sticker message?
A sticker message is one of the WhatsApp Message Types: it sends a single sticker — a WebP image, static or animated, shown in the chat without a bubble around it. On the Cloud API it is type: sticker with a sticker object holding either the id of uploaded media or a link to a hosted file. It is one of the types covered by Media Message, narrower than that overview, and the only type that accepts WebP files at all.
The format rules are strict. Meta's Media File Limits list stickers as image/webp only: static stickers up to 100 KB and animated stickers up to 500 KB. WhatsApp's sticker guidelines use a square 512 × 512 pixel canvas with a transparent background, which is what makes an image read as a sticker rather than a photo; the Cloud API documents only format and size, so treat that canvas as the safe default. Stickers take no caption, and like every non-template type they can only be sent while a 24-hour customer service window is open.
Customers send stickers too. An inbound sticker arrives on the Messages Webhook as type: sticker with mime_type: image/webp, a sha256 hash, a media id and an animated flag that is true for animated stickers. A media ID received in a webhook expires after 7 days, and the download URL you fetch with it after 5 minutes, so download any sticker you need to keep promptly. A sticker is a message of its own; an emoji pinned to an earlier bubble is a Reaction Message.
Key takeaways
- A sticker message sends one WebP image as a sticker, with
type: stickerand a mediaidorlink. - Static stickers can be up to 100 KB and animated stickers up to 500 KB, both as
image/webp. - WebP files can only be sent as stickers; use JPEG or PNG for an ordinary image message.
- Stickers carry no caption, and like every free-form type they need an open 24-hour window.
- Inbound stickers arrive with an
animatedflag and a media ID that expires after 7 days.
Specifications
A sticker message: key facts and limits
- Type
- sticker
- Format
- WebP only (image/webp)
- Static sticker
- Up to 100 KB
- Animated sticker
- Up to 500 KB
- Canvas
- 512 × 512 px, transparent (WhatsApp sticker guidelines)
- Caption
- Not supported
- Media ID lifetime
- 30 days uploaded · 7 days from a webhook
- Inbound flag
- animated: true or false
Implementation
A sticker message in code
# 1. Upload the WebP once and keep the returned media ID (valid for 30 days)curl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/media" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-F "messaging_product=whatsapp" \-F "file=@in-the-oven.webp;type=image/webp"# -> {"id":"{MEDIA_ID}"}# 2. Send it as a sticker inside the customer's open windowcurl -X POST "https://graph.facebook.com/v26.0/{PHONE_NUMBER_ID}/messages" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-H "Content-Type: application/json" \-d '{"messaging_product": "whatsapp","recipient_type": "individual","to": "919812345678","type": "sticker","sticker": { "id": "{MEDIA_ID}" }}'
Operating sequence
How does a sticker message work?
Design on the right canvas
Export a 512 × 512 WebP with a transparent background. Keep static files under 100 KB and animated ones under 500 KB.
Upload once
Use a Media Upload: POST the file to
/{PHONE_NUMBER_ID}/mediawith typeimage/webpto get a media ID. Uploaded IDs expire after 30 days, so keep the source file and re-upload on a schedule.Send by ID
Send
type: stickerwithsticker.idinside the customer's open window. Alinkalso works, but Meta recommends uploaded media over hosted links.Watch the status
A sticker gets the usual sent, delivered and read statuses keyed to its wamid; a failed status explains what went wrong.
Handle inbound stickers
Branch on
type: sticker, download it through the media ID within 7 days if you need it, and respond to the person rather than ignoring the message.
Failure modes
Common mistakes with a sticker message
Renaming a PNG to .webp
The extension does not change the format. Convert the file properly and check its RIFF/WEBP header before uploading.
Oversized animations
Animated stickers over 500 KB are rejected. Drop frames, shorten the loop or simplify the artwork until it fits.
Sending a sticker to open a conversation
Stickers are free-form, so they fail outside the 24-hour window, and templates cannot carry them either. Start with a template; send stickers once the customer replies.
Expecting a caption
Stickers carry no text. Send the words as a separate message first, and wait for it to be delivered so the two arrive in order.
Ignoring inbound stickers
A bot that only handles text leaves sticker replies unanswered. Add a branch, even if all it does is acknowledge.
Recommended practice
Best practices for a sticker message
- Keep a small, reviewed sticker set and store the source files so you can re-upload when media IDs expire.
- Use stickers for moments of delight, not for information the customer has to act on.
- Test static and animated stickers on both Android and iOS before launch.
Example: Four stickers for a bakery's order updates
A Pune bakery designs four branded stickers — 'Order received', 'In the oven', 'Out for delivery' and 'Enjoy!' — as 512 × 512 WebP files: three static at about 40 KB and one animated at 380 KB. A monthly job re-uploads them and stores the fresh media IDs. When a customer confirms an order inside the window, the bot sends the order summary as text and, once that reports delivered, the 'In the oven' sticker, so the two never arrive in the wrong order. Customers often answer with a sticker of their own, which the bot acknowledges with a 👍 reaction instead of trying to interpret it.
Sticker Message FAQs
What size can a WhatsApp sticker be?+
Can I send a sticker with the WhatsApp Business API?+
Can I add a caption to a WhatsApp sticker?+
How do I tell if an inbound WhatsApp sticker is animated?+
Design intent
Why does a sticker message matter?
Stickers are part of everyday chat in India, and a small set of branded ones — 'Order packed!', 'Thank you' — can make a transactional flow feel human without adding words. They are also a quiet source of failures: a PNG renamed to .webp, an animated file at 700 KB, a sticker sent after the window closed. Inbound, an unhandled sticker is a customer message your bot ignored, which is why even teams that never send stickers need to handle receiving them.