cancel
Showing results for 
Search instead for 
Did you mean: 

Webhook endpoint URL

Hi,

 

I am trying to setup Webhooks notification for my application. When I try to setup my endpoint URL via the Merchant interface I get a message "Invalid URL". The URL is

 

https://couchvaspwin1.centralindia.cloudapp.azure.com/api/webhooks/incoming/genericjson/z?code=80ad1...

 

Can anyone please let me know why this URL is considered invalid by Merchant Interface UI.

 

When I send a request to this URL using POSTMAN it works perfectly fine.

 

Regards,

Anand

 

AnandBhagwat
Contributor
10 REPLIES 10
You have parameters in your url. Those wil never work. An workaround is to use the presence on an X-Anet header to determine what logic to execute. X-Anet is in webhooks only, so if you need to have a separate set of actions taken as opposed to any redirct to your app, that’s how you can do it.
Renaissance
All Star

Thank you for the reply.

 

I have now changed my endpoint URL to http://104.211.112.26:8095/api/values which is a simple ASP.NET web api url.

 

I am able to post to this URL using Postman, however when I try to test it using Webhooks ping, it fails.

 

I also tried to check via https://apitest.authorize.net/rest/v1/webhooks/3c29ebd4-1ed9-486f-a8ac-765af6022b3c/pings

 

and below is the response I am getting 

{
"status": 500,
"reason": "PING_FAILED",
"message": "The ping operation failed. This could be due to connectivity issues, invalid url or server downtime. Check the url details for the webhook and try again.",
"correlationId": "c7d3b83c-d665-4a47-8f24-f02fe48e95cd"
}

 

Can you please help me determine what could be the issue here ?

 

Do you have the webhooks on inactive status? That’s required for testing. So when you run test transactions it needs to be on active status. To run the test url it needs to be on inactive. And how do you know that the webhooks aren’t hitting your endpoint, other than the test you ran below?

Yes, the status is set to Inactive. I am not trying to run a test transaction , just trying to see if ping works.

 

On the server ( Windows server with IIS) where endpoint is hosted, I checked the logs , it seems ping from Authorize is not reaching IIS or maybe not even the machine. There is nothing in IIS logs, the only thing I can seem to see is in httperr log , those are 'timer_connectionidle' entries.

 

I tested using WebhookInbox url and it works. Inspected the 'POST' request in WebHookInbox and tried via Postman using same headers and data and it works.

 

One thing I noticed while looking at WebhookInbox data, is that it seems Authorize.Net seems to be sending http header 'Expect : 100 -Continue'

 

Not sure if the 'timer_connectionidle' I am seeing are related to 'Expect' header, though IIS should handle the 'Expect' header

Ok so it sounds like you may be using a local environment. If I’m wrong disregard this. Webhooks are only delivered to remote servers.

Nope. The server IP where the endpoint is hosted is a public IP of a Azure VM and this is the endpoint ( http://104.211.112.26:8095/api/values) which I have specified in the Authorize.NET Sandbox UI ( Account -> Webhooks->Endpoint).

For some reason it seems maybe the sandbox Authorize.NET server making the test ping request is not able to reach the endpoint URL server (104.211.112.26)

Not sure how to debug this issue, unless someone from Authorize.NET tells me what they are seeing on their end

 

PS: I shutdown the VM when I am not doing dev/testing, for cost reasons

Hello @AnandBhagwat

 

Have you tried using port 80 instead of a specific port? I've asked our product team to confirm if we allow specifying a port because for other connections, we only support ports 80 and 443.

 

Richard

Hi Richard,

 

It worked when I set the port to 80 !! . I am able to perform a test ping as well as receive notification of a transaction.

 

Thank you very much for your help with this.

 

-Anand Bhagwat

Hi, i have the same issue when i use the 443 port for https with a valid cert, this is only working on port 80?