Bank List
Get bank details for all supported banks that Chapa works with
This section describes how to get bank details for all supported banks we are working with. This API returns all the Banks information for all currencies.
Endpoint: https://api.chapa.co/v1/banks
Method: GET
Authorization: Pass your secret key as a bearer token in the request header to authorize this call.
cURL
JavaScript
PHP
Python
Successful Response
The API returns an array of bank objects with detailed information:
{
"message": "Banks retrieved",
"data": [
{
"id": 130,
"slug": "abay_bank",
"swift": "ABAYETAA",
"name": "Abay Bank",
"acct_length": 16,
"country_id": 1,
"is_mobilemoney": null,
"is_active": 1,
"is_rtgs": 1,
"active": 1,
"is_24hrs": null,
"created_at": "2023-01-24T04:28:30.000000Z",
"updated_at": "2024-08-03T08:10:24.000000Z",
"currency": "ETB"
},
{
"id": 128,
"slug": "cbebirr",
"swift": "CBETETAA",
"name": "CBEBirr",
"acct_length": 10,
"country_id": 1,
"is_mobilemoney": 1,
"is_active": 1,
"is_rtgs": null,
"active": 1,
"is_24hrs": 1,
"created_at": "2024-01-24T14:41:12.000000Z",
"updated_at": "2024-08-12T20:16:07.000000Z",
"currency": "ETB"
}
]
}Response Parameters
| Parameter | Type | Description |
|---|---|---|
message | string | Response message |
data | array | Array of bank objects |
id | number | Unique bank identifier (use this as bank_code in transfer requests) |
slug | string | Bank slug identifier |
swift | string | SWIFT code for the bank |
name | string | Bank name |
acct_length | number | Expected account number length for this bank |
country_id | number | Country identifier |
is_mobilemoney | number|null | Whether this is a mobile money provider (1) or bank (null) |
is_active | number | Whether the bank is active (1) or inactive (0) |
is_rtgs | number|null | Whether Real-Time Gross Settlement is supported (1) or not (0/null) |
active | number | Active status (1 = active, 0 = inactive) |
is_24hrs | number|null | Whether 24-hour transfers are supported (1) or not (0/null) |
created_at | string | Timestamp when bank was added |
updated_at | string | Timestamp when bank information was last updated |
currency | string | Currency code (ETB, USD) |
Failed Response
{
"message": "Invalid API Key",
"status": "failed",
"data": null
}Refer to our Error Codes page for all responses for this request.
Use Cases
This endpoint is useful for:
- Transfer Integration: Get bank codes to use when initiating transfers
- Account Validation: Use
acct_lengthto validate account numbers before transfers - UI Development: Populate bank selection dropdowns in your application
- Feature Detection: Check
is_24hrsandis_rtgsto show available features - Mobile Money: Identify mobile money providers using
is_mobilemoneyfield
Example Usage
When initiating a transfer, use the id field from the bank list as the bank_code:
// First, get the list of banks
const banksResponse = await fetch('https://api.chapa.co/v1/banks', {
headers: {
'Authorization': 'Bearer YOUR_SECRET_KEY'
}
});
const banksData = await banksResponse.json();
const telebirrBank = banksData.data.find(bank => bank.slug === 'telebirr');
// Use the bank id as bank_code in transfer request
const transferData = {
account_name: "John Doe",
account_number: "0912345678",
amount: "100",
currency: "ETB",
bank_code: telebirrBank.id, // Use the id from bank list
reference: "unique-ref-123"
};Next Steps
- Transfer - Initiate a transfer using bank codes
- Bulk Transfer - Send money to multiple recipients
- Verify Transfer - Verify transfer status
- Error Codes - Handle errors gracefully