Validation Token is not returned when creating a subscription webhook

  • 1
  • Problem
  • Updated 4 weeks ago
  • Solved
  • (Edited)
            $filter = array(
'/restapi/v1.0/account/~/extension', ); $paramArray = array( "eventFilters" => $filter, "deliveryMode" => array( "transportType" => "WebHook", "encryption" => "false", "address" => "https://abc.ngrok.io/test.php?auth_token=" . $obj->GetAccessToken(), ), ); Post Call return the following error. WebHook URL working { "errorCode" : "SUB-520", "message" : "Validation Token is not returned", "errors" : [ { "errorCode" : "SUB-520", "message" : "Validation Token is not returned" } ] 
}
Photo of Rishwanth Dev

Rishwanth Dev

  • 132 Points 100 badge 2x thumb

Posted 2 years ago

  • 1
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,642 Points 5k badge 2x thumb
The requirements for a webhook to be created include RingCentral servers executing a POST request to the "deliveryMode.address" you define (this is your webhook consumer, and the URI where the webhook event requests will POST).

As part of the subscription creation process, your webhook consumer must:

1. Be web-accessible
2. Accept HTTP POST requests from RingCentral
3. Respond to the "initialization" POST request within 1000ms
4. Include a header named "Validation-Token" in the response to the "intialization" POST
5. Set the value of the "Validation-Token" header in the response to the exact value presented in the "initialization" POST request's header "validation-token" 

The error you have presented in this post, indicates that your webhook consumer (the web server which accepts the HTTP POST requests), is NOT setting a header named "Validation-Token", or if it is setting that header, the value for "Validation-Token" DOES NOT match the precise value which was presented in the "initial" POST request header "validation-token".

Does this make sense?

If not, here is a tutorial about the basics of Push Notifications with Webhooks (built in JavaScript) which shows you how to handle things properly (the tutorial also has demo code which you can easily deploy to Heroku with a one-button deployment): https://bdeanindy.github.io/ringcentral-webhook-basics/

If you run into issues or have any questions about the tutorial, please feel free to add them in the Github issue tracker here: https://github.com/bdeanindy/ringcentral-webhook-basics/issues
(Edited)
Photo of Rishwanth Dev

Rishwanth Dev

  • 132 Points 100 badge 2x thumb
Yes. It is working now. The problem is that I did not pass validation-token to post request header. After passing validation-token to post request header and return response header with validation-token that was sent, worked properly and SubscriptionWebhook is Green now
(Edited)
Photo of Benjamin Dean

Benjamin Dean, Alum

  • 8,642 Points 5k badge 2x thumb
Glad to hear that you are back in business and looking forward to seeing your application in production soon!
Photo of Robert Raj

Robert Raj

  • 152 Points 100 badge 2x thumb
What should be come validation-token,whether it should access token or endpointid
Photo of Tyler Long

Tyler Long, Official Rep

  • 7,802 Points 5k badge 2x thumb
validation-token is what the request header sends you, you just put it into response header as it is.