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/tokenGET
/v1/walletsPOST
/v1/transfersGET
/v1/transfers/:idPOST
/v1/virtual-cardsGET
/v1/virtual-cardsPOST
/v1/bill-payGET
/v1/bill-pay/billersPOST
/v1/topupGET
/v1/transactionsSDKs
Drop in, in your language.
JavaScript / Node.js
Stablenpm install @kirshi/sdkPython
Stablepip install kirshiPHP
Stablecomposer require kirshi/sdkGo
Stablego get github.com/kirshi/kirshi-goRust
Stablecargo add kirshiRuby
Stablegem install kirshiShip your first transfer this week.
Sandbox keys are free. No card required, no sales call.