Introduction
Wajub is the payment orchestrator that unifies Mobile Money, cards and transfers across Africa behind a single API.
Wajub is a payment orchestration platform designed for Africa. Instead of integrating each Mobile Money operator, bank or aggregator separately, you integrate a single API — Wajub routes each transaction to the best available provider, handles failures and exposes standardized webhooks.
New to African payments?
Terms like Mobile Money, USSD, MTN MoMo, Orange Money, channel, and settlement may be unfamiliar. Read the Glossary first — it defines every term in plain language before you write a line of code.
Before you start — prerequisites
To follow any example on this site you need:
- A Wajub account — create one for free at dashboard.wajub.com.
- Your API keys — once logged in, open Developers → API Keys. You will see two sets:
pk_test.…/sk_test.…for sandbox (no real money) andpk.…/sk.…for production. - An HTTP client — curl, or a server SDK (Node.js, Python, PHP, Go, Ruby, Java, C#).
See Setup your account for a step-by-step walkthrough of the Dashboard.
What you can build
- Collect payments via Mobile Money (MTN MoMo, Orange Money, Wave, Airtel), card and bank transfer.
- Pay out funds to Mobile Money wallets via the Transfers API or manage Beneficiaries.
- Embed checkout directly in your app with Wajub Components — React, Vue, Svelte or vanilla JS.
- Orchestrate your providers intelligently with routing and fallback (Orchestration).
A note on "Payment" vs "Transaction"
You will see both words throughout this documentation — they refer to the same object. When you call POST /payments, the API response wraps the result under a "transaction" key and the id is prefixed trx_. This is intentional: "payment" is the business concept; "transaction" is what the API serializes. See Key Concepts → "Payment" vs "transaction" for the full explanation.
How the API works
The Wajub API is organized around REST. It uses predictable URLs, accepts JSON-encoded request bodies, returns JSON responses and relies on standard HTTP codes.
https://api.wajub.com/paymentsAll requests go through a single base URL:
https://api.wajub.comFirst call
Use your public key (pk_test.… in sandbox) for client-side calls like payment initialization. Use your private key (sk_test.…) for server-side operations (transfers, refunds, balance). Never expose a private key in a browser or mobile app. The examples below use a placeholder key — replace it with your own from Developers → API Keys in the Dashboard.
Debug in real time with Konsole
Inspect every API request, replay your webhooks and observe orchestration decisions live with Konsole →. It's the fastest way to understand what's happening during an integration.
https://api.wajub.com/paymentscurl https://api.wajub.com/payments \
-H "Authorization: pk_test.8f2b91c4d7e6a0f3" \
-H "Content-Type: application/json" \
-d '{
"amount": 25000,
"currency": "XAF",
"customer": { "email": "amina@example.com" },
"description": "Order #4172"
}'{
"status": "Created",
"message": "Payment initialized",
"code": 201,
"transaction": {
"id": "trx_01JXXXXXXXXXXXXX",
"status": "pending",
"amount": 25000,
"currency": "XAF",
"sandbox": true
},
"authorization_url": "https://pay.wajub.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}Key concepts
PaymentobjectoptionalTransferobjectoptionalCustomerobjectoptionalEventobjectoptionalSession tokenstringoptionalWhat's next?
Just getting started
- Quickstart — process a first payment in 5 minutes.
- SDK Quickstart — install the SDK for your language (Node.js, Python, PHP, Go).
- Key Concepts — payment lifecycle, sandbox vs live, session tokens.
- Environments & API keys — test vs production.
Ready to build
- Guides & Tutorials — step-by-step integrations for every use case.
- Payment methods & channels — full country × operator coverage.
- API Reference — every endpoint with request/response examples.
Going deeper
- Best Practices — idempotency, error handling, security.
- Going Live — production checklist and KYC.
- All SDKs & Libraries — Node.js, Python, PHP, Go, mobile, and browser SDKs.
Was this page helpful?