Booking best practices: payments, deposits and no-shows with Stripe
Whether you run a salon, studio, restaurant, clinic or venue, how you take payment for a booking shapes how many customers turn up, how much you earn and how often you deal with awkward refunds. This guide covers the decisions that matter most and how to put them into practice with Stripe.
1. Choose your payment model
The right model depends on what a no-show costs you. The higher the cost of an empty slot, the more you should take up front.
| Model | How it works | Best for | Stripe feature |
|---|---|---|---|
| Pay in full | Customer pays the whole price at booking | Classes, tickets, fixed-price services | Stripe Checkout or Stripe Payment Links |
| Deposit | Customer pays part now, the rest on the day | Longer treatments, group tables, private hire | Stripe Checkout for the deposit amount |
| Card on file | Card saved at booking, charged only for a late cancellation or no-show | Restaurants, appointments with variable prices | Save payment details for later charges |
| Hold | Card authorised at booking, captured or released after the appointment | Short lead times where the amount is known | Place a hold on a payment method |
Good practice
- Keep deposits proportionate. Around 10 to 30 percent of the booking value is a common range.
- Use holds only for bookings close to the date. For most online card payments, a hold expires after about 7 days.
- Show the total, the deposit and when the rest is due before the customer pays.
2. Write a cancellation policy customers accept up front
A clear policy, shown before payment, prevents most refund arguments and disputes.
- Set one simple cut-off. For example, free cancellation up to 24 hours before, after that the deposit is kept.
- Show it before they pay. Put the policy next to the pay button, not in the small print or a later email.
- Get clear consent to charge later. If you save a card for no-show fees, say so plainly and have the customer agree at booking.
- Repeat it in the confirmation. Include the policy and a link to cancel or reschedule.
- Make rescheduling easier than cancelling. Customers who can move a booking in a few taps often keep their deposit with you.
- Apply it consistently. Decide in advance when you'll make exceptions, such as illness or bad weather, so staff handle them the same way.
3. Cut no-shows
Payment up front is the strongest lever, but timely communication does a lot of the work too.
- Confirm instantly. Send a confirmation the moment payment succeeds, with the date, time, address and policy.
- Remind twice. A reminder the day before and another a few hours before catches most forgetful customers.
- Use the channel they read. Messaging apps and SMS are usually opened far faster than email.
- Let them reply to reschedule. A reminder that says "reply to move your booking" turns a no-show into a new slot.
- Release slots quickly. When someone cancels, offer the slot to a waitlist straight away.
- Track your numbers. Record no-shows and late cancellations each month so you can tell whether a policy change worked.
4. Integrating Stripe: a best-practice checklist
For whoever builds or maintains your booking system. Each point prevents a common, costly mistake.
Taking payment
- Use a hosted payment page. Stripe Checkout or Stripe Payment Links keep card details off your servers and add Apple Pay and Google Pay with little work.
- Hold the slot while the customer pays. Reserve it for a short time and release it if the session expires, so two people can't pay for the same slot. See managing limited inventory.
- Plan for Strong Customer Authentication. In Europe and the UK, customers may need to verify payments with their bank. Save cards properly for later charges so off-session no-show fees still go through. See Strong Customer Authentication.
Confirming bookings
- Confirm bookings from webhooks, not the redirect. Customers close tabs and lose signal. Listen for webhook events such as a completed checkout before marking a booking paid.
- Link every payment to its booking. Store your booking ID in metadata so payments, refunds and disputes are easy to trace.
- Make retries safe. Use idempotency keys so a retried request never charges a customer twice.
Going live
- Test every path in test mode. Run successful payments, declines, authentication, cancellations and refunds with Stripe's test cards.
- Set a recognisable statement descriptor. Customers who recognise the charge on their statement are far less likely to dispute it.
- Running a platform for many businesses? Use Stripe Connect so each business is paid directly into its own account.
5. Refunds and disputes
A fast, fair refund is cheaper than a dispute, which costs you a fee and your time even when you win.
- Refund quickly when it's owed. Use partial refunds when only part of the booking is affected, such as one guest dropping out.
- Tell the customer straight away. Confirm the amount and how long it will take to reach their account.
- Keep a record of every booking. Save the time, the policy they accepted, the confirmation and any messages. This is your evidence if a payment is disputed.
- Respond to disputes promptly. Card networks set firm deadlines, so check your Stripe Dashboard regularly.
6. Taking bookings in messaging apps
More customers now book by message than by web form. Taking the booking and payment in the same conversation removes the steps where people drop off.
- Send a payment link in the chat. A Stripe Checkout session or payment link works in WhatsApp, SMS and other messaging apps.
- Keep the conversation going after payment. Use the same thread for the confirmation, reminders and rescheduling.
- Follow each channel's rules. Messaging platforms set their own policies on templates, opt-in and business messages, so check them before you launch.
Further reading
The Stripe guides most useful to booking businesses.
| Stripe guide | Use it for |
|---|---|
| Accept a payment | Getting started with online payments |
| Stripe Checkout | A hosted payment page for bookings and deposits |
| Stripe Payment Links | Payment links you can send by message or email, no code needed |
| Place a hold on a payment method | Authorising now, charging after the appointment |
| Save payment details for later | Charging late-cancellation or no-show fees |
| Refunds | Full and partial refunds |
| Disputes | Preventing and responding to chargebacks |
| Stripe resources hub | Wider guides on running and growing a business |