# Webhook URL Is Not Validating With Production URL

**URL:** <https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296>\
**Category:** API and Webhooks\
**Tags:** webhooks\
**Created:** [March 22, 2024, 4:28am UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296 "2024-03-22T04:28:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [March 22, 2024, 4:28am UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296/1 "2024-03-22T04:28:59Z")

</div>

I am facing an issue with Webhook in that the that the URL is not validating.

I am developing an application in Zoom, so when I use the Ngrok URL, event notification endpoint URL [production] will be validated, but when I host my web application in Catalyst, it will not be validated with the production URL. When I deploy into Catalyst, the URL will be generated in the developing mode, so I am converting it into the production URL, which is the URL I have given in the web application URL in the event notification endpoint URL [production]. It will not validate the same process when I use Ngrok.

Nodejs Code to validating the End point URL:

```auto
const message = `v0:${req.headers['x-zm-request-timestamp']}:${JSON.stringify(req.body)}`
  console.log("Message :", message)
  const hashForVerify = crypto.createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET_TOKEN).update(message).digest('hex')
  // hash the message string with your Webhook Secret Token and prepend the version semantic
  const signature = `v0=${hashForVerify}`
  if (req.headers['x-zm-signature'] === signature) {
    if (req.body.event === 'endpoint.url_validation') {
      const hashForValidate = crypto.createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET_TOKEN).update(req.body.payload.plainToken).digest('hex')
      response = {
        message: {
          plainToken: req.body.payload.plainToken,
          encryptedToken: hashForValidate
        },
        status: 200
      }
      console.log(response.message)
      res.status(response.status)
      res.json(response.message)
    } else {
      response = { message: 'Authorized request to Zoom Webhook.', status: 200 }
      console.log("response", response.message)
      res.status(response.status)
      res.json(response)
      // business logic here, example make API request to Zoom or 3rd party
      console.log("Upload into workdrive...");

```

Note: This code will be working good when i was use Ngrok so the problem is after deploying the application URL is not validating.

 ![Pasted image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/7/7708589263bdba4b417901046993febe3394ac04.png)

---

<div class="post-metadata">

**Author:** ![danielran11](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/danielran11/32/58034_2.png) [@danielran11](https://devforum.zoom.us/u/danielran11)\
**Post date:** [April 19, 2024, 5:36am UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296/2 "2024-04-19T05:36:30Z")

</div>

I’m having the exact same problem. Everything works fine when I test zoom webhooks using ngrok tunneling, but when I swap to use my production URL with the same code I can see that the header field x-zm-signature and the signature I generate suddenly doesn’t match in production. Does anyone have a hint as to why that is?

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [May 2, 2024, 9:32am UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296/3 "2024-05-02T09:32:13Z")

</div>

Hello Daniel, I have a suggestion please verify the environmental platform on which you have hosted your website. and write a mail to them explaining why because they have to configure DNS for validating this URL from there end.

---

<div class="post-metadata">

**Author:** ![Praveen3](https://avatars.discourse-cdn.com/v4/letter/p/f4b2a3/32.png) [@Praveen3](https://devforum.zoom.us/u/Praveen3)\
**Post date:** [May 3, 2025, 12:11am UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296/4 "2025-05-03T00:11:44Z")

</div>

Hello Ramakrishna,

I am in same situation as you. Can you explain me to whom you have written the email ? Is it to Zoho Catalyst team ? Also what details do Catalyst team require to work on if I should send an email to them.

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [May 6, 2026, 3:47pm UTC](https://devforum.zoom.us/t/webhook-url-is-not-validating-with-production-url/106296/5 "2026-05-06T15:47:56Z")

</div>

Closed on May 6, 2026, 3:47pm UTC

This topic was automatically closed 368 days after the last reply. New replies are no longer allowed.
