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/wajubQuickstart
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.