# Glide X Stripe Checkout - smooth and Safari mobile friendly

**URL:** https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186
**Category:** Project Showcase
**Created:** [May 8, 2024, 11:57am UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186 "2024-05-08T11:57:18Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Evgeny1](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny1/32/68231_2.png) [@Evgeny1](https://community.glideapps.com/u/Evgeny1)
#### Post date: [May 8, 2024, 11:57am UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/1 "2024-05-08T11:57:18Z")

</div>

Turns out, you can trigger a server-side Checkout Session in Stripe from Glide, pass customer data (or any other data you want), and have it work in Mobile Safari with the pop-up blocker on 🙂

See demo!

https://www.loom.com/embed/61156a92ac7c4380a1f327c7b6bb20ac?sid=38f918a0-582f-4354-b670-46eb6d457755

---

<div class="post-metadata">

### Author: ![stefan](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/stefan/32/33236_2.png) [@stefan](https://community.glideapps.com/u/stefan)
#### Post date: [October 28, 2024, 1:16am UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/2 "2024-10-28T01:16:09Z")

</div>

Hi Evgeny! Your demo on Glide x Stripe Checkout looks stunning. Could you share more details about the setup process? And, if possible, would you consider providing a template? Thanks!

---

<div class="post-metadata">

### Author: ![Connor\_Finlayson](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/connor_finlayson/32/79079_2.png) [@Connor\_Finlayson](https://community.glideapps.com/u/Connor_Finlayson)
#### Post date: [October 29, 2024, 2:03pm UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/3 "2024-10-29T14:03:41Z")

</div>

Button = Fire a webhook - add customer details as parameter

In [Make.com/Zapier:](http://Make.com/Zapier:)

1. When Webhook is received (use the URL they provide in the step above)
2. Make custom Stripe API call to create a checkout session: [Sessions | Stripe API Reference](https://docs.stripe.com/api/checkout/sessions)
3. Set the Webhook Response to 302 and the destination URL that you get from Step 2 as the destination. That will open the checkout window.

Bonus tips:

1. You will need to set up a workflow for when the Checkout Session is completed.

---

<div class="post-metadata">

### Author: ![stefan](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/stefan/32/33236_2.png) [@stefan](https://community.glideapps.com/u/stefan)
#### Post date: [October 31, 2024, 9:14am UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/4 "2024-10-31T09:14:15Z")

</div>

Thank you for the detailed implementation guidance!

I’d like to allow my app users to manage their subscription plans directly, accessing the Stripe Customer Portal ([Customer self-service with a customer portal | Stripe Documentation](https://docs.stripe.com/customer-management)) seamlessly. Ideally, this integration would be as smooth as the Checkout solution (screenshot reference: [Stripe Checkout | Stripe Documentation](https://docs.stripe.com/payments/checkout)).

 ![Bildschirmfoto 2024-10-31 um 10.07.25](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/c/4cd5d55c0e60605ec74036d84ae4ce0190c08b4d.png)

However, another topic is syncing the subscription status with Glide’s User Table, reflecting purchases, modifications, etc.

What would be the most effective way to set this up without having to configure numerous webhooks? Is there a way to establish a controller that can handle various events, triggering the appropriate synchronization updates?

Any insights or best practices would be greatly appreciated!

---

<div class="post-metadata">

### Author: ![Evgeny1](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/evgeny1/32/68231_2.png) [@Evgeny1](https://community.glideapps.com/u/Evgeny1)
#### Post date: [October 31, 2024, 9:20am UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/5 "2024-10-31T09:20:57Z")

</div>

Webhooks.

Use Make to reflect changes to user subscriptions by creating a webhook in stripe that fires on subscription events and reflect the changes in the user table.

---

<div class="post-metadata">

### Author: ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)
#### Post date: [October 31, 2024, 11:50pm UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/6 "2024-10-31T23:50:52Z")

</div>

> [@stefan](#):
>
> What would be the most effective way to set this up without having to configure numerous webhooks? Is there a way to establish a controller that can handle various events, triggering the appropriate synchronization updates?

You can do a single webhook and allow multiple events. Then filter those events in Make.

However, if you’re having multiple scenarios, I would advise having multiple webhooks so you can use those separately in Make, it’s easier to debug. Not even sure if Make allows having same Stripe webhooks in different scenarios.

---

<div class="post-metadata">

### Author: ![chanwise](https://avatars.discourse-cdn.com/v4/letter/c/f08c70/32.png) [@chanwise](https://community.glideapps.com/u/chanwise)
#### Post date: [November 1, 2024, 3:20pm UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/7 "2024-11-01T15:20:08Z")

</div>

I have my subscriptions through the Stripe Customer Portal and then had to create three different webhooks in Zapier to cover my use cases. One for checkout completed, one for updates to subscriptions and one for blocking subscriptions (payment fails, retries, etc…). It has seemed to cover majority of the use cases

---

<div class="post-metadata">

### Author: ![Connor\_Finlayson](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/connor_finlayson/32/79079_2.png) [@Connor\_Finlayson](https://community.glideapps.com/u/Connor_Finlayson)
#### Post date: [November 4, 2024, 3:19pm UTC](https://community.glideapps.com/t/glide-x-stripe-checkout-smooth-and-safari-mobile-friendly/73186/8 "2024-11-04T15:19:37Z")

</div>

this. I think it is just best practice to have one dedicated webhook for an event, because you don’t want one failed event to break your automations for all other events.
