How to Accept Bank Transfer Payments in WooCommerce

Some shoppers still skip cards and pay straight from their bank. In fact, bank transfers make up around 20% of digital payments in Europe, and that share keeps growing. If you want to accept bank transfer payments in WooCommerce, the good news is simple: the feature is already built in. You do not need to buy a plugin to turn it on.

This guide shows you how to set it up, what your customers see, and how to avoid the mistakes that leave orders stuck and unpaid.

Quick Answer

To accept bank transfer payments in WooCommerce, go to WooCommerce > Settings > Payments > Take offline payments. Enable Direct Bank Transfer, click Manage, and add your bank account details. Save your changes. Customers now see a bank transfer option at checkout, and they get your account details to pay you.

That is the short version. The rest of this guide covers the parts most tutorials leave out, like confirming payments, chasing unpaid orders, and automating the whole thing.

What is direct bank transfer (BACS) in WooCommerce?

Direct Bank Transfer is a built-in WooCommerce payment method. You may also see it called BACS, which stands for Bankers’ Automated Clearing System.

It is an offline payment method. That means the payment happens outside your store. WooCommerce does not process the money. It only shows your bank details to the customer.

Here is how the flow works:

  1. The customer picks Direct Bank Transfer at checkout.
  2. They place the order. It is set to On hold.
  3. They send the money from their own bank using your details.
  4. You check your bank account to confirm the money arrived.
  5. You mark the order as Processing or Completed and ship it.

The key point is this: the customer starts the payment, not you. WooCommerce cannot see the transfer. So you have to confirm it by hand before you send anything.

When bank transfer payments make sense

Bank transfer is not right for every store. It works best in certain cases.

It is a good fit when you:

  • Sell high-value items where card fees hurt your margin.
  • Sell to other businesses (B2B) that prefer to pay by bank.
  • Want to avoid monthly gateway fees and chargebacks.
  • Sell in regions where bank transfer is a normal way to pay.
  • Have a small order volume you can check by hand.

It is a poor fit when you:

  • Sell cheap, high-volume products.
  • Sell digital downloads that buyers want right away.
  • Cannot check your bank account often.

Bank transfer gives you control and low fees. The trade-off is manual work and slower orders.

How to set up direct bank transfer in WooCommerce

Setting up bank transfer takes about five minutes. Follow these steps.

Step 1: Open your payment settings

Log in to your WordPress dashboard. Go to WooCommerce > Settings > Payments.

Select Offline Payments

You will see a list of payment methods. Look for the link that says Take offline payments and click it. Direct Bank Transfer lives there, along with Check payments and Cash on delivery.

Step 2: Open the settings

Click the Manage button next to Direct Bank Transfer. This opens the setup screen.

Manage Direct bank transfer

Step 4: Fill in the details

Now set up what your customers see. Here is what each field does:

Fill in the details
  • Title: The name shown at checkout. Keep it clear, like “Bank Transfer” or “Pay by Bank.”
  • Description: A short note that appears when the customer picks this option. Use it to set expectations, like “Your order ships after we confirm payment.”
  • Instructions: Text that shows on the order confirmation page and in the order email. Tell the customer how to pay.
  • Account details: Your bank information. This is the most important part.

Step 5: Add your bank account

ADD A bank account

Click Add account and enter your details:

  • Account name
  • Account number
  • Bank name
  • Sort code or routing number
  • IBAN (for international transfers)
  • SWIFT / BIC (for international transfers)

You only need to fill in the fields your customers will actually use. A UK store needs a sort code. A US store needs a routing number. An international store should add IBAN and SWIFT.

Step 6: Save changes

Click Save changes. That is it. Bank transfer is now live on your checkout.

What your customers see at checkout

When a customer picks bank transfer, three things happen.

checkout view

First, they see your title and description at checkout. Second, after they place the order, they land on the Order Received page. Your bank details and instructions show there. Third, they get an order email with the same details.

The order status is set to On hold. This tells both you and the customer that you are waiting for payment.

One thing to note: the customer must copy your details and pay from their own bank. WooCommerce does not send them to a payment page. This is normal for bank transfer, but it can confuse first-time buyers. Clear instructions fix that. More on this below.

How to confirm payment and complete the order

This is the step most guides skip. But it matters most.

Because bank transfer is manual, WooCommerce will never mark the order as paid on its own. You have to do it.

Here is the routine:

  1. Check your bank account for the incoming payment.
  2. Match the amount and the reference to the order.
  3. In WooCommerce, open the order under WooCommerce > Orders.
  4. Change the status from On hold to Processing.
  5. Ship the order. Mark it Completed when done.

Never ship before the money clears and lands in your account. A “payment sent” screenshot is not proof. Some transfers get cancelled or reversed. Wait for the funds to actually arrive.

Tip: Ask customers to use their order number as the payment reference. This makes matching payments to orders much faster.

How to automate bank transfer payments

Manual checking works fine for a few orders a day. It gets painful at scale. Here are three ways to speed it up.

Option 1: Use a reconciliation plugin

Some plugins let you import a bank statement file (CSV or CAMT.053). The plugin then matches each payment to an open order by the reference and amount. You can mark many orders as paid at once. This saves hours if you get lots of transfers.

Option 2: Use Stripe bank transfer

Stripe offers bank transfer payments through a virtual account system. A plugin can create a unique virtual bank account for each order. When the money arrives, Stripe confirms it, and the order updates from On hold to Processing on its own. This removes most of the manual work. Note that availability and fees depend on your country and Stripe account.

Option 3: Keep it manual but tidy

If your volume is low, you may not need automation at all. A clean routine and a good payment reference are often enough. Do not add tools you do not need.

Pick the option that fits your order volume. Low volume: stay manual. High volume: reconcile or use Stripe.

Common problems and how to fix them

These are the issues store owners run into most. Here is how to solve each one.

The order is stuck on “On hold”

This is not a bug. It is by design. Bank transfer orders stay On hold until you confirm payment by hand. Check your bank, then update the status yourself.

Orders do not auto-complete

WooCommerce cannot detect a bank transfer, so it cannot auto-complete the order. Order auto-complete tools skip offline methods like BACS on purpose. You must move these orders forward manually.

The customer says they paid but you see nothing

Do not ship yet. First, ask the customer for a transaction reference. Then check with your bank using that reference. Transfers can take a few days to clear. WooCommerce and payment support teams cannot trace a bank transfer for you. Only you and your bank can.

Customers do not know how to pay

Many buyers have never paid by bank transfer at checkout. If your instructions are weak, they place the order and never pay. Write clear, step-by-step instructions in the settings. Include the exact reference to use.

Payments are hard to match to orders

If customers do not add a reference, matching gets messy. Fix this in your instructions. Ask them to use their order number as the reference every time.

Wrong or missing bank fields

A customer in another country may not be able to pay with only a local account number. Add IBAN and SWIFT if you sell internationally. Add a sort code or routing number for local buyers.

Tips to reduce unpaid orders

Bank transfer has one big weakness: some people place an order and never pay. These tips cut down on that.

  • Set a payment deadline. Tell customers to pay within 2 or 3 days. Add this to your instructions.
  • Send a reminder. If payment does not arrive, email the customer a gentle nudge.
  • Cancel stale orders. Set unpaid orders to auto-cancel after a set time. This frees up stock.
  • Ask for the order number as reference. This makes tracking easy on both sides.
  • Show the bank details clearly. Put them at checkout, on the thank-you page, and in the email.
  • Hold stock, not shipping. Never ship until the money clears.

Small changes here add up. Clear instructions alone can lift your paid-order rate.

Bank transfer vs other offline payment methods

WooCommerce has three built-in offline methods. Here is how they compare.

MethodHow it worksBest for
Direct Bank Transfer (BACS)Customer pays from their bankHigh-value or B2B orders
Cash on DeliveryCustomer pays when the order arrivesLocal delivery, cautious buyers
Check PaymentsCustomer mails a chequeRare, older buyer base

All three set the order to On hold and need manual confirmation. Bank transfer is the most common of the three for online stores.

Frequently asked questions

Does WooCommerce charge fees for bank transfer?

No. Direct Bank Transfer is free and built into WooCommerce. Your bank may charge fees for incoming transfers, so check with them.

Is bank transfer safe for my store?

Yes, as long as you confirm the money before you ship. The risk is shipping too early. Wait for funds to clear in your account first.

How long does a bank transfer take to clear?

It depends on the system. A UK BACS transfer takes about 2 to 3 working days. Faster systems can clear the same day. Always wait for the money to land before you ship.

Can I automate bank transfer confirmation?

Yes. A reconciliation plugin can match payments from a bank statement file. A Stripe bank transfer plugin can update orders on its own when funds arrive.

Why is my bank transfer order still on hold?

Because you have not confirmed payment yet. Bank transfer orders stay on hold by design. Check your bank, then update the order status by hand.

Do I need a plugin to accept bank transfer in WooCommerce?

No. The feature is built in. You only need a plugin if you want to automate confirmation or reconcile many payments at once.

Can customers pay a bank transfer order later?

Yes. The details stay in their order email and on the order page. They can pay any time before you cancel the order. Set a deadline so orders do not sit unpaid forever.

Final thoughts

Bank transfer is one of the easiest payment methods to turn on in WooCommerce. It costs nothing, avoids card fees, and builds trust for larger orders.

The trick is the manual side. Confirm every payment before you ship. Write clear instructions. Ask for the order number as the reference. If your volume grows, add a reconciliation plugin or Stripe to automate the work.

Set it up today. Place one test order yourself to see exactly what your customers will see. That single test will show you if your instructions are clear enough to get paid.

author
I'm a technical content writer with a passion for simplifying complex ideas into clear, engaging content for web, email, and social media. With experience in SEO, CRM tools, and digital strategy, I've worked with RTOs, education consultancies, and global campaigns. I enjoy creating high-performing content, leading creative teams, and diving into performance analytics. Outside of work, you'll find me reading, doing photography, or hunting for the next great café spot.