One API for M-Pesa, Airtel & Card payments

Receive M-Pesa STK push payments to your till, paybill or bank, settle to Airtel wallets, and charge cards — through one unified API hosted at pay.cloud.or.ke. Or skip code entirely with hosted payment links.

Create free account Read the docs

Tier 0 · Free

Register with phone + email, verified by email OTP. Explore the sandbox instantly.

Tier 1 · Cards

KYC + legal review unlocks Visa/Mastercard charging.

Tier 2 · M-Pesa

Link unlimited tills, paybills and bank accounts, plus a deposit wallet.

Airtel Money

Check your Airtel balance and settle payouts to any Airtel number.

No-code links

Share a hosted pay.cloud.or.ke/pay/CODE link and get paid — zero integration.

Quick start

# 1) Exchange this account's consumer key + secret for a token
curl -X POST https://pay.cloud.or.ke/api/oauth/token \
  -u "CONSUMER_KEY:CONSUMER_SECRET"

# 2) Charge a customer from that till/paybill (no accountId — the token is the account)
curl -X POST https://pay.cloud.or.ke/api/payments/mpesa/stkpush \
  -H "Authorization: Bearer <access_token>" -H "Content-Type: application/json" \
  -d '{"phone": "254712345678", "amount": 1500, "description": "Order 42"}'

Each M-Pesa account has its own credentials. Test everything first on the sandbox with fake money, then switch base URL and keys. WooCommerce & WordPress plugins are in the docs.