Pandao Booking Pro · Payments

WooCommerce payments for hotel bookings: any gateway, on your own site

Pandao Booking Pro sends the payment of a stay, the deposit or the full amount, to WooCommerce's checkout, where guests pay with any gateway you've set up there: Paystack, Razorpay, iDEAL, M-Pesa, Mercado Pago, Mollie and any card gateway. No shop, no cart, no product to create: the booking stays in Pandao Booking, only the payment goes through WooCommerce.

Get Pro from $99/year Try the live demo

Requires Pandao Booking, the free WordPress hotel booking plugin. 30-day money-back guarantee.

The WooCommerce payment page for a stay: one order line for the prepayment of the stay with the booking reference, the total and the payment method

Why pay through WooCommerce?

The free Pandao Booking plugin takes card payments through Stripe and PayPal. That covers most properties, but not all: a hotel in Nigeria wants Paystack, one in India wants Razorpay or UPI, one in Brazil wants Mercado Pago, one in Kenya wants M-Pesa, and in the Netherlands guests expect iDEAL. WooCommerce has a gateway for nearly every payment method in the world, often maintained by the payment company itself. The WooCommerce payments module of Pandao Booking Pro lets your guests pay for their stay through those gateways, without turning your booking site into an online shop.

How a guest pays

  1. On the booking form, the guest picks the payment method you've named, Online payment by default, beside the free plugin's own methods (card through Stripe, PayPal, bank transfer, cheque, at the property).
  2. The plugin creates a WooCommerce order for the amount due, the whole stay or the deposit you ask for, with a single line that names the stay and the booking reference. There is no product to create and no cart: the order exists only for this payment.
  3. The guest lands on WooCommerce's payment page, where the gateways you've set up are offered, and pays. WooCommerce doesn't ask the guest to fill in their details again; the rooms stay held meanwhile, for the time set in your payment settings.
  4. When the gateway marks the order paid, the plugin records the payment, confirms the booking and brings the guest back to the page of their booking. If the guest closes the browser after paying, WooCommerce still reports the payment and the booking is confirmed all the same.
The WooCommerce payment page for a stay: one order line naming the prepayment of the stay and the booking reference, the total, and the payment method, here a test gateway
The WooCommerce payment page of a booking, on a test site with a test gateway: one line for the stay, and the gateways you've set up.

Which gateways work

Any WooCommerce gateway that takes the payment online, in the currency of your bookings: cards through Stripe or your bank's gateway, Apple Pay and Google Pay, iDEAL, Bancontact, UPI, M-Pesa, Klarna, Mercado Pago, Paystack, Razorpay, Mollie and the rest. You set them up once in WooCommerce › Settings › Payments, with the payment company's own plugin; Pandao Booking Pro offers them as they are.

Three WooCommerce methods are left out on purpose: bank transfer, cheque and cash on delivery. They would mark an order as pending without any payment, so the stay would either be released when the holding time passes or be recorded as paid when it isn't. The free plugin already handles bank transfers, cheques and payment at the property, with a deadline, a reminder and the release of unpaid bookings.

Deposits, holds and refunds

  • Deposit or full stay. The amount sent to WooCommerce follows your payment settings: the whole stay, a percentage, the first night or a fixed amount. The balance is paid at the property. A guest who left the payment page without paying finds a Pay online button on their booking page, which opens a new WooCommerce payment while the rooms are still held.
  • Rooms held while the guest pays. The units of the booking are held for the time you set (30 minutes to 24 hours). An order can't be paid any more once that time is over, even before the scheduled tasks have run, so a late payment never books a room that's been sold since.
  • Refunds through the gateway. When a guest cancels online while cancellation is still free, the plugin asks the gateway to refund the payment, when the gateway supports refunds from WooCommerce. Otherwise the booking says the refund is to be made by hand, as with a bank transfer.
  • Orders follow the booking. A booking cancelled, or confirmed by the property while its payment page is open, cancels its unpaid orders, so nothing can be paid twice.

Setting it up

  1. Install WooCommerce, set its currency to the currency of your bookings, and set up your gateways in WooCommerce › Settings › Payments. You can skip its store pages: the module never uses the shop, the cart or products.
  2. In Booking › Settings › Modules, turn on Payments with WooCommerce. The module is off on a new site, because it only makes sense with WooCommerce and its gateways in place.
  3. In Booking › Settings › Payment, tick Online payment among the payment methods: the Online payment with WooCommerce section appears below, where you give the method the name your guests will see, for example "Pay by card or mobile money". If WooCommerce is missing or uses another currency, the tab says so instead of offering the method.
  4. Take a test booking with a gateway in test mode, then look at the order in WooCommerce › Orders and the payment on the booking.
The Payment tab of the plugin settings with the Online payment with WooCommerce section: the method ticked and the name shown to guests
Booking › Settings › Payment: the WooCommerce method among the others, with the name guests see.

What WooCommerce does, and what it doesn't

WooCommerce handles the payment page, the gateways and the refund calls. Everything else stays with Pandao Booking: the availability, the prices, the booking emails, the guest's booking page, the invoices if you use the Invoices module. WooCommerce sends none of its own emails for these orders, so guests never receive a "your order is processing" message beside their booking confirmation. The orders remain visible in WooCommerce › Orders, each one linked to its booking, which makes reconciling your gateway's payouts straightforward.

Common questions

Do I need WooCommerce to take card payments?

No. The free plugin takes cards through Stripe (with Apple Pay and Google Pay) and PayPal on their own checkout pages. WooCommerce is for the gateways they don't cover, or for a gateway you already use.

Can I offer Stripe and a WooCommerce gateway side by side?

Yes. Every method you tick in the Payment tab is offered on the booking form; guests choose.

Will my bookings appear as WooCommerce sales?

Each payment creates an order, so WooCommerce's reports count them as orders. Your booking figures, occupancy, revenue, ADR and RevPAR, come from the Reports module, which counts nights and stays rather than orders.

Does the currency have to match?

Yes. WooCommerce must use the currency of your bookings. With the Currencies module, guests can still see prices in their own currency; they pay in yours.

Get Pandao Booking Pro

WooCommerce payments and five more modules for your WordPress booking site: from $99 a year for one site, or a one-time $299 for a lifetime licence. 30-day money-back guarantee.

Get Pro from $99/year See all plans

More Pandao Booking Pro features

Related guides