Skip to content

Documentation

Accept Mobile Money, cards and transfers across Africa with one API. Wajub picks the provider for every transaction, and moves to another when one fails for a technical, retryable reason.

npm install -g @wajub/cli
wajub login
wajub listen --forward-to localhost:3000/webhooks/wajub

Quickstart

Account, API keys, one call and one webhook. Your first payment end to end.

Choose an integration

Hosted page, embedded components, payment links or the API directly.

Sandbox and live

Two isolated environments, selected by the prefix of the key you send.

API keys

Public, secret and restricted keys, and which one belongs where.

Move money

Payments

Collect with Mobile Money, cards and transfers through a single call.

Payment lifecycle

The nine states a payment moves through, and what to do in each one.

Refunds

Full and partial refunds, what they cost and what can still fail.

Payouts and transfers

Send money out to beneficiaries, in bulk or one at a time.

Payment links

Take a payment without writing any code at all.

Customers

Reuse a payer across payments, with their methods and their history.

Pick your client

PHP

Composer package, at home in a Laravel or Symfony application.

Node.js

Typed client, ESM and CommonJS, for Express, Nest or Next.

WordPress

Plugin with WooCommerce support, no code required.

Python

Framework agnostic client for Django, Flask and FastAPI.

Go

Single module with no third party dependencies.

Ruby

Gem that fits a Rails initializer in three lines.

C#

NuGet package targeting .NET 8 and above.

Every library

Mobile, Java, Kotlin and the conventions they all share.

How Wajub works

How a payment reaches the customer

One call returns a hosted page that is already routed. The customer picks their operator, confirms on their handset, and comes back to your callback URL.

How routing picks a provider

Priority tiers set the order, a score settles ties inside a tier. A provider that times out hands the payment to the next one without the customer ever seeing it.

How you learn the outcome

The redirect proves nothing. A webhook retried for up to 72 hours, delivered at least once and in no guaranteed order, is what your ledger should trust.

Platform

Webhooks

Signature verification, retries, duplicates and ordering.

Orchestration

Priority tiers, routing rules and least cost selection.

Waterfall and fallback

What happens when a provider times out, and when it does not cascade.

Konsole

Every request, routing decision and webhook delivery, logged.

Shield

Rule based risk scoring on the transactions you accept.

Testing

Force any outcome in the sandbox, including the failures.

Reference

API reference

Every endpoint, parameter, response and error code.

Error handling

What each code means, and which ones are worth retrying.

Idempotency

Replay a call safely, without charging a customer twice.

Versioning

Dated versions and the X-Wajub-Version header.

Going live

What to verify before you switch to live keys.

Changelog

What changed in the API, and when.