Take payment when clients book
Charge for a session at the moment it's booked, and test it with a coupon before clients use it.
Clients pay as they book, in one step, so payment and appointment never come apart.
Before you start
- Stripe connected and payment routing set. See Connect Stripe and Choose where payments go.
- The session type and its hours set up. See Create a session type.
Steps
- Go to Calendar > Services and click Edit on the session.
- General tab: set the Base Price and Currency.
- Pricing tab: leave the deposit at 0% to charge the full price at booking, or set a deposit percentage.
- Coupons tab (optional): attach coupons clients can enter under "Have a promo code?". Create them first in Payments > Coupons.
- Save Changes.
Test it before clients do
- In Payments > Coupons, create a test coupon for nearly the whole price (for example $1 left to pay) and limit it to a few uses.
- Open the booking link in a private window, book a time, enter the coupon and pay with a real card.
- Check all four:
- The appointment in Calendar > Appointments shows Confirmed. It shows as Pending only until payment completes.
- An order shows in Payments.
- The coupon's use count went up.
- The confirmation email arrived.
- Refund the $1 in Stripe and cancel the test appointment (Calendar > Appointments > Cancel).
If something's off
- Appointment stuck on Pending after payment: this was a bug we fixed on October 18, 2026. If you still see it, send us a request with the appointment time.
- The booking form spins after payment, or Stripe won't open inside an embedded calendar: also fixed October 18. Stripe now opens outside the embed. Hard refresh and try again.
- The form is cut off on your website: the embedded booking form needs more height when it has a price and questions. Send us the page and we'll adjust it.