Skip to main content
Verifying your webhook URL is not enough on its own — you also have to tell Meta which events to send you. This is called subscribing to webhook fields. The most important field is messages, which delivers all inbound customer messages. Without subscribing, Meta stays silent even after verification passes.

Where to subscribe

Meta Dashboard → Your App → WhatsApp → Configuration → scroll to Webhook Fields → find messages → click Subscribe. The toggle turns blue and shows Subscribed.

What the fields do

FieldWhat it notifies you about
messagesAll inbound messages + delivery/read statuses
message_template_status_updateWhen a template is approved or rejected
message_template_quality_updateTemplate quality score changes
message_template_components_updateTemplate component changes
For a basic bot, you only need messages.

What happens after subscribing — full flow

Customer sends "Hi" from their phone

Meta receives it on their servers

Meta POST to your webhook URL

Your server receives the JSON payload

Terminal: [INBOUND] Text from 919959623255: Hi

Your code sends an auto-reply

Terminal: [AUTO-REPLY] Sent to 919959623255

Customer's phone receives: "You said: Hi"

Reference images

Webhook fields subscribed
Terminal inbound received
Phone auto-reply

Frequently asked

You need to also subscribe to the messages webhook field. Verification just proves you own the URL — subscription tells Meta to actually send events to it.
No. For a basic bot that receives and replies to messages, only messages is required.
Send a WhatsApp message to your test number from a registered test recipient. Your terminal should show [INBOUND] Text from .... If it doesn’t, check that the messages field shows “Subscribed” in Meta Dashboard.

Gotchas & common mistakes

  • Verified but not subscribed — these are two separate steps. Many people complete verification and assume messages will flow. You must also subscribe.
  • Test number restrictions — Meta’s test number only sends/receives from numbers you’ve explicitly added as test recipients in the Meta Dashboard API Setup section.
  • Subscription resets on app re-creation — if you create a new Meta app, you must re-verify the webhook and re-subscribe to fields.