All Transfers
Get all your transfers with Chapa
This section describes how to get all your transfers with Chapa.
Endpoint: https://api.chapa.co/v1/transfers
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 a paginated list of all your transfers:
{
"message": "Transfer details fetched",
"status": "success",
"meta": {
"current_page": 1,
"first_page_url": "https://api.chapa.co/v1/transfers?page=1",
"last_page": 16,
"last_page_url": "https://api.chapa.co/v1/transfers?page=16",
"next_page_url": "https://api.chapa.co/v1/transfers?page=2",
"path": "https://api.chapa.co/v1/transfers?page=1",
"per_page": 10,
"prev_page_url": null,
"to": 10,
"total": 159,
"error": []
},
"data": [
{
"account_name": "suz",
"account_number": "1",
"currency": "ETB",
"amount": 1,
"charge": 0,
"transfer_type": "bank",
"chapa_reference": "7039636706566",
"bank_code": 656,
"bank_name": "Awash Bank",
"bank_reference": null,
"status": "failed/cancelled",
"reference": null,
"created_at": "2022-10-24T14:46:56.000000Z",
"updated_at": "2023-08-07T10:49:59.000000Z"
},
{
"account_name": "Kidus Yared",
"account_number": "1000180831502",
"currency": "ETB",
"amount": 10,
"charge": 0,
"transfer_type": "bank",
"chapa_reference": "703963635595",
"bank_code": 946,
"bank_name": "Commercial Bank of Ethiopia (CBE)",
"bank_reference": null,
"status": "failed/cancelled",
"reference": "703963635595",
"created_at": "2023-05-02T07:58:26.000000Z",
"updated_at": "2023-10-10T09:20:45.000000Z"
},
{
"account_name": "Kidus Yared",
"account_number": "1000180831502",
"currency": "ETB",
"amount": 5,
"charge": 0,
"transfer_type": "bank",
"chapa_reference": "7039636781315",
"bank_code": 946,
"bank_name": "Commercial Bank of Ethiopia (CBE)",
"bank_reference": "FT23240M6PV5",
"status": "success",
"reference": null,
"created_at": "2023-08-27T16:48:55.000000Z",
"updated_at": "2023-08-27T16:56:04.000000Z"
}
]
}Response Parameters
| Parameter | Type | Description |
|---|---|---|
message | string | Response message |
status | string | Status of the request (success/failed) |
meta | object | Pagination metadata |
meta.current_page | number | Current page number |
meta.first_page_url | string | URL to first page |
meta.last_page | number | Total number of pages |
meta.last_page_url | string | URL to last page |
meta.next_page_url | string|null | URL to next page (if available) |
meta.path | string | Base path for pagination |
meta.per_page | number | Number of items per page |
meta.prev_page_url | string|null | URL to previous page (if available) |
meta.to | number | Last item number on current page |
meta.total | number | Total number of transfers |
data | array | Array of transfer objects |
account_name | string | Recipient account name |
account_number | string | Recipient account number |
currency | string | Currency code (ETB, USD) |
amount | number | Transfer amount |
charge | number | Transfer fee |
transfer_type | string | Type of transfer (bank, wallet) |
chapa_reference | string | Chapa's internal reference ID |
bank_code | number | Bank code |
bank_name | string | Bank name |
bank_reference | string|null | Bank transaction reference (if available) |
status | string | Transfer status (success, failed/cancelled, pending) |
reference | string|null | Your transaction reference (if provided) |
created_at | string | Timestamp when transfer was created |
updated_at | string | Timestamp when transfer was last updated |
Failed Response
{
"message": "Invalid API Key or User doesn't exist",
"status": "failed",
"data": null
}Refer to our Error Codes page for all responses for this request.
Query Parameters
You can use the following query parameters to filter and paginate results:
batch_id: Filter transfers by batch ID (useful for bulk transfers)page: Page number for pagination (default: 1)per_page: Number of items per page (default: 10)
Example: Filter by Batch ID
import requests
url = "https://api.chapa.co/v1/transfers?batch_id=1"
headers = {
'Authorization': 'Bearer CHASECK-xxxxxxxxxxxxxxxx'
}
response = requests.get(url, headers=headers)
print(response.text)Pagination
The response includes pagination information to help you navigate through multiple pages of transfers. Use the next_page_url and prev_page_url fields to fetch additional pages.
Use Cases
- Transaction History: View all your transfer history
- Bulk Transfer Status: Check status of transfers from a bulk transfer batch using
batch_id - Reconciliation: Reconcile transfers with your records
- Reporting: Generate reports on transfer activity
Next Steps
- Transfer - Initiate a new transfer
- Verify Transfer - Verify individual transfer status
- Bulk Transfer - Send money to multiple recipients
- Bank List - Get list of available banks
- Error Codes - Handle errors gracefully