Virtual Account Creation

Summary

Create Virtual Accounts on demands, receive funds from customers via Virtual Account Number and get notification on Virtual Accounts usage.

Dedicated Virtual Accounts (DVAs) is a service that lets you create Nigerian, Ghana virtual accounts for your customers. These accounts allow your customers to receive payment from their customers.

When you create a Dedicated Virtual Account (DVA) for a customer, all bank transfers to that account will automatically be recorded as transactions from that customer.

Coverage

Country
currency

Nigeria

NGN

Ghana

GHS

Integration steps

You can generate a VA and start receiving money in 3 easy steps:

  1. Prepare payload (payload includes: first name, last name, currency and email)

  2. Initiate VA creation (encrypting payload)

  3. Get instant response


Before you begin!

  • Link to the Postman collection

  • Find your keys on the Klasha Dashboard → Settings → Generate API Keys (here)

  • Klasha Dashboard, Generate API Keys page

Token Generation

Initiate VA creation

create a virtual account

POST {{env_url}}/wallet/virtual/v3/business/create/account

Encrypt the plain request body using the encryption algorithm specified above. Set the encrypted data to the message as shown below. You are required to set the x-auth-token and Authorization in the headers.

Headers

Key
Value

x-auth-token

Your merchant public key

Authorization

Bearer <token here>

Request Body (encrypted)

The result of the encryption of the payload that we specified has to be used with the Create virtual account endpoint as shown below:

Request Body (plain)

Name
Type
Description

firstName*

String

John

lastName*

String

Doe

currency*

String

Must be one of the supported currencies in the Coverage

email*

String

When you create a Virtual Account (VA), please allow a few seconds for processing. The accountName will be the first and last name for a personal account, or the business name for a corporate account. Below are some sample responses you can expect.

Requery

GET {{env_url}}/wallet/virtual/v2/account/{{email}}

In case of network downtime or failures during VA creation, the virtual account can be re-queried with the user’s email. This can be fetched using the Requery with email API on the Postman collection.

Headers

Key
Value

Authorization

Bearer <token here>

Transaction Webhook

When payments are received from your users, we would send a webhook with the details of the transaction to your callback URL.

Polling transaction status

POST {{env_url}}/nucleus/tnx/collection/status

To know the status of a transaction, you can fetch the transaction using the Transaction Status API on the Postman collection. Make use of the session id received from the bank. See an example below:

Request Body

Name
Type
Description

gateRef*

String

10043599483902847574821

Last updated