Skip to Content
KenyaPayout (Kenya M-Pesa)

Payout (Kenya M-Pesa)

Debit your merchant KES wallet and send KES to an M-Pesa MSISDN. Amount 20–250,000. Live API keys only. Scope: payout:create.

Other pockets (USDC, PYUSD-USDC, USDT, BDT, BRL, NGN, CAD) cannot fund this. Native KES ledger — no swap, no cross-border USDT.

Creating a payout debits KES immediately (amount + platform payout fees). On payout.failed, the wallet is refunded when applicable. Send MSISDN + name inline — there is no separate beneficiary create step.

Fee quote (optional)

GET /v1/ke/payouts/fee-quote?amount=

Create payout

POST /v1/ke/payouts with Idempotency-Key

Poll status

GET /v1/ke/payouts/:transactionId until a final state, or wait for webhook

Fee quote

GET/v1/ke/payouts/fee-quotepayout:create

Query: amount (example: 500). No body. Sign with {timestamp}..

Returns a rail fee preview (including totalDebited and related fee fields). Platform payout fees for the kenya schedule are applied on create.

curl -X GET https://api.transacty.ai/v1/ke/payouts/fee-quote?amount=500 \
  -H "X-Transacty-Key: $TRANSACTY_KEY" \
  -H "X-Transacty-Timestamp: $TS" \
  -H "X-Transacty-Signature: $SIG" \
  -H "Content-Type: application/json"

Create payout

POST/v1/ke/payoutspayout:create

Idempotency-Key is required (16–255 chars).

Request fields

FieldRequiredNotes
amountyesDecimal string, 20–250,000 KES
accountNumberyesBeneficiary MSISDN: 2547XXXXXXXX, 07XXXXXXXX, or 7XXXXXXXX
accountNameyesBeneficiary name
merchantReferencenoYour withdraw / reference id
descriptionnoNarrative for the transfer
{ "amount": "500", "accountNumber": "254712345678", "accountName": "Jane Doe", "merchantReference": "supplier-9", "description": "Supplier payment" }

status is pending (not PENDING). Debit is the KES pocket only.

400 insufficient balance means the KES pocket, not another currency.

Poll payout

GET/v1/ke/payouts/:transactionIdpayout:create

No body. Sign with {timestamp}..

curl -X GET https://api.transacty.ai/v1/ke/payouts/{transactionId} \
  -H "X-Transacty-Key: $TRANSACTY_KEY" \
  -H "X-Transacty-Timestamp: $TS" \
  -H "X-Transacty-Signature: $SIG" \
  -H "Content-Type: application/json"

Poll until terminal (success / failed), or rely on payout.completed / payout.failed. On failure, the send amount is refunded to KES when applicable.

Next steps

Last updated on