STRIPE PAYMENTSDeposits on service sitesA service business usually takes money in a few shapes: a booking deposit, a fixed-price package, a final balance. Stripe offers three main ways to do it from your website, and they differ less in what the customer sees than in how much your team builds and maintains. Here is how we choose between them.
What are the three options?
- Payment Links: a Stripe-hosted payment page you create in the Dashboard without code, then share as a link, a QR code or a buy button on your site.
- Checkout: a prebuilt payment page created through the Checkout Sessions API, either hosted by Stripe or embedded on your site.
- The Payment Element: an embeddable UI component you place inside your own page and checkout flow, styled to match your design.
Stripe's own comparison rates the ongoing maintenance of a full Checkout page as low, an embedded form as some, and a page built with Elements as the most. That trade-off runs through every decision below.
When are Payment Links enough?
Payment Links are enough when the price is known in advance and nothing in your own system needs to create the payment. A fixed deposit for a discovery workshop or a packaged service fits well. One link can be paid many times, or you can limit the number of payments so it deactivates when the limit is reached.
They do more than they appear to. A link can let customers choose what to pay or adjust quantities, require a checkbox to accept your terms of service, and collect extra details through custom fields, such as a dropdown for the package. After payment it shows a confirmation message or redirects to your own page. Stripe warns against using custom fields for personal, protected or sensitive data.
When do you need Checkout?
You need Checkout when the amount or the items come from your own system: a quote approved in your CRM, a booking with a date and a variable number of people, a balance that differs for each client. Your server creates a Checkout Session with the right line items, then sends the customer to it or embeds it on your page.
Checkout also covers patterns service businesses use often. A session in setup mode saves payment details so you can charge the customer later, and the submit button can carry a Book label, which Stripe recommends for bookings.
When is an embedded Payment Element worth it?
It is worth it when payment is one step inside a larger flow you control, such as a multi-step booking form or a client portal, and the design must match exactly. The Payment Element validates input, handles errors and can offer many payment methods, but you build the page around it. Stripe recommends pairing it with the Checkout Sessions API, which still handles line items, tax and discounts. The Payment Intents API is the route when you want to own the whole checkout flow and build that logic yourself.
Why does the webhook matter more than the button?
Because the thank-you page is not proof of payment. Stripe says you cannot rely on your landing page to trigger fulfilment, since a customer can pay and lose their connection before it loads. Payment Links use Checkout, so the same applies to them. A sound setup does four things:
- Listens for
checkout.session.completedat a webhook endpoint, pluscheckout.session.async_payment_succeededif you accept delayed methods such as bank debits. - Verifies every event using the
Stripe-Signatureheader, the endpoint's signing secret and the raw request body. - Makes fulfilment safe to run more than once for the same session, because events can arrive twice and not always in order.
- Returns a 2xx response quickly, then does the slower work, such as updating the CRM or sending the welcome email.
Our own Next.js SaaS, AgencyPilotHQ, keeps its Stripe subscriptions in sync with webhooks in the same way.
How do you take a deposit and then a balance?
Keep it simple. Take the deposit with a Payment Link or a Checkout Session at booking time, and send the balance as a Stripe invoice, which Stripe positions for collecting payments from a specific customer, including partial payments and payment plans. If you want to charge the balance automatically instead, save the payment method during Checkout and state that clearly in your terms. Stripe suggests checking with legal counsel before saving and reusing payment details.
Test the unhappy paths before launch: a declined card, a delayed bank payment and a customer who closes the tab straight after paying.
Where to start
Write down each way a client pays you today, with the amount and who sets it. Fixed amounts point to Payment Links, amounts from your own system point to Checkout, and a custom flow points to the Payment Element. Our automation and integrations service sets up the payment, the webhook and the updates to your CRM, or contact us with the payment flow you have in mind.
FAQ
Frequently asked questions
Can we add a Stripe Payment Link to a Webflow or WordPress site?
Yes. A Payment Link is a URL, so it works as a button on any website, and Stripe can also create an embeddable buy button from it. The customer pays on a Stripe-hosted page. Add a webhook or a connected automation for anything that should happen once the payment succeeds.
Can customers pay a custom amount with Stripe?
Yes. A Payment Link can let customers choose what to pay, within a minimum and maximum you set. That suits deposits of different sizes. For anything tied to a quote, we prefer Checkout, where your server sets the exact amount from the approved quote, so nobody has to type it correctly.
Can the payment page use our own domain?
Yes. Stripe lets you bring a custom domain to Checkout, Payment Links and the customer portal, so the page can sit on a subdomain such as pay.yourdomain.com instead of a Stripe address. It keeps the brand consistent at the moment a client decides whether to trust the page.
How do we test Stripe payments before going live?
Use a Stripe sandbox with the Stripe CLI. The stripe listen command forwards events to a local endpoint, and Stripe's test card numbers let you run the whole flow, webhook included, before any real money moves. Test failed and delayed payments as well as the successful one.
Can Stripe payments update other tools automatically?
Yes. Stripe lists partners such as Zapier for automating what happens after a payment link payment, like emailing the customer or recording the sale in a spreadsheet. For anything critical, such as granting access or confirming a booking, we still prefer a webhook that your own system verifies.

