Dashboard

Initiate Transfer is an endpoint designed to return dynamic virtual account details for completing payment transactions. This operation collects important information to create a transfer request, including the amount, currency, and customer details.

Users or customers can use this request to generate virtual account details, facilitating the completion of payments through bank transfers. The dynamic nature of these virtual accounts means that they automatically expire after 30 minutes, ensuring enhanced security and reducing the risk of unauthorized usage.

Request

METHOD: POST

Live URL: https://api.hydrogenpay.com/bepay/api/v1/Merchant/initiate-bank-transfer

Request Parameters

MandatoryTypeNameDescription
YesDecimalamountAmount to debit the customer.
YesEmailemailCustomer’s Email Address.
YesStringcustomerNameCustomer's name.
NoStringcurrencyDefault to NGN if not passed, other currencies available are USD and GBP.
NoStringdescriptionPayment Description.
NoStringmetaContains any other information you want to be recorded with the transaction.
NoStringtransactionRefUnique transaction reference for the transfer. It will be automatically generated if not specified.
YesStringcallbackRedirect URL after the transfer has been completed on the gateway.

Success Response

FieldTypeValue
statusCodeInteger90000
messageStringInitiate bank transfer successful
transactionRefStringTransaction Client Reference
virtualAccountNoStringDynamic virtual account number
virtualAccountNameStringName associated with the virtual account
expiryDateTimeStringExpiry date and time for the virtual account with default being 30 minutes.
transactionStatusStringCurrent status of the transaction
amountPaidDecimalAmount paid
bankNameStringBank name associated with the virtual account

Missing Callback Response

FieldTypeValue
statusCodeString10001
messageStringCallback is Required
dataObjectnull

Invalid Currency Response

FieldTypeDescription
statusCodeString10001
messageStringInvalid Currency
dataObjectnull

Missing Field Response

FieldTypeDescription
statusCodeString400
successBooleanfalse
messageStringValidation Failed
errorObjectList of validation errors

Sample Request

{
  "amount": 50,
  "customerName": "Dev Test",
  "email": "[email protected]",
  "currency": "NGN",
  "description": "test description",
  "meta": "test meta",
  "callback": "https://hydrogenpay.com"
}

Sample Response

{
    "statusCode": "90000",
    "message": "Initiate bank transfer successful",
    "data": {
        "transactionRef": "testref0001",
        "virtualAccountNo": "7193299054",
        "virtualAccountName": "HYDROGEN - Instante Tetring",
        "expiryDateTime": "06/07/2024 16:16:22",
        "transactionStatus": "Pending",
        "amountPaid": 1000,
        "bankName": "Access Bank"
    }
}