Troubleshooting & Debugging

WhatsApp Cloud API Webhook Not Working

Troubleshoot webhook verification failures, callback configuration, missing events, payload handling, and backend processing problems.

Practical Guide6 min read

Step 1

Confirm the Callback URL Is Public

Webhooks are the event input for a WhatsApp integration. Meta verifies a public HTTPS callback URL, then sends incoming messages and message status events to that endpoint. Your app also needs the correct WhatsApp Business Account subscription so events reach the callback.

Implementation Checklist

  • Use a public HTTPS callback and a separate verify token.
  • Subscribe the app to the correct WABA and required webhook fields.
  • Acknowledge events quickly and process them idempotently.

This guide only covers the part needed for the current workflow. For the complete setup, examples, and troubleshooting, continue with How to Set Up WhatsApp Webhooks.

Step 2

Check HTTPS

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 3

Verify the GET Challenge

Verify the GET Challenge should be checked with one known failing request or event. Capture the exact input, HTTP result, structured error, message ID, and relevant configuration before changing anything else. Troubleshooting becomes much faster when you can reproduce the same failure after each change.

Work from the transport layer outward: network and HTTPS, authentication, asset IDs, request payload, Meta response, webhook delivery, then your own database or CRM processing. Do not change several layers at once because a new successful result will not tell you which change fixed the original problem.

Implementation Checklist

  • Reproduce the issue with one controlled test case.
  • Record exact error codes and safe identifiers before editing configuration.
  • Change one layer at a time and compare against a known successful baseline.
  • Redact tokens and personal data from logs while keeping message IDs and event IDs for correlation.

Step 4

Check the Verify Token

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 5

Confirm Webhook Fields Are Subscribed

Webhooks are the event input for a WhatsApp integration. Meta verifies a public HTTPS callback URL, then sends incoming messages and message status events to that endpoint. Your app also needs the correct WhatsApp Business Account subscription so events reach the callback.

Implementation Checklist

  • Use a public HTTPS callback and a separate verify token.
  • Subscribe the app to the correct WABA and required webhook fields.
  • Acknowledge events quickly and process them idempotently.

This guide only covers the part needed for the current workflow. For the complete setup, examples, and troubleshooting, continue with How to Set Up WhatsApp Webhooks.

Step 6

Confirm the App Is Subscribed to the WABA

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 7

Inspect Post Requests

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 8

Check Backend Logs

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 9

Check Response Status Codes

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Step 10

Test With A Known Event

Debug this layer independently before changing several parts of the integration at once. Reproduce one known request or event, capture the input and output, and compare the result with what the application expected.

Use structured logs with timestamps, message IDs, event IDs, phone number IDs, and internal workflow IDs. Redact tokens and sensitive customer content. Good logs let you follow one message from API request to webhook event to CRM update without guessing which layer failed.

Implementation Checklist

  • Create one repeatable test case with known input.
  • Log the boundary between this layer and the next system.
  • Change one variable at a time while diagnosing the failure.
  • Keep a successful baseline request so future changes can be compared quickly.

Need Implementation Help?

Need Help With Your WhatsApp or Automation Project?

If you need help building, integrating, troubleshooting, or improving a production system, you can discuss the project with me directly.