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
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 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.

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.