1. Enable sharing
In the Keshio Android app (Pro), turn on Business Ledger sharing and choose scopes
(credits, debits, balances) and wallets.
Raw SMS never leaves the phone. M-Pesa is included with Pro;
other wallets need the KES 1,000/mo add-on on Overview.
2. Create an API key
From API keys only (not the Android app), create a live key.
Prefixes: keshio_live_ / keshio_test_. Store the plaintext once.
3. Pull events
curl -sS "https://api.keshio.app/v1/events?limit=50" \ -H "Authorization: Bearer keshio_live_YOUR_KEY"
Paginate with ?cursor=<last_id>. Single event:
GET /v1/events/{id}.
4. Webhooks (optional)
Register an HTTPS URL. Deliveries include:
X-Keshio-Timestamp— unix secondsX-Keshio-Signature—t=<ts>,v1=<hmac_sha256_hex>X-Keshio-Event-Id,X-Keshio-Delivery-Id
Signature base string: {timestamp}.{raw_body}. Reject if
|now - t| > 300 seconds.
Auth model
- Console humans: Google / Firebase → cookie session
- App push: Firebase Bearer on
/v1/business/* - Machines: API key Bearer on
/v1/events
Base URL
https://api.keshio.app