Eversend
// rail · m-pesa · kenya

The M-Pesa payout API

The short answer

Eversend's API pays out to any M-Pesa wallet in Kenya. One POST to /v1/payouts, funded from your balance or USDC. Median delivery over the last 90 days of production transfers is 1.6 minutes, and 94% land within 5 minutes. Sandbox keys in minutes, no sales call required.

99.8% uptime · public status page · sandbox keys in minutes
payout · m-pesa200 OK
POST /v1/payouts
"rail": "mpesa",
"amount": 25000, "currency": "KES",
"recipient": { "phone": "+2547..." }
→ delivered in 1m 34s
{ "id": "pyt_2ma8", "status": "delivered" }
1.6 min
Median delivery · 94% within 5 min
median · last 90 days · production transfers
99.8%
API uptime
trailing 12 months · status.eversend.co
KES
Any M-Pesa wallet in Kenya
coverage · from delivery data
~2 min
To sandbox keys
self-serve · no sales call
// what this rail is

Kenya's default way to get paid.

M-Pesa is Safaricom's mobile money network. Most adults in Kenya hold a wallet, and for many recipients it is the only account they use. If you pay people in Kenya, this is the rail that reaches them.

Eversend runs this rail in production. The numbers on this page are measured from live transfers, not quoted from a partner's brochure.

Destination🇰🇪 Kenya · KES
Recipient identifierphone number (MSISDN)
Fundingwallet balance · USDC · FX from 15 currencies
Name checkwallet name returned before you commit
Status eventswebhooks · created → processing → delivered
// the integration

One endpoint. The rail is a string.

Every rail on the network shares the same payout call. Integrate once, then adding MTN MoMo or Nigerian bank transfer is a parameter change, not a new project.

request
$ curl https://api.eversend.co/v1/payouts \
-H "Authorization: Bearer sk_live_..." \
-d rail=mpesa \
-d amount=25000 -d currency=KES \
-d recipient.phone=+254712345678
response200 OK
{ "id": "pyt_2ma8k1", "rail": "mpesa",
"status": "processing",
"recipient_name": "J. WANJIKU",
"expected_delivery": "~1.6 min" }
// fees

The fee is on the quote, not in the fine print.

Every payout returns its exact fee at quote time. The rows here render from the same fee source of truth the API bills from. If it changes there, it changes here.

M-Pesa payout · KESKSh 70flat, per payout
Funding · USDCnetwork fee onlyUSDC converts to KES at the quoted rate
rendered from the fee source of truth · never retyped · the rate holds until the quote expires
01
Get sandbox keys
Self-serve, in minutes. Real API, test money.
02
Send a test payout
Hit the sandbox M-Pesa wallet, watch the webhooks.
03
Go live
Compliance review, then production keys.
Get API keys