Chapa

Deposit to Virtual Account

Add funds to an existing 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

Example Request Body

{
  "account_number": "1234567890",
  "amount": 1000,
  "tx_ref": "REF_1234",
  "note": "Deposit for February 2025"
}
Example Request
cURL
PHP
Python

Successful Response

{
  "status": "success",
  "message": "Amount Deposited Successfully",
  "data": {
    "account": {
      "account_name": "Abebe Bikila",
      "account_number": 100314252,
      "account_alias": "1234542",
      "balance": 40,
      "status": "active",
      "currency": "ETB",
      "created_at": "2025-02-21T08:06:54.000000Z",
      "updated_at": "2025-02-21T08:09:54.000000Z"
    },
    "deposit": {
      "tx_ref": "VTkVnh5ScB",
      "note": "Connecting Ethiopia to the Global Market",
      "amount": 20,
      "currency": "ETB",
      "created_at": "2025-02-21T08:09:54.000000Z"
    }
  }
}

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.deposit.tx_refstringYour reference for this credit transaction
data.deposit.notestringDescription provided for the credit
data.deposit.amountnumberAmount credited in this transaction
data.deposit.currencystringCurrency of the credit
data.deposit.created_atstringTimestamp of the credit transaction

Failed Response

{
  "status": "error",
  "message": "Virtual Account Not Found"
}

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

Refer to our Error Codes page for all responses for this request.

Use Cases

  • Top-up Accounts: Add funds to customer virtual accounts
  • Refunds: Credit refunds to virtual accounts
  • Rewards: Deposit rewards or bonuses to accounts
  • Balance Management: Transfer funds between business and virtual accounts

Next Steps

On this page