WhatsApp webhook URL validation failing in n8n Cloud

I am trying to set up a WhatsApp AI Chatbot using the WhatsApp Trigger and Send Message nodes. I have successfully configured the WhatsApp Business Account ID, Client ID, Client Secret, and Access Token. However, when I try to save the Webhook Callback URL (both Production and Test URLs using POST/GET) in the Meta Developer Console, Meta refuses to validate it and says it is not validated. Because the Webhook isn’t validating, incoming messages do not trigger my n8n workflow. I can only successfully send messages manually using the “Send Message” test button inside the Meta Business Suite dashboard.
**n8n version:** 2.29.5 -

**Running n8n via:** n8n Cloud (14-day free trial) -

**Hosting environment:** n8n Cloud Official Hosting

Steps Taken So Far

1. Configured all API credentials inside the WhatsApp nodes.

2. Attempted to paste both the Production and Test Webhook URLs into Meta’s configuration.

3. Whitelisted my test phone number in the Meta developer panel.

How can I get Meta to successfully validate my n8n Webhook Callback URL so that incoming messages trigger my workflow?

Before clicking Verify, publish the workflow if you are using the production URL or use the test URL, make it listen, and click Verify
Either way, you will need a respond node to return the token to Meta after the listening, so it won’t work the first time; you will just get the token into the datastream and then configure your respond to webhook node with that.

Don’t use the Test URL for permanent Meta configuration, it only works while actively listening. Use the Production URL once your workflow is published and active.

The screenshot shows you’re using the Production URL but the workflow may not be active yet, that’s almost certainly the issue.

Hi @Harsh_Deswal Welcome!
WhatsApp only allows one webhook per app, so each time you paste the Test URL and then the Production URL, the newer one overwrites the previous registration. Meta’s Verify only passes against the single URL that is currently registered and reachable, so switching between the two is what keeps leaving it unvalidated. Register just one URL and don’t alternate while you validate.

@Stanleyy nailed this one, the test redirect URL will never resolve unless it’s actively listening. Use the production one.

And toggle your workflow to active

I kept the same Production Get Url few times but facing the same validation problem again and again. Maybe these screnshots help you guide me better.

Understood @Harsh_Deswal

You don’t paste the Callback URL into Meta and press Verify yourself with the WhatsApp Trigger node, n8n registers the webhook and answers Meta’s verification handshake for you. Doing it by hand is what keeps coming back as not validated. The reason sending works but the trigger doesn’t is the credential type: “Send Message” runs on the API key credential (Access Token + Business Account ID), while the trigger needs an OAuth2 credential (Client ID is your App ID, Client Secret is your App Secret) to perform that verification. Open the WhatsApp Trigger node, set it to an OAuth2 credential built from your App ID and App Secret, and let n8n do the handshake with Meta instead of the manual Verify.

I am a beginner Meta Registers my Hii message which I send to the Test number but not sending it to n8n so that n8n can reply.

I think @Harsh_Deswal the test number is the problem here, it often won’t push incoming messages to the trigger until you open the messaging window from your side. Send a WhatsApp message from your own personal number to the test number first, then let n8n reply, and Meta will start forwarding the incoming messages to your workflow. If it still doesn’t come through on the sandbox test number, add and verify your own business phone number, the temporary test number is unreliable for inbound delivery.
See this: