Before you start
Make sure you have these things ready:- A WordPress website with WooCommerce. WordPress is the software your website runs on. WooCommerce is the part that turns it into a shop, with products, a cart and a checkout. If you can see a WooCommerce item in the black menu on the left of your website’s dashboard, you have it.
- Your website’s admin login. You need an account that can install
plugins, usually the “Administrator” account. You log in at
https://your-website.com/wp-admin. - A Kwugwo account. If you don’t have one yet, sign up at kwugwo.africa.
- An account with a payment provider (the company that already collects payments for you), connected to Kwugwo. Kwugwo sends each payment to your provider, and the money settles into your own provider account. Kwugwo never holds your money.
Kwugwo has two sides. Sandbox is for practice:
nothing is charged and no real money moves. Live is for real
customers and real money. You’ll set up Sandbox first, try a test
payment, then switch to Live. Each side has its own keys and settings.
Step 1: Install the plugin
A plugin is an add-on that gives your website a new feature. The Kwugwo plugin adds Kwugwo as a payment option at your checkout.- Log in to your website’s dashboard (
https://your-website.com/wp-admin). - In the left menu, go to Plugins → Add Plugin. (On some websites it’s called Add New Plugin.)
- In the search box at the top right, type Kwugwo for WooCommerce.
- When the Kwugwo plugin appears, click Install Now.
- Wait a few seconds, then click Activate.
Step 2: Set your store currency to Naira
Kwugwo only takes payments in Nigerian Naira (₦). If your store shows prices in another currency, Kwugwo won’t appear at checkout.- In the left menu, go to WooCommerce → Settings.
- Stay on the General tab and scroll down to Currency options.
- Set Currency to Nigerian naira (₦).
- Scroll to the bottom and click Save changes.
Kwugwo accepts orders from ₦200 up to ₦50,000,000. Orders
outside that range can’t be paid with Kwugwo.
Step 3: Get your Kwugwo account ready
Open a new browser tab and sign in to your Kwugwo dashboard. Switch the dashboard to Sandbox, then check these two things:- Your payment provider is connected. In Sandbox, connect it using the test details from your provider’s own dashboard, not the live ones.
- You have a checkout for NGN. A checkout is where you choose which payment methods your customers see (bank transfer, USSD, pay with bank) and which provider handles each one. Create one if you don’t have one yet, with currency NGN.
Step 4: Open the Kwugwo settings on your website
Go back to your website’s dashboard and open the Kwugwo settings page. There are two ways to get there:- Plugins, then click Set up under “Kwugwo for WooCommerce”, or
- WooCommerce → Settings → Payments, then click Manage next to Kwugwo.
Step 5: Add your Sandbox API keys
API keys are like a username and password that let your website talk to your Kwugwo account. There are two:
Sandbox keys always end in
_t. Live keys never
do. That’s an easy way to check you’ve copied the right ones.
- On the Kwugwo settings page, find Test or live payments and make sure Mode is set to Sandbox (test payments, no real money).
- In your Kwugwo dashboard (Sandbox side), open the API Keys page.
- Copy the public key and paste it into Public key under Sandbox keys on your website.
- Copy the secret key and paste it into Secret key.
- Click Test connection.
- “Kwugwo did not accept this secret key for Sandbox”: you may have copied the Live key instead of the Sandbox one, or missed part of it. Copy it again from the Sandbox side of your dashboard.
- “these look like Live keys” (or “these look like Sandbox
keys”): the keys are from the other side of your dashboard. Sandbox
keys end in
_t; Live keys don’t. Copy them from the right side, or paste them into the other section. - “come from different Kwugwo workspaces”: the two keys belong to different accounts or workspaces. Copy both keys from the same place.
- “should start with pk.” / “should start with sk.”: the two keys were pasted into the wrong boxes. Swap them.
- “no active checkouts yet”: your keys work, but you still need to create a checkout in your Kwugwo dashboard (see Step 3).
Step 6: Connect the webhook so orders update by themselves
A webhook is how Kwugwo tells your website that a customer has paid. With it, the order is marked as paid automatically, even if the customer closes their browser straight after paying. Without it, some orders may stay on “Pending payment” for a while.6a. Copy your webhook URL
On the Kwugwo settings page, find Webhook URL. It looks like this:6b. Add it in your Kwugwo dashboard
- In your Kwugwo dashboard (Sandbox side), open the Webhooks page.
- Add a new endpoint and paste your webhook URL.
-
When asked which events to send, tick these (see Webhook events for the full list):
-
Set a signing secret when asked. It starts with
wsk.. Copy it.
6c. Paste the signing secret on your website
- Back on the Kwugwo settings page, paste the signing secret into Webhook signing secret under Sandbox keys.
- Click Save changes.
Is your website behind a firewall? Some hosting companies block
unknown visitors. If so, ask your host to allow Kwugwo’s address
176.97.192.227, so webhooks can reach your website.Step 7: Turn on Kwugwo
- At the top of the settings form, tick Turn on Kwugwo (“Show Kwugwo as a payment option at checkout”).
- Optionally, change Name at checkout and Message at checkout. This is what your customers see when they choose how to pay.
- Click Save changes.
Optional: choose a checkout
Under your keys there’s a Checkout (optional) box. Leave it on Automatic (use my routing rules) unless you have a reason to change it. Pick a specific checkout only if you want every payment from this store to use that checkout’s payment methods and providers, for example to keep this store’s money separate from your other businesses.Step 8: Make a test payment
Now buy something from your own store, the way a customer would. You’re still in Sandbox, so nothing is really charged.- Open your shop in a new tab (or a private/incognito window), add a product to the cart and go to Checkout. The product must cost at least ₦200.
- Fill in the billing details and choose Kwugwo as the payment method. You’ll see a note saying “Test mode: no real money will be taken.”
- Click Place order. A secure Kwugwo window opens on the page.
- Choose a payment method (for example Bank Transfer) and follow the instructions in the window.
- In your website’s dashboard, go to WooCommerce → Orders.
- Your test order should show the status Processing. That means it’s paid and ready to fulfil.
- Open the order. On the right you’ll see a Kwugwo payment box with the payment details, and in Order notes you’ll see “Kwugwo payment confirmed”.
Step 9: Go live and take real payments
When your test payment works, switch to Live. You’ll repeat steps 3, 5 and 6, this time on the Live side of your Kwugwo dashboard.- In your Kwugwo dashboard, switch to Live. Connect your payment provider with its live details and create a checkout for NGN.
- On your website, go to the Kwugwo settings and set Mode to Live (real payments). The page now shows the Live keys section.
- Copy your Live public key and secret key from the API Keys page on the Live side of your dashboard, paste them in, and click Test connection.
- On the Webhooks page of the Live side, add the same webhook URL, tick the same events, set a signing secret, and paste it into Webhook signing secret under Live keys.
- Click Save changes and check that the Setup checklist (Live) is all green.
Your Sandbox keys stay saved. If you ever want to test something again,
switch Mode back to Sandbox, but remember that while it’s on
Sandbox, customers can’t pay you for real.
Everyday use
What the order statuses mean
”The customer says they’ve paid, but the order is still Pending”
- Open the order in WooCommerce → Orders.
- In the Kwugwo payment box on the right, click Check payment status now.
Giving a refund
- Open the order and click Refund (below the order items).
- Enter the amount to refund and, if you like, a reason. The smallest refund Kwugwo can send is ₦200.
- Click Refund ₦… via Kwugwo, then confirm.
- Ask the customer for their bank and 10-digit account number.
- In the Kwugwo payment box on the order, choose the Bank and type the Account number under Refund account.
- Click Update (top right of the order page), then try the refund again.
”The customer paid twice”
Sometimes a customer pays into an old transfer account after the order was already paid. You’ll see an order note saying “the customer paid for this order a second time”. Refund that extra payment from your Kwugwo dashboard.Troubleshooting
Kwugwo doesn’t show at checkout. Open the Kwugwo settings and look at the Setup checklist. Kwugwo only appears when it’s turned on, the store currency is Naira, and both keys are saved for the mode you’ve selected (Sandbox or Live). Also check that the order total is at least ₦200. I see “We could not start your payment” at checkout. Open the order in WooCommerce → Orders and read the order notes. They say what went wrong and how to fix it, for example a key that no longer works, or a checkout that was switched off in your Kwugwo dashboard. The webhook item in the checklist never turns into “Webhook connected”.- Check that the webhook URL in your Kwugwo dashboard matches the one on the settings page exactly.
- Check that the signing secret on your website matches the one in your dashboard, and that it’s in the right section (Sandbox or Live).
- If your hosting has a firewall, ask your host to allow
176.97.192.227.
kwugwo). Share them
with Kwugwo support if you need help. The log contains customer emails
and order amounts, so turn it off again when you’re done.
Keeping your account safe
- Only paste your secret key into the plugin settings. Never send it to anyone, and never post it online.
- Always set a webhook signing secret.
- Give the WordPress “Administrator” role only to people who really need it. Anyone who can change the plugin settings can see your keys.