# Zoom Event Subscription Webhook – URL Validation Failed Despite HTTP 200 Response

**URL:** <https://devforum.zoom.us/t/zoom-event-subscription-webhook-url-validation-failed-despite-http-200-response/145936>\
**Category:** API and Webhooks\
**Created:** [August 27, 2026, 10:08am UTC](https://devforum.zoom.us/t/zoom-event-subscription-webhook-url-validation-failed-despite-http-200-response/145936 "2026-08-27T10:08:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![anjusha.p](https://avatars.discourse-cdn.com/v4/letter/a/e9bcb4/32.png) [@anjusha.p](https://devforum.zoom.us/u/anjusha.p)\
**Post date:** [August 27, 2026, 10:08am UTC](https://devforum.zoom.us/t/zoom-event-subscription-webhook-url-validation-failed-despite-http-200-response/145936/1 "2026-08-27T10:08:00Z")

</div>

* * *

**Description**  
We are currently developing a sample **Zoom appointment integration** with our application and are facing an issue while configuring the **Event Subscription webhook**.

Before Zoom enables the Event Subscription, Zoom sends an `endpoint.url_validation` request to our webhook endpoint containing a `plainToken`. Our application uses the `plainToken` and the configured **Zoom Webhook Secret Token** to generate the required `encryptedToken` using **HMAC-SHA256** and returns the validation response to Zoom.

We have verified our implementation and confirmed the following:

- The Zoom validation request is reaching our server.
- Our application receives the `plainToken` successfully.
- The required `encryptedToken` is generated using HMAC-SHA256.
- Our application returns an **HTTP 200** response.
- We tested the endpoint using **Postman and cURL** , and the endpoint is accessible.
- We reviewed the application and server logs and confirmed that the validation request is being processed successfully.

However, the Zoom Marketplace continues to display:

> **URL validation failed. Try again.**

**Error?**  
**URL validation failed. Try again.**

**How To Reproduce**  
_Steps to reproduce the behavior:_  
_1._ /api/zoom/webhooks  
_2._ Server-To-Server OAuth - endpoint.url\_validation  
_3._ \*\*URL validation failed. Try again.

Larvael Code\*\*  
Route::post(‘/zoom/webhook’, function (Request $request) {

```
$payload = json_decode($request->getContent(), true);

if (($payload\['event'\] ?? null) === 'endpoint.url_validation') {

    $plainToken = $payload\['payload'\]\['plainToken'\] ?? '';

    $secretToken = "\*\*\*\*\*\*\*\*\*\*";

    $encryptedToken = hash_hmac('sha256', $plainToken, $secretToken);

```

return response()-\>json([

```
        'plainToken' => $plainToken,

        'encryptedToken' => $encryptedToken,

    \], 200);

}

return response()->json(\['message' => 'OK'\], 200);

```

});
