Mobile Money Payouts

Send money to a mobile wallet

POST
/api/sandbox/v1/send-money

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:

CurrencyAdditionally 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
AuthorizationBearer <token>

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"  }}