The payment API for East Africa.
Register once, store your provider credentials, and start accepting M-Pesa payments in minutes. One clean REST interface routes STK push, C2B and settlement across Safaricom, KCB and Equity.
# Charge a customer with a single call curl -X POST https://payments.navipos.co.ke/api/v1/stk-push \ -H "X-API-Key: pk_live_•••••" \ -H "Content-Type: application/json" \ -d '{ "phoneNumber": "254712345678", "amount": 1000, "reference": "ORDER-1042", "description": "Order #1042" }' # → STK prompt sent to the customer's phone
From zero to your first payment in three steps.
No SDK required — every operation is a plain HTTPS request.
Register
Create a client account and receive your API key.
POST /api/v1/clients
Configure
Store your M-Pesa provider credentials, encrypted.
POST /api/v1/clients/{id}/credentials
Charge
Trigger an STK push and get paid in seconds.
POST /api/v1/stk-push
Everything you need to move money safely.
Security, multi-tenancy and reconciliation are handled for you — so you can focus on your product.
Multi-tenant
Isolated client accounts, each with its own encrypted provider credentials.
Encrypted at rest
Daraja, KCB and Jenga secrets are sealed with AES-256-GCM.
One request, three rails
The same STK push routes to Safaricom, KCB or Equity automatically.
Real-time webhooks
Signed callbacks the moment a payment resolves — no polling.
Full lifecycle
Track every transaction from prompt to settlement with a clean status model.
Reconciliation
Built-in reports and mismatch resolution keep your books accurate.
Pick your language and ship.
Copy-paste ready guides covering registration, credentials, STK push and callbacks.
A small, predictable surface.
Explore every route, schema and example in the interactive reference.
Public No auth
Protected API key
Ready to accept payments?
Create a client, add your credentials and send your first STK push today.