Payment Gateway for Bachs for WooCommerce

Description

Payment Gateway for Bachs for WooCommerce lets your store accept payments through Bachs, a payments platform for internet businesses across African markets.

📖 Documentation and setup guide: ibrahim.ng/payment-gateway-for-bachs-for-woocommerce

Features

  • Hosted checkout redirect or on-site popup — choose whether customers are redirected to the Bachs hosted checkout page or pay in a Bachs modal without leaving your store. No card data ever touches your server either way.
  • Multiple payment methods — cards, bank transfer, mobile money, and crypto stablecoins (USDT, USDC), all handled on the Bachs checkout.
  • Sell in USD or NGN, get paid across Africa — price your store in USD or NGN and, with Bachs Adaptive Pricing enabled, customers can pay in their own local currency (NGN, GHS, KES, UGX, TZS, XAF, XOF, ZMW, RWF and more). Bachs settles to you in USD or NGN.
  • Webhook-verified fulfilment — orders complete on the collection.succeeded event, with signature verification, not on the browser redirect.
  • Failed and abandoned handling — orders are marked failed or cancelled automatically.
  • Refunds — issue a refund straight from the WooCommerce order screen.
  • Sandbox mode — build and test against the Bachs sandbox before going live.
  • WooCommerce Blocks — works with both the classic and block-based checkout.
  • HPOS compatible — supports WooCommerce High-Performance Order Storage.

Requirements

  • WordPress 6.2 or higher
  • WooCommerce 8.0 or higher
  • PHP 7.4 or higher
  • An SSL certificate (required for live payments)
  • A Bachs account — sign up at bachs.io

External services

This plugin connects to the Bachs API to create checkout sessions, verify payments, and process refunds. It is required for the plugin to function.

When a customer pays with Bachs, the plugin sends the following to Bachs (https://api.bachs.io, or https://sandbox-api.bachs.io in test mode):

  • Order reference and total amount
  • Currency
  • Customer billing details (name, email address, and phone number, when provided)
  • A product record representing the order

The customer then pays on the Bachs hosted checkout (https://checkout.bachs.io) — either by redirect, or, when the Popup checkout type is selected, in a modal opened by the Bachs checkout script (https://checkout.bachs.io/bachs.js) loaded on the order-pay page. Card and payment details are handled entirely by Bachs; this plugin never stores or processes card numbers or other sensitive payment data. Bachs also sends signed webhook notifications back to your site to confirm payment and refund status.

For details on how Bachs handles data, see:

  • Bachs website: https://bachs.io
  • Bachs documentation: https://docs.bachs.io
  • Bachs Privacy Policy: https://bachs.io/privacy
  • Bachs Buyer Terms: https://bachs.io/buyer-terms

Screenshots

Installation

  1. Upload the plugin to /wp-content/plugins/, or install it through Plugins Add New.
  2. Activate the plugin.
  3. Go to WooCommerce Settings Payments Bachs.
  4. Enable the gateway and enter your Bachs API keys (sandbox and/or live).
  5. Copy the Webhook URL shown on the settings screen into your Bachs developer portal, subscribe to the listed events, and paste the webhook signing secret back into the plugin.
  6. Save. Use test mode with a sandbox key to run a test payment before going live.

FAQ

Which currencies are supported?

Set your WooCommerce store currency to USD or NGN — these are the currencies Bachs prices and settles in. Your customers are not limited to those, though: with Adaptive Pricing enabled in your Bachs dashboard, shoppers across Africa can pay in their own local currency (such as GHS, KES, UGX, TZS, XAF, XOF, ZMW and RWF), or with cards, bank transfer, mobile money, or crypto stablecoins (USDT, USDC), all on the Bachs checkout. Bachs converts and settles the funds to your balance in USD or NGN.

Do I need to configure webhooks?

Yes. Fulfilment relies on webhooks. Add the Webhook URL from the plugin settings to your Bachs developer portal, subscribe to collection.succeeded, collection.failed, collection.abandoned and refund.paid, and paste the signing secret into the plugin.

Redirect or popup?

Under Checkout type you can choose Redirect (the customer is sent to the Bachs hosted checkout page) or Popup (the Bachs checkout opens in a modal on your store, so the customer never leaves your site). Both use the same secure Bachs checkout and are confirmed by the same webhook.

Why did my order not complete after payment?

Orders complete when Bachs delivers the signed collection.succeeded webhook. Confirm your webhook URL and signing secret are set correctly, and that your site is reachable from the internet.

Can I refund a payment?

Yes, from the WooCommerce order screen. Note that Bachs allows a single refund per charge, so once a charge has been refunded (fully or partially) a further refund through Bachs is not possible.

Does it support subscriptions?

Not in this version. This release covers one-time payments, refunds, and failed/abandoned handling.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Payment Gateway for Bachs for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.0

  • Initial release: hosted-checkout one-time payments, refunds, failed/abandoned handling, WooCommerce Blocks support, and HPOS compatibility.