Skip to content

Updating visuals

If you see any images containing outdated UI, please bear with us.

We are updating all content as quickly as possible to mirror our new UI.

Choose how to collect payments

You have two main ways to collect payments in WeWeb. Pick the one that fits how you want your app to look and how much you want to build.

Stripe Checkout (hosted page)

Best for: Getting payments live quickly with minimal setup.

  • Your backend creates a Checkout Session (with line items, success/cancel URLs, and mode: payment or subscription).
  • You send the customer to Stripe’s page (redirect to the session url).
  • Stripe shows the payment form, collects the payment, and redirects the customer back to your success or cancel URL.
  • You never see or handle card numbers in your app.

Use Checkout when: You’re fine with customers leaving your site for a Stripe-hosted page and you want the least amount of custom UI.

Learn more: Stripe Checkout

Payment Intents (custom form)

Best for: Keeping the user on your site with a payment form that matches your design.

  • Your backend creates a Payment Intent and returns a client_secret.
  • Your interface uses Stripe’s payment element (e.g. via the Stripe plugin) so the form lives inside your app.
  • The customer pays without leaving your page; you control the layout and flow.

Use Payment Intents when: You want the payment form embedded in your own pages and a fully custom experience.

Learn more: Payment Intents and subscriptions

Quick comparison

Stripe CheckoutPayment Intents
Where does the user pay?On Stripe’s hosted pageOn your page (embedded form)
Setup effortLowHigher (form + backend + optional plugin)
One-time paymentsYes (mode payment)Yes
SubscriptionsYes (mode subscription)Via Create Subscription action (no Checkout)
Card dataNever touches your appHandled by Stripe.js / Stripe plugin

Next: Stripe Checkout (step by step) or Payment Intents and subscriptions