Sati‑Pay gives your website one simple API for MPESA deposits and withdrawals — STK push, instant payouts, signed callbacks and reconciliation that just works.
Most payment providers make you stitch together separate tools for collecting and paying out. Sati‑Pay treats both as one flow.
Trigger an STK push, your customer enters their PIN, and funds land in your website in seconds — no redirects, no app switching.
customer → businessSend payouts straight to any MPESA number — withdraws, winnings or disbursements cleared without manual approval queues.
business → customerThis is what happens between a customer clicking "Pay with MPESA" and your ledger updating.
On your site, your app, or your invoice page.
A prompt appears on their phone within seconds.
We confirm the transaction with Safaricom directly.
Funds settle to your website, order marked paid.
No SDK lock-in, no XML, no callback gymnastics. Sandbox keys are ready in minutes, and every deposit or withdrawal follows the same request shape.
curl -X POST https://api.sati-pay.com/v1/deposits \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 2450.00,
"phone": "2547XXXXXXXX",
"reference": "ORDER-1042",
"callback_url": "https://yoursite.com/mpesa/callback"
}'
No setup fees, no monthly minimums, no charge for staying in sandbox. You only pay when money actually moves.
Create an account, grab your sandbox keys, and send your first STK push in under ten minutes.