Virtual AccountCredit Virtual Account

Deposit to Virtual Account

Add funds to an existing virtual account. This operation requires sufficient funds in your business balance account.

Endpoint https://api.chapa.co/v1/virtual-account/credit

Method POST

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

Request Parameters

ParameterRequiredTypeDescription
account_numberYesstringThe unique identifier of the virtual account to be credited
amountYesnumberAmount to be deposited into the virtual account
tx_refNostringYour reference for this credit transaction (optional)
noteNostringReference or description for the deposit transaction
{
  "account_number": "1234567890",
  "amount": 1000,
  "tx_ref": "REF_1234",
  "note": "Deposit for February 2025"
}

Response Parameters

ParameterTypeDescription
statusstringStatus of the request (success/error)
messagestringDescription of the operation result
data.account.account_namestringName associated with the virtual account
data.account.account_numbernumberUnique identifier of the virtual account
data.account.account_aliasstringCustom reference name for the account
data.account.balancenumberCurrent balance after credit
data.account.statusstringCurrent status of the account
data.account.currencystringCurrency of the account
data.account.created_atstringTimestamp of account creation
data.account.updated_atstringTimestamp of last account update
data.transaction.tx_refstringYour reference for this credit transaction
data.transaction.notestringDescription provided for the credit
data.transaction.typestringThe type of transaction (credit/debit)
data.transaction.amountnumberAmount credited in this transaction
data.transaction.currencystringCurrency of the credit
data.transaction.created_atstringTimestamp of the credit transaction
import requestsimport jsonurl = "https://api.chapa.co/v1/virtual-account/credit"payload = json.dumps({  "account_number": "100314252",  "amount": 20,  "tx_ref": "VTkVnh5ScB",  "note": "Connecting Ethiopia to the Global Market"})headers = {  'Authorization': 'Bearer CHASECK-xxxxxxxxxxxxxxxx',  'Content-Type': 'application/json'}response = requests.post(url, headers=headers, data=payload)print(response.text)

ℹ️

Your business balance must have sufficient funds to process the deposit successfully.