I am using the online deployed version of n8n on n8n cloud, to write a Paypal trigger so I can perform
some custom actions on it, I am listening on all the events but does not matter what action I perform I do on Paypal I don’t receive any data in the n8n. I’ve verified the Paypal web-hook with custom web-hook URL and it was receiving all the events but through n8n its not working.
Hi @raheelriax, I am very sorry to hear you’re having trouble.
I just registered a new sandbox app with PayPal and enabled the respective n8n workflow using a PayPal trigger. Once my workflow is activated, a webhook is registered with PayPal as expected from checking the respective section on the PayPal developer dashboard:
Can you confirm whether this part is also working for you? As in, does n8n register a webhook as it should when manually running your workflow or activating it?
If so, could you in the next step check whether PayPal has registered any errors when sending webhooks over to n8n? You can view the logs via Event Logs → Webhook Events on the PayPal Developer Dashboard:
Thanks for sharing these details and I’ve checked all the details and the web hook URL does get registered and the event log also shows success status for all the events. I’ve tried making a POST request manually to the Webhook URL provided by n8n and it returns 200 with message
Thanks so much for sharing these details @raheelriax! I was able to reproduce this behaviour and have added a ticket to our backlog to get this fixed.
In the meantime, perhaps you want to add a regular webhook node to your workflow (make sure to set the method to POST and activate your workflow before using the prod URL/execute it each time before using the test URL)?
You can then manually register the respective URLs with PayPal through their UI, essentially cutting out any custom logic of the PayPal trigger node and simply using the base webhook functionality.
This worked fine when I tested the approach just now (keeping in mind that PayPal uses a queuing system and might take a minute or two before a webhook is actually sent following an event):