Skip to content
GPLWP Guides

How to accept payments for appointments on WordPress

Booking & Events Time About 30–60 minutes 6 steps Updated 3 Sep 2026

BOOKING & EVENTS
The short answer

You normally need an appointment-booking plugin to combine availability, reservations and payment status in one flow. Connect the plugin to Stripe or another gateway, choose full payment or a deposit, publish the booking form and test a real customer journey before taking bookings.

The route
  1. 01Choose the booking setup
  2. 02Install and configure booking software
  3. 03Connect your payment gateway
  4. 04Set payment and booking rules
  5. 05Publish and test the booking form
  6. 06Use the matching payment add-on

What you need

  • A WordPress site with HTTPS enabled
  • An appointment-booking plugin or booking service
  • A Stripe or other supported payment account
  • Admin access to WordPress

Choose the booking setup

Decide whether customers will pay the full appointment price, pay a deposit, or book first and pay later. Full payment is simplest; deposits can reduce no-shows but require clear wording about the remaining balance and cancellation policy.

You need a booking system for live availability, time-slot protection, appointment records and payment status. WordPress alone can display a form or payment link, but it does not provide the scheduling logic needed to prevent double bookings.

Install and configure booking software

Install an appointment-booking plugin or connect an external booking service. Create your services, durations, prices, staff members and locations, then set business hours, breaks, holidays and lead-time rules.

Do not publish the form until every service has a price and at least one staff member or resource assigned. A missing price or unavailable provider commonly makes the payment option disappear or leaves customers with no bookable slots.

Connect your payment gateway

Open the booking plugin’s payment settings and enable a supported gateway such as Stripe. Sign in or enter the credentials requested by that integration, then set the currency and decide which payment methods customers may see.

Use live credentials only after testing. Live card payments require HTTPS, and many integrations also use webhooks or return URLs to update an appointment after Stripe confirms or rejects a payment. If those callbacks are blocked by caching, security rules or a staging URL, the customer may pay while the appointment remains pending. Stripe documents both plugin-based integrations and hosted checkout flows.

Set payment and booking rules

Choose whether a successful payment automatically approves the appointment or leaves it pending for manual review. Add your cancellation, refund and rescheduling rules to the booking form and confirmation emails.

If you use deposits, show the amount paid and the balance due before the customer submits the booking. Also decide what happens when someone abandons checkout: the time slot should expire or return to availability after the interval supported by your booking system.

Publish and test the booking form

Add the booking form to a page using the plugin’s block, shortcode or page-builder widget. Check the form on a phone as well as a desktop, and make sure the selected service, staff member, time, price and payment method are visible before checkout.

Run a complete test in the gateway’s test mode: select a slot, pay, return to the site, check the appointment status, confirm the emails and verify the transaction in the gateway dashboard. Then test a failed payment and an abandoned checkout. Clear or exclude the booking page from aggressive page caching if old availability or broken payment buttons appear.

Use the matching payment add-on

If your site already uses Bookly, the Bookly Stripe Add-on is a practical route for connecting Stripe to the booking workflow. Bookly’s documentation says the add-on requires Bookly PRO, is enabled under Bookly > Settings > Payments, and uses Stripe keys plus webhook events for payment updates.

Check the form type before installing it: Bookly currently states that the Stripe add-on is not supported in its modern booking forms. The alternative Bookly Cloud Stripe option uses a separate setup, so do not mix the two configurations while troubleshooting.

The fast route

Let Bookly Stripe Add-on do it

Stripe integration for one-time and recurring appointment payments; choose it when your booking system already uses Bookly.

Get Bookly Stripe Add-on

Sources

  1. docs.stripe.com /payments/accept-a-payment?platform=plugins&utm_source=opena…
  2. support.booking-wp-plugin.com /hc/en-us/articles/115003938533-Stripe-Payments-Add-on?utm_s…

Questions

Can I accept appointment payments without a WordPress plugin?
You can place a Stripe Payment Link on a page, but that does not reliably manage live availability, time-slot conflicts, appointment status or automatic confirmations. For a real appointment workflow, use a booking plugin or an external scheduler with payments built in. A manual form plus payment link is only sensible for a small number of fixed appointments that you confirm yourself.
Should customers pay the full amount or a deposit?
Choose full payment when the service price is fixed and you want the booking confirmed immediately. Choose a deposit when customers commonly cancel or when the final price can change, but state the balance, refund policy and payment deadline clearly. Your booking system must support the deposit workflow; otherwise, track the remaining amount manually and expect more administration.
Why did a customer pay but the appointment stays pending?
The usual causes are a blocked webhook, an incorrect return URL, caching, failed background requests, or a booking plugin that cannot match the payment to the appointment. Check the gateway event log and the booking plugin’s payment record, confirm that the site uses HTTPS, and temporarily test with caching and security plugins isolated. Do not approve the slot solely from a customer screenshot.
Do I need WooCommerce to take appointment payments?
No, many appointment plugins connect directly to Stripe or another payment gateway and do not require WooCommerce. WooCommerce is useful when you already run a shop, need its tax and order tools, or want to use a gateway available through WooCommerce. It can also add another checkout layer, so confirm how it handles appointment availability, deposits and payment status before choosing it.