WhatsApp Business API Not Sending Messages: Troubleshooting Guide
When WhatsApp API messages stop sending, work the checklist: auth, template status, quality rating, webhooks, and BSP logs — in that order.

Sarah Chen
Thatmatters Team

WhatsApp Messages Not Sending? Complete WhatsApp Business API Troubleshooting Guide
WhatsApp messages not sending can quickly become a serious business problem when your customer support, notifications, marketing campaigns, or automated workflows depend on the WhatsApp Business API.
The good news is that message delivery failures are rarely random. In most cases, the problem can be traced to one of a few areas: authentication, template approval, WhatsApp quality rating, messaging limits, payment configuration, webhook failures, phone-number configuration, or API integration issues.
Instead of repeatedly retrying messages, use a systematic troubleshooting process to identify the root cause.
Why Are WhatsApp Messages Not Sending?
When a WhatsApp API message fails, first determine where the failure occurs.
A typical WhatsApp messaging flow looks like:
Your CRM / Application → WhatsApp API → Meta → Customer's WhatsApp → Webhook Status Update
A problem at any point can affect message delivery.
Common causes include:
* Expired or invalid access token
* Incorrect Phone Number ID
* Incorrect WABA configuration
* Unapproved WhatsApp template
* Incorrect template name or language
* Template category mismatch
* Messaging limit restrictions
* Poor WhatsApp quality rating
* Invalid recipient number
* Payment method or billing issues
* Webhook configuration problems
* API request formatting errors
* Customer blocking or WhatsApp account restrictions
Fast WhatsApp API Troubleshooting Checklist
Before investigating your entire application, check these seven areas.
1. Can You Send a Session Message?
If your customer has recently messaged your business, you may be able to respond within the applicable 24-hour customer service window without using a template.
Test a simple session reply first.
If the session message works but your template message fails, the problem is more likely related to:
* Template approval
* Template name
* Template language
* Template parameters
* Template category
* Template status
This is one of the fastest ways to isolate a template-related problem.
2. Is Your WhatsApp Template Approved?
For template messages sent outside the customer service window, verify that the template is approved and active.
Check:
* Exact template name
* Language
* Category
* Template status
* Number of variables
* Variable sample values
* Header configuration
* Button configuration
Even a small mismatch between the template registered with Meta and the template requested by your application can cause the API request to fail.
For example, if the registered template is:
order_confirmation
but your application sends:
order-confirmation
the request may not behave as expected.
Your application should retrieve and maintain the correct template metadata instead of relying on manually entered values.
3. Check Your WhatsApp Quality Rating and Messaging Limits
If messages suddenly stop being delivered at scale, check your WhatsApp Business Account quality rating and messaging limits.
A business experiencing high rates of:
* Customer blocks
* Spam reports
* Negative feedback
* Poor engagement
* Unexpected messaging behavior
may experience restrictions or reduced messaging capacity.
This is particularly important for businesses running large WhatsApp marketing campaigns.
If your messages were working normally and delivery suddenly decreased, compare the timing of the problem with changes in:
* Quality rating
* Messaging limits
* Campaign volume
* Customer complaints
* Template usage
4. Verify Your Payment Method and Billing Configuration
For businesses using paid WhatsApp messaging, billing configuration should also be checked.
Verify that:
* The payment method is valid
* Billing information is up to date
* There are no payment-related restrictions
* Your business account is properly configured
* The relevant WhatsApp Business Account has the required billing setup
A billing problem can create confusing symptoms, particularly when your application itself is functioning correctly.
5. Check Your Access Token
Authentication problems are another common cause of WhatsApp API message failures.
Check whether your access token is:
* Expired
* Revoked
* Incorrect
* Missing required permissions
* Associated with the wrong business account
* Being replaced incorrectly by your application
If your API suddenly changes from successful requests to authentication errors, investigate token lifecycle and permissions before changing your message payload.
For production systems, avoid manually managing long-lived credentials inside application code.
Use secure secret management and establish a process for monitoring credential expiration and rotation.
6. Verify the Recipient Phone Number
The recipient number should be correctly formatted for WhatsApp API requests.
Use E.164-style international formatting and avoid sending values containing:
* Spaces
* Unnecessary symbols
* Local dialing prefixes
* Duplicate country codes
* Formatting characters
For example, instead of storing a number in multiple formats across your CRM, normalize it before sending.
A good architecture is:
CRM number → Number validation → E.164 normalization → WhatsApp API
This prevents inconsistent phone-number formatting from causing delivery failures.
Webhook Problems: API Works but Status Never Updates
One particularly confusing problem occurs when the outbound API request succeeds, but your application never receives message status updates.
You may see:
API request → accepted → no delivered/read/failed update
In this situation, investigate your WhatsApp webhook integration.
Your webhook should process status events such as:
sent → delivered → read → failed
Check the following:
TLS / HTTPS Configuration
Make sure your webhook endpoint uses valid HTTPS/TLS configuration.
Certificate problems can prevent Meta from reaching your endpoint.
Webhook Response Time
Your webhook should acknowledge incoming events quickly.
Avoid performing heavy processing before returning the response.
A better architecture is:
Webhook → Validate → Queue → Return 200 → Worker processes event
This is especially useful when your WhatsApp platform receives high message volumes.
Signature Verification
If your application validates webhook signatures, verify that:
* The application secret is correct
* The raw request body is preserved when required
* Signature calculation is correct
* Encoding is consistent
Incorrect signature handling can cause legitimate webhook events to be rejected.
Duplicate Webhook Events
Your webhook architecture should also be idempotent.
Do not assume every status event will arrive only once.
Store a unique event/message identifier and prevent duplicate processing.
How to Debug WhatsApp Message Status
A useful message lifecycle is:
Queued → Sent → Delivered → Read
If the message enters the system but stops at a particular stage, investigate that stage.
Status: Queued
Investigate your own application:
* Queue workers
* RabbitMQ/Kafka
* Redis
* Database
* Background jobs
* Worker crashes
* Rate limiting
Status: Sent but Not Delivered
Investigate:
* Recipient number
* Customer's WhatsApp availability
* Customer blocking
* Delivery restrictions
* Account quality
* Message eligibility
Status: Delivered but Not Read
This does not necessarily indicate an API failure.
The recipient may simply not have opened the message or may have read-status settings affecting what your system can observe.
Status: Failed
This is where the exact error code and error message become critical.
Don't troubleshoot from "message failed" alone. Store the complete API response and webhook failure information.
Log Every WhatsApp API Request
For production WhatsApp automation, logging is essential.
For every outbound message, maintain information such as:
request_id
message_id
waba_id
phone_number_id
template_name
template_language
recipient
timestamp
API_response
error_code
error_message
webhook_statusRedact sensitive customer information in logs and restrict access to production data.
This gives your development team enough information to identify whether the problem is:
Application → Authentication → Template → Meta → Delivery → Webhook
Common WhatsApp API Errors to Investigate
When a message fails, don't immediately assume that the template is the problem.
Classify the failure first.
| Problem Area | What to Check |
|---|---|
| Authentication | Access token, permissions, expiration |
| WABA | Business account configuration |
| Phone Number | Phone Number ID and registration |
| Template | Name, language, approval status |
| Variables | Number, order, and sample values |
| Recipient | Valid international phone number |
| Quality | Quality rating and restrictions |
| Messaging Limit | Current sending capacity |
| Billing | Payment and account configuration |
| Webhook | HTTPS, signature, response time |
| Application | Queue, worker, database, retry logic |
This classification makes debugging much faster than changing multiple components at once.
When Should You Contact Your WhatsApp BSP?
If you've verified your application, authentication, templates, webhooks, and recipient data but messages are still failing, escalate the issue to your WhatsApp Business Solution Provider (BSP) or relevant Meta support channel.
Don't send a vague ticket saying:
> "WhatsApp messages are not working."
Instead, provide structured diagnostic information.
Include:
* WABA ID
* Phone Number ID
* Template name
* Template language
* Approximate timestamp
* Destination number in redacted form
* Request ID
* Message ID
* Exact API error code
* Exact error message
* Webhook status
* Screenshot of the relevant error, if useful
The more specific the ticket, the faster the support team can identify the problem.
Build Reliable WhatsApp API Error Handling
A production WhatsApp integration shouldn't simply return:
Message failed
Your system should classify errors and take the appropriate action.
For example:
Authentication Error → Alert engineering team
Template Error → Notify campaign manager
Rate Limit → Queue and retry according to policy
Invalid Recipient → Mark number invalid
Webhook Failure → Retry event processing
Temporary API Error → Controlled retry
This approach turns WhatsApp messaging from a fragile API integration into a reliable communication system.
Prevent WhatsApp Message Failures Before They Happen
A proactive WhatsApp automation platform should continuously monitor:
* API success rate
* Message failure rate
* Template status
* Delivery rate
* Read rate
* Webhook health
* Queue depth
* Worker health
* API latency
* Authentication status
* Account quality indicators
Set alerts for unusual changes.
For example:
Normal delivery rate: 95% → suddenly drops to 70%
That should trigger an investigation rather than waiting for customers to complain.
WhatsApp Business API Troubleshooting FAQ
Why are my WhatsApp API messages failing?
Common causes include invalid authentication, incorrect templates, recipient-number issues, messaging restrictions, account configuration problems, billing issues, or API integration errors.
Why is my WhatsApp template not sending even though it is approved?
Check the exact template name, language, variables, header, buttons, recipient information, and API payload. An approved template can still fail if your request does not match its registered structure.
Why are WhatsApp messages sent but not delivered?
Possible causes include recipient-related issues, account restrictions, customer blocking, delivery limitations, or other Meta-side restrictions. Check the exact failure/status information rather than assuming it is an API outage.
Why is my WhatsApp webhook not receiving updates?
Check HTTPS/TLS, webhook verification, callback configuration, signature validation, response time, application logs, and whether your endpoint is returning successful responses quickly.
How can I reduce WhatsApp message failures?
Use approved templates, validate recipients, securely manage authentication, monitor quality and messaging limits, implement reliable webhook processing, log API errors, and build controlled retry and alerting mechanisms.
Final Takeaway
When WhatsApp messages are not sending, avoid randomly changing your code or repeatedly resubmitting templates.
Follow a structured troubleshooting path:
Authentication → WABA → Template → Recipient → Quality & Limits → Billing → API Response → Webhook → Delivery Status
This approach helps identify whether the problem is inside your application, your WhatsApp configuration, or the Meta messaging environment.
For more guides about WhatsApp Business API, WhatsApp CRM, chatbots, templates, automation, and business messaging, explore the ThatMatters blog:
ThatMatters WhatsApp Automation Blog
You can also explore the main ThatMatters platform:
ThatMatters — WhatsApp Business Automation
If your business needs help implementing WhatsApp Business API automation, chatbots, CRM integration, templates, customer support, and automated workflows, visit:


