Skip to content

Concept map· 6 connected terms

Reaction Message

Also called: WhatsApp reaction · Emoji reaction · Message reaction

In one line
An emoji reaction a business or user attaches to a specific earlier message by its ID, a lightweight acknowledgement that can also be removed.

Reviewed

What is a reaction message?

A reaction message is an emoji that a business or a customer attaches to a specific earlier message in a WhatsApp chat. It appears as a small badge on the original bubble rather than as a new message, and it points at that message by its WhatsApp Message ID (WAMID). On the Cloud API it is one of the WhatsApp Message Types in its own right, reaction, with two fields: message_id, the wamid being reacted to, and emoji, the emoji itself or its Unicode escape sequence.

Businesses send reactions through the messages endpoint like any other free-form type, so a 24-hour customer service window must be open. Meta delivers a reaction only when the target message is no more than 30 days old, exists in the chat thread, has not been deleted and is not itself a reaction; otherwise a messages webhook reports error 131009. A sent reaction triggers only a sent status on the Statuses Webhook — never delivered or read — so a status model that waits for them will wait forever.

Customers' reactions arrive on the Messages Webhook as type: reaction, holding the message_id of your message and the emoji, for business messages sent within the last 30 days. If the customer removes their reaction, another webhook arrives with the emoji property omitted. A reaction differs from a Contextual Reply, which quotes a message and adds new content: a reaction acknowledges, a reply answers. It is also separate from Mark as Read, the API call that shows the customer blue ticks on their message; many inboxes do both when an agent acknowledges a photo.

Key takeaways

  • A reaction message pins one emoji to an earlier message, identified by its wamid, instead of adding a new bubble.
  • Send type: reaction with message_id and emoji; an empty emoji removes the reaction.
  • Reactions to messages over 30 days old, missing or deleted messages, or other reactions fail with error 131009.
  • A sent reaction produces only a sent status — no delivered or read webhooks follow.
  • An inbound reaction with no emoji property means the customer removed their reaction.

Watch a reaction pin itself to a message

6 / 6
Appliance Service DeskOfficial business account

Today

  1. Customer: PhotoHere's the model plate10:30Appliance Service Desk reacted 👍
  2. Appliance Service Desk: Thanks! Your technician arrives tomorrow between 10 and 11 am.10:32ReadCustomer reacted ❤️
  3. Customer: Can he bring a spare filter?10:34
  4. Appliance Service Desk: Yes, he will carry one.10:35Delivered

Message 6 of 6

Appliance Service DeskTextDelivered (two grey ticks)

Free-form text. A business can send it only within 24 hours of the customer’s last message.

A business 👍 lands on the customer's photo and a customer ❤️ lands on the business's update — no new bubbles. Step through to see which message each reaction targets and what it reports.

Message 6 of 6: Appliance Service Desk, Text, Delivered (two grey ticks). Free-form text. A business can send it only within 24 hours of the customer’s last message.

A reaction message in code

# React with a thumbs-up to the customer's photo
curl -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": "reaction",
"reaction": {
"message_id": "wamid.HBgMOTE5ODEyMzQ1Njc4FQIAEhgUM0FCQzEyM0RFRjQ1NkFCQzc4OTAA",
"emoji": "👍"
}
}'
# Remove it again: same message_id, empty emoji
# "reaction": { "message_id": "wamid.HBgMOTE5...", "emoji": "" }

Only a sent status comes back. A target over 30 days old, deleted or itself a reaction fails with 131009.

How does a reaction message work?

  1. Pick the target message

    Take the wamid of the message you want to react to — usually an inbound customer message you stored from the webhook — and check it is under 30 days old.

  2. Send the reaction

    POST to /{PHONE_NUMBER_ID}/messages with type: reaction and a reaction object holding message_id and emoji. The customer's window must be open.

  3. Expect only sent

    A successful reaction returns a wamid and a single sent status. Delivered and read never follow, so close the record on sent.

  4. Change or remove it

    Send another reaction to the same message_id with a different emoji to replace it, or with an empty emoji to remove it.

  5. Handle inbound reactions

    Store customer reactions against the target wamid, treat a reaction without emoji as a removal, and keep reactions out of the bot's text-intent pipeline.

Common wrong turns

Common mistakes with a reaction message

  • Waiting for delivered

    Reactions never get delivered or read statuses. A pipeline that flags messages without them as stuck will flag every reaction you send.

  • Reacting to the wrong target

    A bot that reacts to whatever message it stored last can hit old, deleted or reaction targets and get 131009. Check the target's type and age first.

  • Feeding reactions to the bot

    A reaction is not a question. Routing it through the same intent engine as text produces replies to a thumbs-up; give reactions their own branch.

  • Ignoring removals

    A removal arrives as a reaction with no emoji. Treat it as a delete, or your feedback counts drift upwards over time.

Key facts at a glance

A reaction message: key facts and limits

Type
reaction
Fields
message_id (the target wamid) and emoji
Remove a reaction
Send an empty emoji; inbound removals omit emoji
Target age
30 days at most
Failure code
131009 (old, missing, deleted or reaction target)
Statuses
sent only — no delivered or read
Window
Needs an open 24-hour window to send

Example: Acknowledging photos at an appliance service desk

A Coimbatore appliance-service company asks customers to send a photo of the model plate before a technician visits. When the photo arrives, the agent reacts 👍 to it instead of typing 'received', which keeps the thread short. Customers in turn react to the technician's arrival-time message; the team counts 👍 and ❤️ on those messages as a light satisfaction signal and routes any 👎 to a supervisor. Because a removal arrives as a reaction with no emoji, the counts stay accurate when customers change their minds.

Reaction Message FAQs

How do I send a reaction with the WhatsApp Cloud API?+
Send a message with type reaction and a reaction object holding the target message_id and the emoji. It goes to the same messages endpoint as every other type and needs an open 24-hour window.
How do I remove a reaction through the WhatsApp API?+
Send a reaction to the same message_id with an empty emoji. When a customer removes their own reaction, you receive a reaction webhook whose emoji property is missing.
Why did my WhatsApp reaction fail with error 131009?+
Because the target cannot take a reaction: it is more than 30 days old, is not in the thread, was deleted, or is itself a reaction. Check the wamid and its age before sending.
Is a reaction the same as replying to a message?+
No. A reaction pins an emoji to a message without adding text; a contextual reply quotes the message and sends a new one. Use reactions to acknowledge and replies to answer.

Why does a reaction message matter?

Reactions are the lightest acknowledgement WhatsApp offers. A 👍 on a customer's photo of a damaged parcel tells them it was seen without another 'Thanks, noted' bubble in the thread. Inbound, they are a feedback signal hiding in plain sight — a ❤️ on a delivery update, a 👎 on a bot answer — that many integrations silently drop because their webhook handler has no branch for the type. Handling reactions well means fewer filler messages going out and more signal coming in.

Good practice

Best practices for a reaction message

  • Use a 👍 to acknowledge photos and documents instead of sending a filler message.
  • Store inbound reactions against the target wamid so you can report them per message or per template.
  • Keep the emoji set small and meaningful for any metric you build on reactions.

See InfiQ pricing

Try it on the official WhatsApp Business API

InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.