M-Pesa · KCB · Equity  on one API

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.

< 5 min to first payment 3 providers, 1 request AES-256 encrypted secrets
stk-push.sh
# 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
Works with the rails you already use Safaricom Daraja KCB Buni Equity Jenga Co-operative Bank
Quick start

From zero to your first payment in three steps.

No SDK required — every operation is a plain HTTPS request.

1

Register

Create a client account and receive your API key.

POST /api/v1/clients
2

Configure

Store your M-Pesa provider credentials, encrypted.

POST /api/v1/clients/{id}/credentials
3

Charge

Trigger an STK push and get paid in seconds.

POST /api/v1/stk-push
Built for production

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, Jenga and Co-op secrets are sealed with AES-256-GCM.

One request, four rails

The same STK push routes to Safaricom, KCB, Equity or Co-op 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.

REST API

A small, predictable surface.

Explore every route, schema and example in the interactive reference.

Public No auth

POST /api/v1/clients
POST /api/v1/auth/login
GET /api/v1/health
POST /api/v1/webhooks/mpesa
POST /api/v1/c2b-validation
GET /api/v1/pay/{clientId}/info

Protected API key

POST /api/v1/stk-push
POST /api/v1/c2b-register
GET /api/v1/transactions
GET /api/v1/transactions/{id}
POST /api/v1/sms/send
GET /api/v1/dashboard/stats

Ready to accept payments?

Create a client, add your credentials and send your first STK push today.