NGN Disbursement Application
curl --request POST \
--url https://uat-interface.haipay.asia/ngn/pay/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 1054,
"orderId": "NGNPAY001",
"amount": "25000.00",
"accountType": "BANK_ACCOUNT",
"bankCode": "000013",
"accountNo": "8880737325",
"name": "Emeka Okafor",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
'import requests
url = "https://uat-interface.haipay.asia/ngn/pay/apply"
payload = {
"appId": 1054,
"orderId": "NGNPAY001",
"amount": "25000.00",
"accountType": "BANK_ACCOUNT",
"bankCode": "000013",
"accountNo": "8880737325",
"name": "Emeka Okafor",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const url = 'https://uat-interface.haipay.asia/ngn/pay/apply';
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 1054,
orderId: 'NGNPAY001',
amount: '25000.00',
accountType: 'BANK_ACCOUNT',
bankCode: '000013',
accountNo: '8880737325',
name: 'Emeka Okafor',
notifyUrl: 'https://api.merchant.com/webhooks/haipay',
sign: 'signature'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/ngn/pay/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => 1054,
'orderId' => 'NGNPAY001',
'amount' => '25000.00',
'accountType' => 'BANK_ACCOUNT',
'bankCode' => '000013',
'accountNo' => '8880737325',
'name' => 'Emeka Okafor',
'notifyUrl' => 'https://api.merchant.com/webhooks/haipay',
'sign' => 'signature'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/ngn/pay/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 1054,\n \"orderId\": \"NGNPAY001\",\n \"amount\": \"25000.00\",\n \"accountType\": \"BANK_ACCOUNT\",\n \"bankCode\": \"000013\",\n \"accountNo\": \"8880737325\",\n \"name\": \"Emeka Okafor\",\n \"notifyUrl\": \"https://api.merchant.com/webhooks/haipay\",\n \"sign\": \"signature\"\n}")
.asString();{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "NGNPAY001",
"orderNo": "3023062014149637",
"payUrl": "",
"sign": "signature"
}
}Nigeria
Disbursement Application
POST
/
ngn
/
pay
/
apply
NGN Disbursement Application
curl --request POST \
--url https://uat-interface.haipay.asia/ngn/pay/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 1054,
"orderId": "NGNPAY001",
"amount": "25000.00",
"accountType": "BANK_ACCOUNT",
"bankCode": "000013",
"accountNo": "8880737325",
"name": "Emeka Okafor",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
'import requests
url = "https://uat-interface.haipay.asia/ngn/pay/apply"
payload = {
"appId": 1054,
"orderId": "NGNPAY001",
"amount": "25000.00",
"accountType": "BANK_ACCOUNT",
"bankCode": "000013",
"accountNo": "8880737325",
"name": "Emeka Okafor",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const url = 'https://uat-interface.haipay.asia/ngn/pay/apply';
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 1054,
orderId: 'NGNPAY001',
amount: '25000.00',
accountType: 'BANK_ACCOUNT',
bankCode: '000013',
accountNo: '8880737325',
name: 'Emeka Okafor',
notifyUrl: 'https://api.merchant.com/webhooks/haipay',
sign: 'signature'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/ngn/pay/apply",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'appId' => 1054,
'orderId' => 'NGNPAY001',
'amount' => '25000.00',
'accountType' => 'BANK_ACCOUNT',
'bankCode' => '000013',
'accountNo' => '8880737325',
'name' => 'Emeka Okafor',
'notifyUrl' => 'https://api.merchant.com/webhooks/haipay',
'sign' => 'signature'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/ngn/pay/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 1054,\n \"orderId\": \"NGNPAY001\",\n \"amount\": \"25000.00\",\n \"accountType\": \"BANK_ACCOUNT\",\n \"bankCode\": \"000013\",\n \"accountNo\": \"8880737325\",\n \"name\": \"Emeka Okafor\",\n \"notifyUrl\": \"https://api.merchant.com/webhooks/haipay\",\n \"sign\": \"signature\"\n}")
.asString();{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "NGNPAY001",
"orderNo": "3023062014149637",
"payUrl": "",
"sign": "signature"
}
}All example requests on this page are based on the sandbox (test) environment. Please be careful to distinguish it from the production environment.
Secret Key & Private Key (Generate Signature)
Related Topics
Body
application/json
Business ID obtained from the backend; it must match the URL currency
Unique merchant order ID, up to 48 characters
Maximum string length:
48Transaction amount in NGN, up to 2 decimal places; subject to the merchant backend business configuration
Pattern:
^((([1-9]\d*)(\.\d{1,4})?)|(0\.(?!0+$)\d{1,4}))$Account type supported by the merchant backend configuration
Bank code supported by the merchant backend payment-code configuration
Recipient bank account number, exactly 10 digits
Pattern:
^\d{10}$Recipient name in English, containing at least a first and last name separated by a space; digits and special characters are not supported
Pattern:
^[A-Za-z ]+$Signature
Recipient phone number
Recipient email
Asynchronous notification URL
Transaction title, product name, or payment reason
Detailed remark
Unique user identifier
Maximum string length:
64Pattern:
^[a-zA-Z0-9\-~!@#$%&*()_]+$Last modified on October 13, 2026

