M-Pesa PaymentsThat Just Work.
Stop wrestling with Daraja API. Use your own credentials - we handle OAuth, callbacks, retries, and webhook delivery.
Everything Daraja should have been
Production-hardened features that handle the edge cases Safaricom's documentation won't tell you about.
STK Push in one line
Trigger a payment prompt to any M-Pesa number instantly. Callbacks handled, tokens cached, retries automatic.
B2C Payouts & Bulk
Send salaries, commissions, or refunds to hundreds of numbers at once. Upload CSV - we do the rest.
C2B Payments
Accept payments via your Till or Paybill number. Register callback URLs and receive real-time payment notifications.
QR Code Payments
Generate Counter QRs for physical tills or per-Invoice QRs with optional expiry - all from the dashboard.
Account Balance Query
Check your M-Pesa Working and Utility account balances on demand - results delivered via callback, tracked in your dashboard.
Reliable Webhooks
HMAC-signed delivery with exponential backoff retry. You won't miss a payment event - ever.
AES-256 Credentials
Your Daraja credentials are encrypted at rest. You own the relationship with Safaricom - we just wrap it.
Live Dashboard
Real-time transaction status with adaptive polling, toast notifications, and zero manual refreshes.
TypeScript SDK
Full type safety, autocomplete everywhere, and a clean API surface. Built for modern toolchains.
Multi-Config Support
Manage sandbox and production configs side by side. Switch with a single param: config: "production".
Test Mode Built-in
Toggle test mode per config - instant mock responses, simulated callbacks after 3 s. No Safaricom calls.
From zero to live in three steps
No PSP license. No intermediaries. Your credentials, our infrastructure.
Connect your Daraja credentials
Add your Safaricom Daraja consumer key, secret, and passkey. We encrypt them with AES-256-GCM and cache OAuth tokens automatically.
- Sandbox & production configs
- Test mode - zero real API calls
- B2C initiator credentials
Integrate in minutes
Install the SDK or use the REST API directly. Both are fully typed with TypeScript. Pick the pattern that fits your stack.
- npm install mpesa-gateway-sdk
- REST API for any language
- Idempotency keys included
Receive payments & monitor
Webhooks fire on every status change. The live dashboard shows real-time transaction state. No polling, no guessing.
- HMAC-signed webhook delivery
- Exponential backoff retries
- Live dashboard + toasts
Clean API. Great defaults.
Simple, honest pricing
No per-transaction cuts. No hidden fees. Cancel anytime.