Skip to Content
KenyaKenya API Reference (Merchant Server)

Kenya API Reference (Merchant Server)

All endpoints use HMAC authentication on https://api.transacty.ai. Live API keys only — a test key returns 503 payment_unavailable. The kenya market must be approved (and KYC verified) or /v1/ke/* returns 403 market_not_enabled.

Settlement currency is KES. Native ledger — no FX swap to USDC/USDT.

Collect

MethodPathScopePurpose
POST/v1/ke/collectspayin:createCreate M-Pesa collect. Idempotency-Key required
GET/v1/ke/collects/:transactionIdpayin:createGet collect status

Payout

MethodPathScopePurpose
GET/v1/ke/payouts/fee-quotepayout:createPreview rail fees (?amount=)
POST/v1/ke/payoutspayout:createCreate M-Pesa payout (MSISDN + name inline). Idempotency-Key required
GET/v1/ke/payouts/:transactionIdpayout:createGet payout status

Shared read endpoints

MethodPathNotes
GET/v1/transactionsFilter type=payin|payout only; then filter rail === "kenya" in your app
GET/v1/transactions/:transactionIdStatus poll; same rail fields
GET/v1/balanceRead items[] — Kenya is KES
PATCH/v1/me/webhookRegister the URL for Transacty → merchant events

Settlement

  • Collect credits the KES wallet when the collection is credited.
  • Payouts debit KES (amount + platform payout fees) on create and send to an M-Pesa MSISDN.
  • KES is a separate wallet pocket.
  • Limits: collect 20–145,000 KES; payout 20–250,000 KES.

Webhook events

When configured, Transacty sends payin.completed / payin.failed and payout.completed / payout.failed. Payload currency for KES money movements is KES. The same webhook URL serves all rails. See Webhooks.

Last updated on