Kwugwo for WooCommerce adds Kwugwo as a payment option on your store. Kwugwo is a payment orchestration service for Nigerian businesses: you connect the payment providers you already have accounts with, and Kwugwo routes each payment to the right one. Money settles straight into your own provider account; Kwugwo never holds it.
When a customer chooses Kwugwo at checkout, a secure Kwugwo window opens on your store where they can pay by bank transfer, USSD or with their bank app. Their bank details are entered in Kwugwo’s window, never on your site.
Features
- Secure payment window: customers stay on your store while they pay.
- Bank transfer, USSD and pay with bank: offer the methods your providers support, chosen in your Kwugwo dashboard.
- Guided setup: a checklist and step-by-step guide on the settings page, a “Test connection” button that checks your keys, and a list of your Kwugwo checkouts to pick from, with no IDs to type.
- Sandbox and Live: try everything with test payments, then switch to real payments with one setting.
- Orders update by themselves: orders are marked paid when Kwugwo confirms the payment, even if the customer closes their browser. A background check every 15 minutes catches any update that was missed.
- Safe by design: every payment is confirmed with Kwugwo by your server and checked against the order amount, currency and reference before the order is marked paid.
- Refunds from WooCommerce: refund all or part of an order from the order screen.
- Classic and block checkout: works with both the classic checkout and the Cart & Checkout blocks, and with High-Performance Order Storage.
Requirements
- WooCommerce, with the store currency set to Nigerian Naira (NGN).
- A Kwugwo account with at least one payment provider connected. Sign up at kwugwo.africa.
External services
This plugin connects to Kwugwo, a payment orchestration service run by Kwugwo, to take payments. It cannot work without it.
Kwugwo API (https://api.kwugwo.africa for Live, https://sandbox-api.kwugwo.africa for Sandbox). Your server sends requests using your secret key:
- When a customer places an order with Kwugwo: the order amount and currency, the order number and a store reference, a short description containing the order number and store name, and the customer’s billing email address. For a new Kwugwo customer, the billing first and last name are also sent.
- When a payment is checked (after a webhook, when the customer returns to your store, from the background check every 15 minutes for unpaid orders, or when you click “Check payment status now”): the Kwugwo payment ID.
- When an unpaid order is cancelled: the Kwugwo payment ID, to cancel the payment request.
- When you refund an order: the Kwugwo payment attempt ID, refund amount, reason, a reference and, if you entered one, the customer’s bank and account number.
- When you save keys or click “Test connection” on the settings page: a request listing your Kwugwo checkouts.
Kwugwo checkout (https://checkout.kwugwo.africa). When the customer reaches the payment page, the plugin opens Kwugwo’s secure payment window in a frame. The window receives your public key, the Kwugwo payment ID and your store’s web address. The customer enters their payment details there.
Webhooks: Kwugwo sends payment updates to your store’s webhook URL. No data is sent from your store when receiving them.
The service is provided by Kwugwo: Terms of service, Privacy policy.
Privacy
The plugin adds suggested text to Settings → Privacy → Policy Guide describing the data shared with Kwugwo. It does not track visitors and sends nothing to Kwugwo until a customer chooses Kwugwo at checkout or you configure the plugin.
Source code
- Plugin source: github.com/Kwugwo/kwugwo-for-woocommerce
assets/js/kwugwo-checkout.js is the unminified browser build of the official Kwugwo checkout SDK, @kwugwo/checkout 0.1.3 (MIT licence). Its source is at github.com/Kwugwo/checkout-js. To rebuild it, clone that repository, check out version 0.1.3, then run npm ci and BUILD_VARIANT=dev npx tsup; the file is dist/kwugwo-checkout.global.js.
- All other JavaScript and CSS in the plugin is hand-written and not compiled.