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_slugbefore 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/payoutsPOST /v2/payouts/bulk
Endpoint
GET /v2/payouts/banks
Host: api.chapa.coAuthentication
Headers
| Name | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PRIVATE_API_KEY> |
Content-Type | No | application/json (recommended) |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
country | string | No | ISO 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/jsonExample 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
| Field | Type | Description |
|---|---|---|
bank_name | string | Display name |
bank_slug | string | Identifier used in payout requests |
type | string | bank, mobile_money, etc. |
min_amount | number | Minimum payout allowed |
max_amount | number | Maximum payout allowed |
supported_currencies | object | Currency + per-country limits |
is_active | boolean | Whether payouts are enabled |
is_rtgs | boolean | Whether RTGS transfers are supported |
created_at | string | ISO8601 timestamp |
updated_at | string | ISO8601 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.ETAlways validate currency, country, and min/max amount before initiating a payout.
Pagination
The endpoint returns cursor pagination metadata:
| Field | Description |
|---|---|
next_cursor | Cursor for next page |
prev_cursor | Cursor for previous page |
limit | Number of items returned |
has_more | Whether more results exist |
Best Practices
- Cache the bank list (refresh periodically)
- Validate
bank_slugbefore initiating payouts - Enforce
min_amount/max_amountlimits in UI and backend - Hide inactive banks (
is_active: false) - Use supported currency rules to prevent failed payouts
Common Errors
| HTTP | Error Code | Description |
|---|---|---|
| 400 | INVALID_VALUE | Invalid country code |
| 500 | PROCESSING_FAILED | Failed to fetch bank list |
Next Steps
- Payout - Initiate a payout
- Bulk Payout - Send multiple payouts
- Verify Payout - Check payout status