Transfers

This section describes how merchants and developers can send funds to Bank accounts.

With Chapa Transfer API, you can send money to bank accounts from your balance.


Note

To send money on Chapa, you need API keys to authenticate your transfers. You can find your keys on the Chapa Dashboard under Settings->API


You need to collect the customer’s account details and confirm that it’s valid before sending money. This is to ensure you don’t send money to the wrong or invalid account. We don’t take any responsibility if this happens.

List banks

You can use get banks endpoint to get all supported banks.

Sample get banks request would look like this.


var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://api.chapa.co/v1/banks',
  'headers': {
    'Authorization': 'Bearer CHASECK-xxxxxxxxxxxxxxxx'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

Initiate a Transfer

This section describes how to Initate a transfer with Chapa.

Endpoint https://api.chapa.co/v1/transfers

Method POST

Body Parameters

  • account_name *: This is the reciepient Account Name matches on their bank account.
  • account_number *: This is the reciepient Account Number.
  • amount *: This the amount to be transferred to the recipient.
  • beneficiary_name: This is the full name of the Transfer beneficiary (You may use it to match on your required).
  • currency*: This is the currency for the Transfer. Expected value is ETB.
  • reference *: This a merchant’s uniques reference for the transfer, it can be used to query for the status of the transfer.

  • bank_code *: This is the recipient bank code. You can see a list of all the available banks and their codes from the get banks endpoint.

Headers

  • Authorization *: Pass your secret key as a bearer token in the request header to authorize this call.

Sample Call

curl --location --request POST 'https://api.chapa.co/v1/transfers' \
--header 'Authorization: Bearer CHA-YOURAPI-KEY' \
--form 'account_name="Israel Goytom"' \
--form 'account_number="32423423"' \
--form 'amount="20"' \
--form 'currency="ETB"' \
--form 'beneficiary_name="Israel Goytom"' \
--form 'reference="3241342142sfdd"' \
--form 'bank_code="fe087651-4910-43af-b666-bbd393d8e81f"'


var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://api.chapa.co/v1/transfers',
  'headers': {
    'Authorization': 'Bearer YOUR_SECRECT_KEY'
  },
  formData: {
    'account_name': 'Israel Goytom',
    'account_number': '32423423',
    'amount': '20',
    'currency': 'ETB',
    'beneficiary_name': 'Abe Kebe',
    'reference': '3241342142sfdd',
    'bank_code': 'fe087651-4910-43af-b666-bbd393d8e81f'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});


Note: You need to have enough balance in your Available Balance to make a transfer. If your balance is lessthan the requsted transfer amount, we will reject the transfer, if this persists we will block access to the transfer API.


Webhooks
Testing Cards
Next →

Related Docs