Skip to content

Wajub BuildersBecome one of the 50 founding members. Apply 

Payouts

Pay your partners by mobile money, in one call.

Pay out from your balance to mobile money in 14 countries, from MTN MoMo to M-Pesa, and to Express Union. One call per beneficiary, tracked until it lands, and the recipient gets the full amount.

  • Name check
  • The recipient gets the full amount
DashboardChecksBeneficiariesTransfersInitiate TransferAvailable BalanceFCFA 2,450,000ABAwa BelloSucceededFCFA 30,000Orange MoneyPEPaul EtoSucceededFCFA 18,000MTN MoMoBrice NanaCourierMTN MoMo+237 6•• ••• 412You received FCFA 12,500from Boutique Nkolo.Marie NgoSupplierOrange Money+237 6•• ••• 078You received FCFA 85,000from Boutique Nkolo.Samuel TchamiSellerExpress Union+237 6•• ••• 935You received FCFA 42,300from Boutique Nkolo.

Why Wajub Payouts

Sending money, with confidence.

A payout spends real money. So every transfer passes checks before it leaves, and you keep a record of each one.

Saved beneficiaries
Save a recipient once, then pay them by their ID.
The right recipient, verified
Check that a number matches the expected name before sending money.
Checks before every debit
Limits, fraud checks, account restrictions, sufficient funds: nothing is debited until everything passes.
Fees known in advance
On the Wajub rail, fees are reserved with the amount at creation: the recipient gets the full sum.
No double payment
Every transfer carries its idempotency key: a repeated call with the same key does not pay twice.
Real-time tracking
The transfer.processing, transfer.succeeded and transfer.failed webhooks keep you posted at every step.

Use cases

For everyone you need to pay.

One transfer per beneficiary, triggered from your code the moment the payment is due.

  • Couriers and drivers

    Paid per trip or at end of day.

  • Marketplace sellers

    Their share paid out after each sale.

  • Suppliers

    Settled without a trip to the bank.

  • Refunds and rewards

    Sent straight to mobile money.

  • Funds leave your balance, fed by your collections.
  • One balance per currency, with no overdraft possible.
  • Your first production payouts are reviewed before they run, to protect your account.

For developers

A transfer fits in one call.

Beneficiary, amount, currency, idempotency key: Wajub handles checks, execution and notifications.

Follow the quickstart API reference 

po_test_A full sandbox
In sandbox, every payment credits your test balance: collect then pay out, just like production.
+237670000000Test numbers
The test beneficiary's number decides the outcome, so you can validate every scenario.
wajub transfers createCLI and SDKs
The CLI and SDKs cover beneficiaries, transfers and balance.
import { Wajub } from '@wajub/node'

const wajub = new Wajub({ secretKey: process.env.WAJUB_SECRET_KEY! })

const transfer = await wajub.transfers.create({
  beneficiary: 'ben_7Kq2mX9vL4tRb3nP8sZc',
  amount: 85000,
  currency: 'XAF',
  description: 'Supplier payment #892',
}, { idempotencyKey: 'payout-892' })

console.log(transfer.status)

Response201 Created

{  "code": 201,  "transfer": {    "id": "po_4fT9kLm2Qx7R",    "amount": 85000,    "status": "processing"  }}

Signed webhookX-Wajub-Signature

{  "id": "evt_9QmT2xKp7LcN",  "event": "transfer.succeeded",  "data": {    "id": "po_4fT9kLm2Qx7R",    "status": "succeeded"  }}

Frequently asked questions

Another question? Talk to the team

Which payment methods can I pay out to?
On the Wajub rail, to mobile money in the 14 countries it covers, except Wave, and to Express Union in Cameroon, on request as for collections. Payouts through other providers are enabled rail by rail: the team confirms which ones are available for your account.
Can I pay several beneficiaries at once?
Yes, by chaining one call per beneficiary, each with its own idempotency key. You keep precise tracking, transfer by transfer.
Why is my first payout under review?
To protect your account: a first payout, like some other transfers, is checked before it runs, with funds reserved meanwhile.
Can I cancel a transfer?
No: once created, a transfer runs to completion. That is why the beneficiary check and the controls happen before the call.
Is the balance shown in real time?
GET /balance returns a balance refreshed every few minutes. Check it before a series of transfers, then rely on each transfer's response.

Make your first payout in sandbox.

Collect a test payment, then pay it out: the full journey in minutes.