Skip to main content
POST
/
merchant-collection
/
merchant
/
virtual_account
/
generate_virtual_account
curl --request POST \
  --url https://api.payaza.africa/live/merchant-collection/merchant/virtual_account/generate_virtual_account \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "account_name": "Test DVA",
  "account_type": "Dynamic",
  "bank_code": "140",
  "bvn": "",
  "has_amount_validation": "true",
  "account_reference": "Ref123456780",
  "customer_first_name": "John",
  "customer_last_name": "Doe",
  "customer_email": "johndoe@gmail.com",
  "customer_phone_number": "07012345678",
  "transaction_description": "Test Description",
  "transaction_amount": "1000",
  "expires_in_minutes": "20"
}
'
{
  "message": "Virtual Account generated successfully",
  "data": {
    "account_name": "Payaza(Test DVA)",
    "account_number": "3340009013",
    "account_type": "Dynamic",
    "bank_name": "GLOBUS BANK",
    "account_reference": "accRef123",
    "account_expired": false,
    "message": "Virtual Account generated successfully",
    "transaction_id": 49555930,
    "transaction_amount_payable": 100,
    "transaction_reference": "accRef123",
    "expires_in_minutes": 20
  },
  "success": true
}

Authorizations

Authorization
string
header
required

Payaza {{Public API Key in Base 64}}

Body

application/json
account_name
string
required

The name assigned to the virtual account being created.

Example:

"Test DVA"

account_type
string
required

Type of virtual account. “Dynamic‶ is the default value

Example:

"Dynamic"

bank_code
string
required

The code of the bank providing the virtual account. “1067‶ for 78 FINANCE COMPANY LIMITED, “117‶ for FIDELITY BANK LIMITED, “140‶ for GLOBUS BANK LIMITED.

Example:

"140"

account_reference
string
required

The unique identifier for the transaction..

Example:

"Ref123456780"

customer_first_name
string
required

The first name of the customer.

Example:

"John"

customer_last_name
string
required

The last name of the customer.

Example:

"Doe"

customer_email
string<email>
required

The customer's email address.

Example:

"johndoe@gmail.com"

transaction_amount
string
required

The amount to be paid in the transaction.

Example:

"1000"

has_amount_validation
string

This is used to give control on amount validation for virtual accounts being created i.e. allow underpayment or overpayment or exact amounts. This is only available for GLOBUS BANK LIMITED and 78 FINANCE COMPANY LIMITED.

Example:

"true"

customer_phone_number
string

The customer's phone number.

Example:

"07012345678"

transaction_description
string

The description or narration of the transaction.

Example:

"Test Description"

expires_in_minutes
string

The number of minutes for which the virtual account will be valid. The default is 30 minutes. Minimum: 15 minutes, Maximum: 480 minutes. This is only available for 78 FINANCE COMPANY LIMITED.

Example:

"20"

Response

Transfer initiated successfully

success
boolean

Request success status.

Example:

true

message
string

Response message.

Example:

"Virtual Account generated successfully"

data
object

Generated virtual account details.