Send money to a mobile wallet
Transfer funds from your Kiotapay wallet to a recipient's mobile money wallet.
The response is returned immediately with a PENDING status and a requestId. The final outcome is delivered asynchronously to your callbackUrl — use the requestId to reconcile it against your own records.
Conditionally required fields
Which fields you must send depends on currencyCode:
| Currency | Additionally required |
|---|---|
KSH (Kenya) | remarks, occasion |
TZS (Tanzania) | narration, firstName, lastName, serviceCode |
UGX (Uganda) | narration, customerName |
For TZS, the minimum payout is 1,000 TZS.
Authorization
bearerAuth The access_token returned by POST /api/v1/get-token.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
Callbacks
curl -X POST "https://example.com/api/sandbox/v1/send-money" \ -H "Content-Type: application/json" \ -d '{ "phoneNumber": "254745362174", "amount": 1000, "currencyCode": "KSH", "remarks": "Here are the remarks", "occasion": "Here is the occasion", "callbackUrl": "https://kiotapay.co.ke", "referenceId": "123456" }'{ "status": 201, "message": "Success", "data": { "requestId": "fb89a98f-20a9-4a7a-9bb2-bf7ca478f644", "amount": 1000, "phoneNumber": "254745362174", "status": "PENDING" }}