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
/v1/ke/payouts/fee-quotepayout:createQuery: 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
/v1/ke/payoutspayout:createIdempotency-Key is required (16–255 chars).
Request fields
| Field | Required | Notes |
|---|---|---|
amount | yes | Decimal string, 20–250,000 KES |
accountNumber | yes | Beneficiary MSISDN: 2547XXXXXXXX, 07XXXXXXXX, or 7XXXXXXXX |
accountName | yes | Beneficiary name |
merchantReference | no | Your withdraw / reference id |
description | no | Narrative for the transfer |
Request
{
"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
/v1/ke/payouts/:transactionIdpayout:createNo 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.