Help Center

Documentation Menu

How do I accept payments for bookings in WordPress?

Yes. WP Booking System can accept payments as part of the booking process.

You can offer offline methods such as Bank Transfer and Payment on Arrival, or accept online payments through supported payment gateways such as Stripe, PayPal, Square, Mollie, GoPay, Authorize.Net and Redsys.

You can also use the WooCommerce Checkout add-on if you want booking payments to go through WooCommerce and use payment gateways available in your WooCommerce setup.

To accept payments, your booking setup needs:

  • pricing enabled;
  • a booking total;
  • at least one active payment method;
  • a Payment Method Field in the booking form.

Enable pricing

Before you can accept payments, WP Booking System needs to calculate the booking price.

Enable pricing and then open:

WP Booking System → Calendars

Edit the calendar and set its Default Price.

You can also assign different prices to individual dates for:

  • high and low seasons;
  • weekends;
  • holidays;
  • special events.

Pricing Form Elements can then be added to the booking form for extras such as cleaning, breakfast or parking.

Add a Total Field to the booking form

Open:

WP Booking System → Forms

and edit the form used for bookings.

Add a Total Field if you want customers to see a full price breakdown before choosing a payment method.

The Total Field can display:

  • calendar price;
  • additional services;
  • taxes;
  • discounts;
  • security deposit;
  • final booking total.

This is similar to a shopping-cart summary and makes it clear how the amount was calculated.

Add the Payment Method Field

This is an important step.

Add a:

Payment Method Field

to the booking form.

The field displays all payment methods currently enabled on your website and lets the customer choose how they want to pay.

For example:

  • Credit Card;
  • PayPal;
  • Bank Transfer;
  • Payment on Arrival.

A payment is created and the calculated pricing information is saved to the booking only when the Payment Method Field is present in the form.

Simply enabling pricing or installing a payment gateway is not enough.

Choose your payment methods

WP Booking System includes two offline payment methods by default:

  • Payment on Arrival
  • Bank Transfer

Additional payment gateways can be added using the corresponding payment add-ons.

Supported options include:

  • Stripe;
  • PayPal;
  • Square;
  • Mollie;
  • GoPay;
  • Authorize.Net;
  • Redsys;
  • WooCommerce Checkout.

You can enable more than one method and allow customers to choose between them.

Accept payment on arrival

Use Payment on Arrival when customers should make their reservation online but pay later.

For example:

  1. Customer selects their dates.
  2. Customer completes the booking form.
  3. Customer selects Payment on Arrival.
  4. WP Booking System creates the booking and its payment record.
  5. You collect the payment when the customer arrives.

You can customize the instructions displayed for this payment method.

This is useful for businesses that accept:

  • cash;
  • card payment at reception;
  • payment at check-in;
  • another offline payment arrangement.

Accept bank transfers

WP Booking System also includes a Bank Transfer payment method.

Enable it and enter the payment instructions you want customers to receive.

For example, you can include:

  • account holder;
  • IBAN;
  • BIC/SWIFT;
  • bank name;
  • payment reference instructions.

Customers can submit the booking and then make the transfer separately.

Because a bank transfer is not confirmed instantly by the bank through WP Booking System, you should check the payment manually and update your booking workflow accordingly.

Accept credit and debit card payments

To accept card payments directly through WP Booking System, install and configure one of the supported online payment gateways.

For example, Stripe can be used to accept card payments through your booking form.

The exact setup differs depending on the provider, but the general workflow is:

  1. Install the payment add-on.
  2. Connect or configure your payment gateway.
  3. Enable the payment method.
  4. Add the Payment Method Field to the form.
  5. Submit a test booking.
  6. Complete a test payment.

Always follow the documentation for the gateway you choose, as each provider has its own credentials and configuration.

Accept PayPal payments

If you use the PayPal add-on, customers can select PayPal from the Payment Method Field.

During the booking process, they are sent through the PayPal payment flow and returned to your website afterwards.

The payment information is then associated with the WP Booking System booking.

As with any payment integration, test both:

  • a successful payment;
  • an abandoned or failed payment.

This helps you understand exactly how your booking workflow behaves in each situation.

Use WooCommerce Checkout

The WooCommerce Checkout add-on allows WP Booking System bookings to use WooCommerce for checkout.

This can be useful if you already use WooCommerce and want access to:

  • WooCommerce payment gateways;
  • WooCommerce checkout functionality;
  • WooCommerce customer accounts;
  • WooCommerce order management.

The booking information is sent through WooCommerce Checkout instead of using one of WP Booking System’s native gateway flows.

Use this option if your preferred payment gateway is supported by WooCommerce but does not have a dedicated WP Booking System integration.

Can I offer several payment methods?

Yes.

You can enable multiple payment methods at the same time.

For example:

  • Credit Card;
  • PayPal;
  • Bank Transfer;
  • Payment on Arrival.

The Payment Method Field displays the available options and the customer selects the one they prefer.

This can improve flexibility, especially if your customers come from different countries or prefer different ways to pay.

Where can I see payment information?

Open the booking in the WordPress dashboard and select:

Payment Details

This area displays information such as:

  • payment status;
  • booking total;
  • selected payment method;
  • transaction information;
  • payment breakdown;
  • refunds;
  • part payments, when applicable;
  • security deposit, when applicable.

This keeps the booking and payment information together.

Can I accept a deposit instead of the full amount?

Yes.

WP Booking System supports Part Payments.

You can configure the customer to pay:

  • a percentage of the booking price;
  • a fixed amount.

For example:

Booking total → €1,000
Deposit → 30%
Initial payment → €300
Remaining balance → €700

The remaining balance can then be collected later.

Part Payments can be:

  • mandatory;
  • optional.

You can also limit them to selected calendars or apply them only when the booking is made far enough in advance.

How can the customer pay the remaining balance?

If Part Payments are enabled, the Final Payment Method can be configured as:

Same as initial payment

The customer receives a Final Payment Link and can pay the remaining balance online.

Cash on arrival

The customer pays the remaining amount when they arrive.

If you collect the final payment online, configure the Secondary Payment Page and include the {Final Payment Link} in an Email Notification.

Can I charge a refundable security deposit?

Yes.

WP Booking System also has a separate Security Deposit feature.

A Security Deposit is different from a Part Payment.

A Part Payment is part of the booking price.

A Security Deposit is an additional refundable amount.

For example:

Booking price → €1,000
Security Deposit → €200
Total charged → €1,200

The Security Deposit can later be refunded according to your configured settings.

If Part Payments are enabled, the Security Deposit is collected with the Final Payment.

Can I add taxes?

Yes.

WP Booking System can calculate taxes or VAT as part of the booking total.

This can be used when your advertised prices need tax added during the booking process.

Make sure your tax configuration matches the legal and accounting requirements that apply to your business.

Can I offer discounts or coupon codes?

Yes, with the Discounts & Coupons add-on.

You can create discounts and allow customers to enter coupon codes in the booking form using the Coupon Field.

The discount is then included in the Total Field and affects the amount the customer pays.

Test the payment flow after configuring discounts to make sure the final amount sent to the payment gateway matches the booking total.

Does the booking need to be automatically accepted after payment?

No.

Payment status and booking status are separate.

You can collect payment while still keeping the booking in the Pending tab for manual review.

Alternatively, you can configure the booking form’s Default Booking Status so new bookings are accepted automatically.

Choose the workflow that matches your business.

For example:

Manual approval

Customer pays → booking remains Pending → you review it → you Accept the booking.

Automatic booking

Customer pays → booking is created as Accepted.

Whichever workflow you use, make sure your confirmation emails clearly tell customers whether their booking is already confirmed or still awaiting approval.

Should booked dates be blocked before the payment is completed?

If preventing double bookings is important, enable:

Automatically Block Dates

when embedding the calendar.

This reserves the selected dates when the booking is submitted, even if the booking remains Pending.

Booking status, payment status and calendar availability are separate parts of the booking workflow.

For example, you can have:

Booking status → Pending
Payment → awaiting Bank Transfer
Dates → unavailable

This prevents another customer from booking the same dates while you wait for the payment or manually review the reservation.

What happens if an online payment fails?

The exact behaviour depends on the payment gateway and the stage at which the customer leaves the payment process.

You should therefore test:

  • successful payment;
  • failed payment;
  • cancelled payment;
  • customer closing the payment page;
  • customer returning to your website without completing payment.

Open the resulting booking and check the Payment Details to confirm that the payment status matches what happened.

Do not rely only on the customer seeing a confirmation page.

For online payment methods, the payment gateway’s server-side confirmation or callback is an important part of reliably recording the payment.

Test payments before going live

Always test the complete booking and payment flow.

Check pricing

Select a few date ranges and confirm the Total Field calculates the expected amount.

Test:

  • normal dates;
  • seasonal dates;
  • extras;
  • taxes;
  • discounts.

Check each payment method

If you offer several methods, make a booking using each one.

For online payment gateways, use test or sandbox mode where available.

Check the booking

Open the resulting booking and review:

Payment Details

Confirm:

  • payment method;
  • booking total;
  • payment status;
  • transaction information.

Check emails

Confirm the customer and administrator receive the expected notification emails.

Make sure the wording correctly reflects whether the booking is Pending or Accepted.

Check availability

Confirm the selected dates become unavailable if Automatically Block Dates is enabled.

Why is no payment information saved with the booking?

The most common reason is that the booking form does not contain a Payment Method Field.

WP Booking System only creates the payment and stores the booking’s calculated pricing data when this field is present.

Open:

WP Booking System → Forms

edit your form and make sure it includes:

Payment Method Field

Then submit another test booking.

Why doesn’t my payment method appear in the form?

Check that:

  • the payment method is enabled;
  • the gateway add-on is installed and active, if required;
  • the gateway is configured correctly;
  • the Payment Method Field is included in the form.

After changing payment settings, reload the booking page and test again.

Can I accept bookings without online payments?

Yes.

You can use WP Booking System without an online payment gateway.

For example, you can offer:

  • Bank Transfer;
  • Payment on Arrival.

You can still use:

  • calendar pricing;
  • extras;
  • taxes;
  • discounts;
  • Part Payments;
  • booking emails;
  • payment records.

The payment method simply determines how the money is collected.

Which payment method should I choose?

It depends on your business.

Use Payment on Arrival when you want to collect payment directly from the customer at check-in.

Use Bank Transfer when customers should transfer the money manually.

Use a native online gateway such as Stripe, PayPal, Square, Mollie, GoPay, Authorize.Net or Redsys when you want customers to pay online as part of the booking process.

Use WooCommerce Checkout when you want your booking payments to go through your existing WooCommerce checkout and payment gateway setup.

You can also enable several methods and let the customer choose.

Summary

To accept payments with WP Booking System:

  1. Enable pricing.
  2. Set your calendar prices.
  3. Configure at least one payment method.
  4. Add a Total Field to show the price breakdown.
  5. Add the Payment Method Field to the booking form.
  6. Embed the calendar and form on your website.
  7. Test the complete booking and payment flow.

The Payment Method Field is essential: without it, WP Booking System does not create a payment record or save the calculated booking prices.

You can accept full payments, Part Payments, refundable Security Deposits, online payments and offline payments depending on how you configure your booking workflow.

Was this article helpful?

Yes No

We're sorry to see this article wasn't as helpful as we hoped it would be. Please let us know what you were looking for so that we can improve this documentation page.

Full CTA BG
Is WP Booking System a good fit for you?

Tell us about your business activity & plugin requirements and we'll let you know if WP Booking System is right for you.

Have a support question? Please use this form instead.