I’m working on a project where I need to get the success_url from Stripe payment sessions using Zapier webhooks. The problem is that when I try to access this data through Zapier’s webhook functionality, I keep getting an error message that says “Missing required param: success_url”. This is really confusing because when I check the payment session directly in my Stripe dashboard, I can clearly see that the success_url is there and working properly. Customers are even getting redirected to the correct URL after completing their payments. But for some reason, Zapier can’t seem to find this parameter when processing the webhook data. Has anyone else run into this issue? I just want to extract the success_url from completed transactions so I can send follow-up emails to customers with their specific redirect URLs.
yeah, super annoying but that’s how stripe works. the webhook payload doesnt include success_url by default - u need to make a separate api call to get the full checkout session details using the session id from the webhook. most ppl miss this initially.
I encountered a similar issue recently with Zapier and Stripe where the success_url was missing from the webhook data. What I found was that by default, not all session information gets sent in the webhook payload. To resolve this, I implemented a Zapier code step that calls Stripe’s API to retrieve the full checkout session using the session ID provided in the webhook. Make sure you are also subscribed to the right event type. The correct event should be checkout.session.completed, as it contains the necessary data to access the success_url.
Stripe webhooks don’t include success_url by default - the payload is intentionally minimal for performance. You’ll need to expand the session object to get the full details. In Zapier, add a formatter step or code action that makes an API call to Stripe using the session ID from the webhook. The webhook gives you the session ID, but you’ve got to fetch the complete session data separately to access success_url. I ran into this same issue until I figured out this was the standard approach. It’s frustrating but that’s how it works.