No-shows are expensive. A client books a 90-minute slot, never shows up, and you’re left staring at an empty chair with no way to recover that time. If you’ve been looking for a way to take an appointment deposit with WordPress and Stripe, you’re not alone — and the solution is simpler than most tutorials make it look.
This guide walks you through exactly how to require upfront payment at booking using Vollstart Appointment Desk Pro and WooCommerce with Stripe — so every confirmed appointment comes with a financial commitment attached.
[SCREENSHOT: Example booking form showing price and a “Proceed to Checkout” button]
Why No-Shows Keep Happening (And Why Reminder Emails Don’t Fix It)
Sending a reminder email the day before is good practice. But it doesn’t protect you when someone simply decides not to show up. The appointment cost them nothing. Cancelling costs them nothing. Ghosting costs them nothing.
The psychology is straightforward: when there’s no skin in the game, no-shows stay high. Studies across service industries — salons, medical practices, consulting — consistently show that requiring a deposit reduces no-show rates by 50–80%. Not because customers become more responsible, but because they now have a reason to show up or cancel properly.
The problem historically has been implementation. Most WordPress booking plugins either don’t support deposits natively, require a separate paid add-on for payment integration, or funnel customers through a clunky checkout experience that kills conversions.
How Appointment Deposits Work in WordPress with Stripe
The cleanest setup uses WooCommerce as the payment layer and Stripe as the gateway — a combination most WordPress site owners already have or can set up in under an hour. Here’s how the flow works:
- Customer opens your booking form and selects a service, date, and time slot
- The live price display updates in real time based on the selected service and any extras
- Customer submits the form and is directed to WooCommerce checkout
- Payment is processed via Stripe — full amount or a deposit, depending on your setup
- The appointment is confirmed only after successful payment
This means no appointment is locked into your calendar without money changing hands. Slot holds prevent double-bookings while the customer is in the checkout flow — a critical detail that most plugins miss entirely.
[SCREENSHOT: WooCommerce checkout page showing appointment summary and Stripe payment fields]
Setting Up Appointment Deposit with WordPress and Stripe: Step by Step
Before you start, make sure you have the following installed and active on your WordPress site:
- Vollstart Appointment Desk Pro — the WooCommerce integration is a Pro feature
- WooCommerce — free from the WordPress plugin repository
- WooCommerce Stripe Payment Gateway — the official Stripe plugin for WooCommerce, free
Step 1 — Connect Stripe to WooCommerce. In your WordPress admin, go to WooCommerce → Settings → Payments. Enable Stripe and click Set Up. You’ll need your Stripe publishable and secret keys from your Stripe dashboard. Use test keys first to verify the flow end to end before going live.
[SCREENSHOT: WooCommerce Payments settings with Stripe enabled]
Step 2 — Enable WooCommerce integration in Appointment Desk. Open Appointment Desk → Settings and locate the WooCommerce integration toggle. Once enabled, each of your services can be linked to a WooCommerce product. This product controls the price that appears in checkout.
[SCREENSHOT: Appointment Desk settings panel with WooCommerce integration option highlighted]
Step 3 — Link your service to a WooCommerce product. Create a simple product in WooCommerce for each service you want to gate behind payment. Set the price to either the full appointment cost or your deposit amount — whatever you want to collect upfront. Then assign this product to the corresponding service in Appointment Desk.
Step 4 — Test the full booking flow. Use Stripe’s test card 4242 4242 4242 4242 with any future expiry date to simulate a successful payment. Confirm that the appointment appears in your dashboard with the correct payment status, and that the customer receives an email confirmation with the ICS calendar file attached.
[SCREENSHOT: Appointment in the admin dashboard showing payment status “Paid”]
Step 5 — Go live. Swap your Stripe test keys for live keys in WooCommerce settings. Your booking form is now a revenue-protected intake point: no payment, no confirmed slot.
What Happens to the Deposit if They Don’t Show
This is the part that actually changes behavior. When a customer pays a deposit and doesn’t show up, the deposit stays with you — processed through Stripe and settled in your account on Stripe’s normal payout schedule. You’re not chasing anyone. You’re not sending awkward follow-up messages. The financial consequence is already handled.
Your Appointment Desk dashboard shows payment status for every booking. You can see at a glance which appointments are paid, which are pending, and which were cancelled. Appointment change history gives you a full audit log — useful if a customer disputes a charge and you need to show exactly what happened and when.
For cancellations where you do want to issue a refund, you handle that directly through your Stripe dashboard or WooCommerce orders — standard refund flow, no special configuration needed.
Who This Setup Works Best For
Any service business with a recurring no-show problem benefits from deposit collection at booking. In practice, the highest-impact use cases are:
- Hair salons and barbershops — prime-time weekend slots are especially vulnerable to last-minute ghosting
- Medical and dental practices — appointments have real overhead costs; an empty chair means real losses
- Consulting and coaching — hourly rate means every missed session is a direct revenue hit
- Repair shops — parts may be ordered in advance; a deposit protects that investment
The walk-in queue system in Appointment Desk handles customers who prefer to drop in without booking — so you’re not forcing everyone online. The deposit requirement applies only to customers who use the online booking form, which is exactly the behaviour you want to protect.
No Monthly SaaS Fees. No Per-Extension Upsells.
Most booking tools that support deposit collection either charge a monthly SaaS fee or sell payment integration as a separate paid add-on. With Appointment Desk Pro and WooCommerce, what you pay for Stripe is Stripe’s standard transaction fee — the same you’d pay with any other integration. No surprise line items for basic functionality.
The WooCommerce Stripe gateway itself is free. Appointment Desk Pro includes the WooCommerce integration as part of the core package — not a bolt-on.
If your site already runs WooCommerce for other products, you’re adding booking with deposit collection without introducing any new payment infrastructure. Everything settles into the same Stripe account and WooCommerce order management you already use.
Start Taking Deposits at Every Booking
Setting up an appointment deposit in WordPress with Stripe doesn’t require a developer or a complex plugin stack. With Vollstart Appointment Desk Pro and WooCommerce, the entire flow — booking form, live price display, Stripe checkout, confirmed appointment — works out of the box.
The free version of Appointment Desk is available on WordPress.org if you want to explore the plugin before upgrading. The WooCommerce deposit integration is unlocked in Pro.