Authorization
default A public key (pk./pk_test.) is accepted on /payments, /customers, /links, /invoices and the catalogue reads (/channels, /providers, /countries, /currencies); anything that moves money out, reads the balance or manages the account answers 406 to it. It is an identifier, never an authorization. Use a secret key (sk./sk_test.) for sensitive operations (transfers, refunds, balance), or a restricted key (rk./rk_test.) scoped to specific permissions. The _test. variant of any key selects the sandbox environment, there is no separate sandbox URL. Never expose your secret key in client-side code.
In: header
Header Parameters
Your key for this request, 1 to 128 characters of letters, digits and `. _ : -`. The same request sent again with the same key returns the first answer instead of doing the work twice. See [Idempotency](/api/idempotency).
Request Body
application/json
The recipient. Either the `id` of a saved beneficiary, sent as a string, or the recipient's details inline, as the object described below. An inline recipient is saved as a beneficiary by the call. There is no `bank_code` field.
The `id` of a saved beneficiary.
The recipient inline, saved as a beneficiary by the call.
Amount to send in the major currency unit.
ISO 4217 code. Required from API version 2026-10-12. Before it, a payout without `currency` is sent in XAF, whatever your account's currency: always send it.
Descriptive label for the transfer.
Why you pay, up to 255 characters, kept with the transfer.
Your own reference, up to 255 characters. Stored and returned as is, never checked for uniqueness: it does not protect against a repeated request, only the `Idempotency-Key` header does.
Free-form key-value data.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.wajub.com/transfers" \ -H "Idempotency-Key: payout-invoice-4172" \ -H "Content-Type: application/json" \ -d '{ "beneficiary": "ben_Fw8Qa3Zr6Ty1Np5Jd2Lv", "amount": 10000 }'{ "code": 201, "status": "Created", "message": "Transfer initiated", "transfer": { "id": "po_Gv2Ks9Lp4Xr7Mw1Qt8Zn", "reference": "payout-892", "provider_reference": null, "amount": 10000, "currency": "XAF", "description": "Supplier payment #892", "reason": null, "metadata": { "vendor_id": "v_892" }, "ledger_balance_currency": "XAF", "sandbox": false, "status": "processing", "complete": false, "source": "api", "succeeded_at": null, "created_at": "2026-01-15T14:00:00+00:00", "updated_at": "2026-01-15T14:00:00+00:00", "provider": { "slug": "mtn_momo", "name": "MTN MoMo" }, "beneficiary": { "id": "ben_Fw8Qa3Zr6Ty1Np5Jd2Lv", "name": "Jean Dupont", "phone": "+237670000000", "email": null, "deleted": false }, "payment_method": { "id": "pm_Hx3Lq8Vn2Rt6Ky9Wb4Zd", "account_number": null, "phone": "+237670000000" } }}Transfer initiated