ChapaChapa Docs

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"
}
cURL
PHP
Python

Successful Response

{
  "status": "success",
  "message": "Amount Deposited Successfully",
  "data": {
    "account": {
      "account_name": "ZAK KAR",
      "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