NGN Collection Application
curl --request POST \
--url https://uat-interface.haipay.asia/ngn/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 1054,
"orderId": "NGNCOLLECT001",
"amount": "25000.00",
"email": "emeka.okafor@gmail.com",
"callBackUrl": "https://shop.merchant.com/payment/success",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
'import requests
url = "https://uat-interface.haipay.asia/ngn/collect/apply"
payload = {
"appId": 1054,
"orderId": "NGNCOLLECT001",
"amount": "25000.00",
"email": "emeka.okafor@gmail.com",
"callBackUrl": "https://shop.merchant.com/payment/success",
"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/collect/apply';
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 1054,
orderId: 'NGNCOLLECT001',
amount: '25000.00',
email: 'emeka.okafor@gmail.com',
callBackUrl: 'https://shop.merchant.com/payment/success',
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/collect/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' => 'NGNCOLLECT001',
'amount' => '25000.00',
'email' => 'emeka.okafor@gmail.com',
'callBackUrl' => 'https://shop.merchant.com/payment/success',
'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/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 1054,\n \"orderId\": \"NGNCOLLECT001\",\n \"amount\": \"25000.00\",\n \"email\": \"emeka.okafor@gmail.com\",\n \"callBackUrl\": \"https://shop.merchant.com/payment/success\",\n \"notifyUrl\": \"https://api.merchant.com/webhooks/haipay\",\n \"sign\": \"signature\"\n}")
.asString();{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "NGNCOLLECT001",
"orderNo": "6023071013539074",
"amount": "25000.00",
"exchangeRate": "1",
"orderAmount": "25000.00",
"payUrl": "https://pay.haipay.asia/cashier/1L9zQS2",
"description": "",
"expiryPeriod": 15,
"sign": "signature"
}
}Nigeria
NGN Collection Application
POST
/
ngn
/
collect
/
apply
NGN Collection Application
curl --request POST \
--url https://uat-interface.haipay.asia/ngn/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 1054,
"orderId": "NGNCOLLECT001",
"amount": "25000.00",
"email": "emeka.okafor@gmail.com",
"callBackUrl": "https://shop.merchant.com/payment/success",
"notifyUrl": "https://api.merchant.com/webhooks/haipay",
"sign": "signature"
}
'import requests
url = "https://uat-interface.haipay.asia/ngn/collect/apply"
payload = {
"appId": 1054,
"orderId": "NGNCOLLECT001",
"amount": "25000.00",
"email": "emeka.okafor@gmail.com",
"callBackUrl": "https://shop.merchant.com/payment/success",
"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/collect/apply';
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 1054,
orderId: 'NGNCOLLECT001',
amount: '25000.00',
email: 'emeka.okafor@gmail.com',
callBackUrl: 'https://shop.merchant.com/payment/success',
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/collect/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' => 'NGNCOLLECT001',
'amount' => '25000.00',
'email' => 'emeka.okafor@gmail.com',
'callBackUrl' => 'https://shop.merchant.com/payment/success',
'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/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 1054,\n \"orderId\": \"NGNCOLLECT001\",\n \"amount\": \"25000.00\",\n \"email\": \"emeka.okafor@gmail.com\",\n \"callBackUrl\": \"https://shop.merchant.com/payment/success\",\n \"notifyUrl\": \"https://api.merchant.com/webhooks/haipay\",\n \"sign\": \"signature\"\n}")
.asString();{
"status": "1",
"error": "00000000",
"msg": "",
"data": {
"orderId": "NGNCOLLECT001",
"orderNo": "6023071013539074",
"amount": "25000.00",
"exchangeRate": "1",
"orderAmount": "25000.00",
"payUrl": "https://pay.haipay.asia/cashier/1L9zQS2",
"description": "",
"expiryPeriod": 15,
"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; subject to the merchant backend business configuration. The common request format accepts up to 4 decimal places; amounts are processed with 2 decimal places
Pattern:
^((([1-9]\d*)(\.\d{1,4})?)|(0\.(?!0+$)\d{1,4}))$Signature
Payment type configured in the merchant backend
Collection payment code configured in the merchant backend
Payer name
Payer phone number
Maximum string length:
20Payer email; a default email is used when omitted
Redirect URL after successful payment
Redirect URL after failed payment
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 November 5, 2026

