Skip to main content
Kwugwo is a payment orchestration layer. You connect the Payment Service Providers (PSPs) you already have accounts with in the dashboard, and integrate one API. Kwugwo routes each charge to the right PSP using rules you control, talks to it, and tells you the outcome with a signed webhook.
  • One integration, many PSPs. Add, swap or re-route PSPs from the dashboard without changing code.
  • Local payment mediums. Bank transfer, USSD and pay with bank, each with the same “what the customer must do next” contract. Mobile money is coming soon.
  • You keep your PSP relationship. Money settles into your own PSP account; Kwugwo never holds funds.
Kwugwo currently supports Nigeria (NGN). Ghana is coming soon. See countries and currencies.

A note on naming

Kwugwo borrows a few African words for its core resources. They’re short and easy to search for in your code and logs: Each attempt to collect an ugwo is an activity (act.). Concepts explains how these fit together.

How a payment works

1

Your server creates a payment (an ugwo)

POST /v1/ugwo with an amount, currency and your order reference.
2

The customer pays

Either open the Kwugwo checkout in the browser with the ugwo’s uid, or charge it from your own UI with POST /v1/ugwo/{uid}/activities and show the customer the returned next_action.
3

Kwugwo tells you the result

A signed ugwo.successful webhook arrives at your endpoint.
4

You validate and fulfil

Re-fetch the ugwo from your server, check status, amount and ref match your order, then ship.
How Kwugwo works walks through this with a diagram.

Choose your integration

Embedded checkout (recommended)

A hosted overlay that handles every medium, bank picker and customer instruction. About 10 lines of frontend code.

Direct API

Build your own payment UI. You choose the medium, render the next_action, and collect any customer input.
Both paths share the same backend steps: create the ugwo, receive webhooks, validate and fulfil.

Environments

Kwugwo runs two fully isolated environments. Build against sandbox, then switch the base URL and key to go live. Keys, workspaces, customers, payments and webhooks are separate per environment; a sandbox ID is never found by the live API and vice versa. See Testing in sandbox.
Examples on this site use the live base URL. To run one against sandbox, swap api.kwugwo.africa for sandbox-api.kwugwo.africa and use your sandbox key.

Next steps

Quickstart

Take a sandbox payment end to end with cURL.

Authentication

Secret and public keys, and where each one goes.

Webhooks

Receive and verify payment events.