Bank Listing API

GET /api/banks: list all supported Ethiopian banks and wallets.

Read full API docs

Endpoint specification

GET /api/banks: Returns a list of all supported banks and wallets. No parameters, no authentication. The response is a JSON object with a banks array; each entry carries its id, status, endpoint URL and verification requirements. Only banks with status live can be verified; the others answer 404 from /api/verify.

Bank object fields

Each entry in banks contains:

  • id: short identifier to send as bank (cbe, telebirr, boa, mpesa, etc.)
  • name: full bank name
  • type: 'bank', 'wallet', or 'mobile'
  • status: 'live' or 'in-development'
  • requiresAccount: whether an account number is needed for verification
  • accountDigits: how many trailing digits of the account are required (omitted when not needed)
  • requiresPhone: true when a payer phone number is needed (omitted otherwise)
  • swift: the bank's SWIFT code, when it has one
  • endpoint: the bank's receipt URL pattern
  • color and initials: for UI display

Building a bank picker

Show the live banks in your bank picker and use each bank's requiresAccount, accountDigits and requiresPhone to decide which extra field to ask for. When you have a receipt link instead of a reference, you can skip the picker: send the link as the reference and cheki detects the bank from it.

Frequently asked questions

What does GET /api/banks return?

A JSON object { banks: [...] } listing every bank and wallet, live or in development. Each bank has id (the value to send as bank), name, type (bank, wallet or mobile), status (live or in-development), requiresAccount, endpoint, color and initials, plus swift, accountDigits and requiresPhone when they apply.

How many banks are supported?

cheki currently supports 8 live banks and wallets: CBE, Telebirr, Bank of Abyssinia, M-Pesa, Dashen Bank, Awash Bank, 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?

Not from this endpoint: it does not return reference formats. If you have the receipt link (from a QR code or a shared receipt), send it as the reference without a bank and cheki detects the bank from the link.

Read full API docs

Open cheki

Related guides