Quick Answer
If you can send WhatsApp messages but cannot receive them, the webhook is the problem. The five usual causes are: the WhatsApp Business Account is not subscribed to your app, the callback URL or verify token is wrong, the messages field is not subscribed, the app is still in development mode so only role users' messages come through, or your server rejects the request (bad signature check, slow response or non-200 reply).
Last checked October 2026. Meta renames menus and changes review rules often, so treat the steps as the path, and confirm the exact wording on screen against Meta's documentation.
How Incoming Messages Reach You
- A customer messages your number.
- Meta sends an HTTPS POST to your app's callback URL with the message.
- That only happens if the app subscribes to the
messagesfield and your WABA is subscribed to the app. - Your server must reply with a 200 quickly. Meta retries failures for a while, then stops.
Diagnosis Table
| Check | Symptom if wrong | Fix |
|---|---|---|
| WABA subscribed to the app | Connected, sends work, zero inbound | Subscribe the account to the app (the subscribed_apps step). Tenreply does this when you connect; re-configure the connection to repeat it. |
| Callback URL reachable over HTTPS | Meta cannot verify or deliver | Use a valid public HTTPS URL with a trusted certificate. |
| Verify token matches | "The callback URL or verify token couldn't be validated" | The token in Meta must equal the one your server checks on the GET handshake. |
messages field subscribed | Delivery receipts but no inbound text | In the app's WhatsApp configuration, subscribe to messages. |
| App mode | Only your test accounts' messages arrive | Switch the app to Live once it is configured correctly. |
| Signature verification | Deliveries are received but dropped | Verify X-Hub-Signature-256 against the raw request body with the app secret. |
| Response time and status | Intermittent or missing messages | Acknowledge with 200 immediately and process asynchronously. |
| Number registered | Nothing reaches the number at all | See number registration. |
The Test Sequence
- From a personal phone, send "test" to your business number.
- Check the inbox. If it appears, inbound works; the earlier problem was a one-off.
- If not, open the Meta developer dashboard webhook settings and look at recent deliveries or errors for the callback URL.
- Confirm the WABA appears as subscribed to the app.
- Try again after fixing one thing at a time.
Replies Not Sending Either?
If outbound also fails, the issue is not the webhook. Read the error code in WhatsApp API error codes explained, and for window problems see the 24-hour window.
For Developers Building Their Own Receiver
- Respond to the GET verification with the
hub.challengevalue when the verify token matches. - Validate the signature on every POST; reject mismatches.
- Make handlers idempotent, because Meta can deliver the same event more than once.
- If you want events from Tenreply into your own systems, use outbound webhooks and the REST API rather than rebuilding the Meta integration.
Frequently Asked Questions
Why do I get delivery status updates but not incoming messages?
Status events and message events can arrive through different field subscriptions. Check that messages is subscribed.
Why does it work for me but not for customers?
Your app is probably in development mode, where only people with a role on the app are delivered.
Do I need to configure the webhook if I use Tenreply?
No. Tenreply subscribes the account to its webhook when you connect. If inbound stops, use Re-configure with Embedded Signup on the WhatsApp connect screen to run it again.
How long does Meta retry failed webhooks?
For a limited time with backoff. Do not rely on retries; fix the endpoint promptly.
A Webhook You Never Have to Touch
Tenreply verifies Meta's signature and subscribes your account for you, so incoming WhatsApp, Instagram and Messenger messages land in one shared inbox.
- Connect your number in Tenreply: Meta's Embedded Signup walks you through the WhatsApp Business Account, the number and the OTP in one popup, and Tenreply subscribes the webhook for you. If Meta does not return the IDs, enter them by hand on the same screen.
- WhatsApp API pricing calculator: estimate Meta's charges before you scale.
- Template message previewer: check how a template renders before you submit it.
- Security, changelog and roadmap: what is live today and what is coming.
Back to the full map: Meta, WhatsApp and Instagram integration problems: the complete fix guide.