ChapaChapa Docs

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

ParameterTypeDescription
messagestringResponse message
dataarrayArray of bank objects
idnumberUnique bank identifier (use this as bank_code in transfer requests)
slugstringBank slug identifier
swiftstringSWIFT code for the bank
namestringBank name
acct_lengthnumberExpected account number length for this bank
country_idnumberCountry identifier
is_mobilemoneynumber|nullWhether this is a mobile money provider (1) or bank (null)
is_activenumberWhether the bank is active (1) or inactive (0)
is_rtgsnumber|nullWhether Real-Time Gross Settlement is supported (1) or not (0/null)
activenumberActive status (1 = active, 0 = inactive)
is_24hrsnumber|nullWhether 24-hour transfers are supported (1) or not (0/null)
created_atstringTimestamp when bank was added
updated_atstringTimestamp when bank information was last updated
currencystringCurrency 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_length to validate account numbers before transfers
  • UI Development: Populate bank selection dropdowns in your application
  • Feature Detection: Check is_24hrs and is_rtgs to show available features
  • Mobile Money: Identify mobile money providers using is_mobilemoney field

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

On this page