Endpoint specification
GET /api/banks: Returns a list of all supported banks and wallets. No parameters, no authentication. The response is a JSON array of bank objects with full metadata including endpoint URLs, response types, and verification requirements.
Bank object fields
Each bank in the response array contains:
- code: short identifier (cbe, telebirr, boa, mpesa, etc.)
- name: full bank name
- shortName: abbreviated name for UI display
- type: 'bank', 'wallet', or 'mobile'
- requiresAccount: whether account number is needed for verification
- accountDigits: how many digits of the account are required
- endpoint: the bank's receipt endpoint domain
- responseType: 'pdf', 'json', or 'html'
- status: 'live' or 'soon'
Auto-detection use case
The bank listing includes reference number prefixes for each bank. For example, CBE references start with 'FT', Telebirr references have a different format. Developers can use this metadata to auto-detect which bank a reference number belongs to, then route the verification request accordingly without asking the user to select a bank.
Frequently asked questions
What does GET /api/banks return?
A JSON array of all supported banks and wallets. Each bank object includes: code, name, shortName, type (bank/wallet/mobile), requiresAccount, accountDigits, endpoint, responseType, and status (live/soon).
How many banks are supported?
cheki currently supports 10 live banks and wallets: CBE, Telebirr, Bank of Abyssinia, M-Pesa, Dashen Bank, Awash Bank, Zemen Bank, CBE Birr, Siinqee Bank, and eBirr. New banks are added as their public endpoints are discovered.
Can I use this to auto-detect which bank a reference belongs to?
Yes. The response includes refPrefixes for each bank (e.g. CBE references start with 'FT'). You can use this to automatically route verification requests to the correct bank.
Read full API docs
Open cheki