Accept Payments with Bank Transfer
This API allows merchants to receive payments via a virtual account. Customers can thus make payments using either an intrabank or interbank transfers.
A settlement leg will occur to enable the remittance of funds to the merchant’s collection account. A callback will be made to the URL provided by the merchant for the business for which this payment was made.
Prerequisites
Head over to our ALATpay portal. to create an account if you don’t already have one.
Add your business under the settings tab on the merchant portal.
Select Bank Transfer as a payment option.
Provide your callback URL – it is important for your business to be duly notified of transaction statuses.
Take note of the assigned business ID to your newly created business.
Step 1: Generate Virtual Account
Upon checkout/customer payout, merchant is to call this endpoint to generate the virtual account number for payment.
Each virtual account would be active for 30 minutes, within which the customer is expected to have made payments.
/api/v1/bankTransfer/virtualAccount
Request Payload
{
"businessId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"businessName": "string",
"amount": 1000,
"currency": "NGN",
"orderId": "",
"description": "ALATpay Checkout Payment",
"channel": "string",
"customer":
{
"email": "jane.joe@email.com",
"phone": "+23480000000001",
"firstName": "Jane",
"lastName": "+23480000000001",
"metadata": "string"
}
}
Reponse Payload
{
"status": true,
"message": "string",
"data": {
"businessId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"businessName": "string",
"amount": 0,
"currency": "string",
"orderId": "string",
"description": "string",
"channel": "string",
"customer": {
"email": "string",
"phone": "string",
"firstName": "string",
"lastName": "string",
"metadata": "string"
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"virtualBankCode": "string",
"virtualBankAccountNumber": "string",
"businessBankAccountNumber": "string",
"businessBankCode": "string",
"transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "string",
"expiredAt": "2023-03-13T11:33:46.298Z",
"settlementType": "string",
"createdAt": "2023-03-13T11:33:46.298Z"
}
}
Step 2: Virtual Account Lookup
Using this endpoint below, customers can be allowed to perform name enquiry on the newly generated virtual account while on the checkout page. Name enquiry would return the business name as assigned on the merchant portal for this collection.
This is a POST request that accepts the virtual account number in the request body.
block of code here
NOTE:
Customers would still be able to perform name enquiry via their mobile banking applications or USSD platforms.
Each newly generated virtual account would be active for 30 minutes, after which it would be deactivated.
A single inflow to a virtual account would deactivate it.
/api/v1/bankTransfer/nip/accountLookup
Request Payload
{
"accountnumber": "string"
}
Response Payload
{
"status": true,
"message": "string",
"data": {
"items": [
{
"businessId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"businessName": "string",
"amount": 0,
"currency": "string",
"orderId": "string",
"description": "string",
"channel": "string",
"customer": {
"email": "string",
"phone": "string",
"firstName": "string",
"lastName": "string",
"metadata": "string"
},
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"merchantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"virtualBankCode": "string",
"virtualBankAccountNumber": "string",
"businessBankAccountNumber": "string",
"businessBankCode": "string",
"transactionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "string",
"expiredAt": "2023-03-13T13:36:19.831Z",
"settlementType": "string",
"createdAt": "2023-03-13T13:36:19.831Z"
}
],
"currentPage": 0,
"totalItems": 0,
"totalPages": 0,
"pathUrl": "string",
"previousPageUrl": "string",
"nextPageUrl": "string"
}
}
Next Step:
Setup Transaction Monitoring.