ChapaChapa Docs

Bank List

Get the list of supported banks and payout destinations for transfers.

The Bank List endpoint returns the list of banks and payout destinations supported by Chapa for transfers (payouts).

Use this endpoint to:

  • Show supported banks and wallets in your UI
  • Validate bank_slug before initiating payouts
  • Check payout limits and supported currencies per bank
  • Confirm whether a bank or wallet is active or disabled

This is especially useful before calling:

  • POST /v2/payouts
  • POST /v2/payouts/bulk

Endpoint

GET /v2/payouts/banks
Host: api.chapa.co

Authentication

Headers

NameRequiredDescription
AuthorizationYesBearer <PRIVATE_API_KEY>
Content-TypeNoapplication/json (recommended)

Query Parameters

ParameterTypeRequiredDescription
countrystringNoISO country code (e.g. ET, KE). If omitted, returns all supported banks.

Example Request

GET https://api.chapa.co/v2/payouts/banks?country=ET
Authorization: Bearer CHAPA_TEST_xxxxxxxxxxxxx
Content-Type: application/json

Example Response

{
  "status": "success",
  "message": "Banks retrieved successfully",
  "data": {
    "items": [
      {
        "bank_name": "Commercial Bank of Ethiopia",
        "bank_slug": "cbe",
        "type": "bank",
        "min_amount": 10,
        "max_amount": 500000,
        "supported_currencies": {
          "ETB": {
            "default_min": 1,
            "default_max": 10000,
            "countries": {
              "ET": {
                "is_enabled": true,
                "min_amount": 10,
                "max_amount": 100000
              }
            }
          }
        },
        "is_active": true,
        "is_rtgs": true,
        "created_at": "2025-10-30T07:52:28.398386Z",
        "updated_at": "2025-10-30T07:52:28.398386Z"
      }
    ],
    "pagination": {
      "next_cursor": null,
      "prev_cursor": null,
      "limit": 50,
      "has_more": false
    }
  }
}

Bank Object Fields

FieldTypeDescription
bank_namestringDisplay name
bank_slugstringIdentifier used in payout requests
typestringbank, mobile_money, etc.
min_amountnumberMinimum payout allowed
max_amountnumberMaximum payout allowed
supported_currenciesobjectCurrency + per-country limits
is_activebooleanWhether payouts are enabled
is_rtgsbooleanWhether RTGS transfers are supported
created_atstringISO8601 timestamp
updated_atstringISO8601 timestamp

Supported Currencies & Limits

Some banks have currency-specific and country-specific rules under supported_currencies.

Example Interpretation

  • Bank supports ETB
  • For country ET, payouts are enabled
  • Per-country limits override currency defaults
supported_currencies.ETB.countries.ET

Always validate currency, country, and min/max amount before initiating a payout.

Pagination

The endpoint returns cursor pagination metadata:

FieldDescription
next_cursorCursor for next page
prev_cursorCursor for previous page
limitNumber of items returned
has_moreWhether more results exist

Best Practices

  • Cache the bank list (refresh periodically)
  • Validate bank_slug before initiating payouts
  • Enforce min_amount / max_amount limits in UI and backend
  • Hide inactive banks (is_active: false)
  • Use supported currency rules to prevent failed payouts

Common Errors

HTTPError CodeDescription
400INVALID_VALUEInvalid country code
500PROCESSING_FAILEDFailed to fetch bank list

Next Steps

On this page