Blog
How to Set Up Manual Bank Transfer Payments in WooCommerce
If you run a WooCommerce store and want to accept direct bank transfers instead of (or alongside) card payments, you’re not alone. Manual bank transfer — also called BACS (Bank Automated Clearing System) — is one of the most requested payment methods for stores selling high-ticket items, working with B2B clients, or operating in regions where card processing fees eat into margins.
In this guide, you’ll learn how to enable manual bank transfers using WooCommerce’s built-in tools, where the native setup falls short, and how to fix those gaps with the right plugin.
What Is Manual Bank Transfer Payment in WooCommerce?
Manual bank transfer is a payment method where the customer places an order, receives your bank details at checkout, and transfers the funds directly from their bank account. Unlike Stripe or PayPal, there’s no automatic confirmation — you (or your team) manually verify the payment and update the order status.
This method is popular for:
- B2B and wholesale orders, where buyers prefer invoicing over card payments
- High-value purchases, where card processing fees (2-3%) add up fast
- Markets with low card penetration, where bank transfer is the default payment culture
- Stores wanting to avoid third-party payment processor fees entirely
Step 1: Enable BACS in WooCommerce Settings
WooCommerce includes a built-in “Direct Bank Transfer” option. Here’s how to turn it on:
- Go to WooCommerce → Settings → Payments
- Find Direct bank transfer in the list and toggle it on
- Click Manage to open its settings
- Fill in your Account Details — bank name, account number, sort code/IBAN, and BIC/SWIFT
- Customize the Instructions field — this text shows to customers on the order confirmation page and in emails
- Save changes
At this point, customers can select “Direct bank transfer” at checkout, and WooCommerce will mark the order as On hold until you manually confirm payment and change the status to Processing or Completed.
Step 2: Where the Native BACS Setup Falls Short
WooCommerce’s built-in bank transfer option works, but it’s minimal. Out of the box, it doesn’t let you:
- Let customers upload a payment receipt or proof of transfer — you’re stuck manually checking your bank account against order numbers
- Set discounts for customers who pay via bank transfer (common incentive to offset the fees you save by skipping card processors)
- Set minimum or maximum payment limits for this method
- Generate a QR code for faster mobile bank transfers
- Handle peer-to-peer (P2P) style transfers, where the buyer pays another user or account directly rather than your main business account
For a small store with a handful of orders a week, the native option might be enough. But as order volume grows, matching bank statements to orders manually becomes a real bottleneck — and a common source of order-status errors.
Step 3: Add Receipt Uploads and Payment Verification
To close this gap without hiring someone to reconcile bank statements all day, you need a plugin that extends the native gateway with:
- A file upload field at checkout or on the order confirmation page, so customers attach their transfer receipt immediately
- Order notes or a custom order status (e.g., “Awaiting Receipt Review”) so your team can see at a glance which orders need verification
- Email notifications triggered when a receipt is uploaded, so nothing sits unnoticed
This is exactly the gap Flexi Cart to Cart Gateway was built to close. It adds a native WooCommerce payment gateway purpose-built for manual and peer-to-peer transfers — including receipt uploads, configurable payment discounts, minimum/maximum payment limits, and QR code generation for faster mobile transfers — without needing a third-party processor or custom development.
Step 4: Set Discounts and Payment Limits (Optional but Recommended)
If you’re offering bank transfer as an alternative to card payments, consider:
- A small discount (1-3%) for customers who choose bank transfer — it offsets the card fees you’re not paying, and incentivizes a payment method that’s easier for you to reconcile
- A minimum order value for bank transfer, since small orders aren’t worth the manual verification overhead
- A maximum limit, if you want to route very large orders through a verified, higher-trust process instead
These aren’t available in core WooCommerce and require either custom code or a dedicated plugin.
Step 5: Test the Checkout Flow
Before going live:
- Place a test order using the bank transfer method
- Confirm the instructions and account details display correctly
- If using a receipt upload feature, confirm the file attaches to the order and you receive a notification
- Check that the order status updates correctly once you mark payment as received
- Test on mobile — bank transfer customers frequently pay from a banking app, so your checkout and any QR code should be mobile-friendly
Common Issues and Fixes
Bank transfer isn’t showing at checkout Usually caused by shipping zone or currency restrictions on the gateway, or the method being disabled for certain product categories. Double-check the payment method’s availability settings.
Orders stuck in “On hold” for too long This usually means there’s no clear internal process for checking and confirming payments. A receipt upload feature (see Step 3) removes most of this friction by giving you proof of payment attached directly to the order.
Customers unsure of what to do after checkout Make your Instructions field (Step 1) as explicit as possible: include the exact amount, your account details, and what the customer should do next (e.g., “upload your receipt here” or “include your order number as the transfer reference”).
Final Thoughts
WooCommerce’s built-in direct bank transfer option is a solid starting point, but it’s designed for low order volumes and manual oversight. Once you’re processing more than a handful of bank transfer orders a week, adding receipt uploads, discounts, and payment limits will save you hours of manual reconciliation — and reduce order-status errors.
If you want all of this without custom development, Flexi Cart to Cart Gateway adds it directly to your WooCommerce checkout as a native payment gateway.
