Developers

Build payments, the Kirshi way.

A clean REST API, idempotent writes, signed webhooks, and SDKs for the languages you actually use. Ship in days, not quarters.

POST /v1/transfers
curl https://api.kirshi.app/v1/transfers \
  -H "Authorization: Bearer $KIRSHI_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "from_wallet": "wal_8821",
    "to_phone":   "+251911223344",
    "amount":     45000,
    "currency":   "ETB",
    "memo":       "Coffee shipment"
  }'
Why Kirshi

APIs that get out of your way.

REST + JSON

Predictable, REST‑style endpoints with consistent JSON envelopes — no surprises.

Webhooks

Subscribe to transaction, card, and account events with signed delivery and retries.

Idempotency

Every write accepts an Idempotency‑Key so you can safely retry without double‑charging users.

Sandbox first

A full sandbox with test cards, test billers, and test corridors — no production credentials required.

API Reference

A few of the endpoints you'll use.

POST/v1/auth/token
GET/v1/wallets
POST/v1/transfers
GET/v1/transfers/:id
POST/v1/virtual-cards
GET/v1/virtual-cards
POST/v1/bill-pay
GET/v1/bill-pay/billers
POST/v1/topup
GET/v1/transactions
SDKs

Drop in, in your language.

JavaScript / Node.js
Stable
npm install @kirshi/sdk
Python
Stable
pip install kirshi
PHP
Stable
composer require kirshi/sdk
Go
Stable
go get github.com/kirshi/kirshi-go
Rust
Stable
cargo add kirshi
Ruby
Stable
gem install kirshi

Ship your first transfer this week.

Sandbox keys are free. No card required, no sales call.