curl --request POST \
--url https://uat-interface.haipay.asia/myr/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 123,
"orderId": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"cancelUrl": "<string>",
"notifyUrl": "<string>",
"body": "<string>",
"country": "<string>"
}
'import requests
url = "https://uat-interface.haipay.asia/myr/collect/apply"
payload = {
"appId": 123,
"orderId": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"cancelUrl": "<string>",
"notifyUrl": "<string>",
"body": "<string>",
"country": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 123,
orderId: '<string>',
name: '<string>',
phone: '<string>',
email: 'jsmith@example.com',
amount: '<string>',
payType: '<string>',
inBankCode: '<string>',
callBackUrl: '<string>',
callBackFailUrl: '<string>',
subject: '<string>',
partnerUserId: '<string>',
sign: '<string>',
cancelUrl: '<string>',
notifyUrl: '<string>',
body: JSON.stringify('<string>'),
country: '<string>'
})
};
fetch('https://uat-interface.haipay.asia/myr/collect/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/myr/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' => 123,
'orderId' => '<string>',
'name' => '<string>',
'phone' => '<string>',
'email' => 'jsmith@example.com',
'amount' => '<string>',
'payType' => '<string>',
'inBankCode' => '<string>',
'callBackUrl' => '<string>',
'callBackFailUrl' => '<string>',
'subject' => '<string>',
'partnerUserId' => '<string>',
'sign' => '<string>',
'cancelUrl' => '<string>',
'notifyUrl' => '<string>',
'body' => '<string>',
'country' => '<string>'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://uat-interface.haipay.asia/myr/collect/apply"
payload := strings.NewReader("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/myr/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://uat-interface.haipay.asia/myr/collect/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"error": "<string>",
"msg": "<string>",
"data": {
"orderId": "<string>",
"orderNo": "<string>",
"payUrl": "<string>",
"sign": "<string>"
}
}Collection Application
Use the appId corresponding to MYR. After successful user payment, the MYR balance will be increased.
curl --request POST \
--url https://uat-interface.haipay.asia/myr/collect/apply \
--header 'Content-Type: application/json' \
--data '
{
"appId": 123,
"orderId": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"cancelUrl": "<string>",
"notifyUrl": "<string>",
"body": "<string>",
"country": "<string>"
}
'import requests
url = "https://uat-interface.haipay.asia/myr/collect/apply"
payload = {
"appId": 123,
"orderId": "<string>",
"name": "<string>",
"phone": "<string>",
"email": "jsmith@example.com",
"amount": "<string>",
"payType": "<string>",
"inBankCode": "<string>",
"callBackUrl": "<string>",
"callBackFailUrl": "<string>",
"subject": "<string>",
"partnerUserId": "<string>",
"sign": "<string>",
"cancelUrl": "<string>",
"notifyUrl": "<string>",
"body": "<string>",
"country": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
appId: 123,
orderId: '<string>',
name: '<string>',
phone: '<string>',
email: 'jsmith@example.com',
amount: '<string>',
payType: '<string>',
inBankCode: '<string>',
callBackUrl: '<string>',
callBackFailUrl: '<string>',
subject: '<string>',
partnerUserId: '<string>',
sign: '<string>',
cancelUrl: '<string>',
notifyUrl: '<string>',
body: JSON.stringify('<string>'),
country: '<string>'
})
};
fetch('https://uat-interface.haipay.asia/myr/collect/apply', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://uat-interface.haipay.asia/myr/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' => 123,
'orderId' => '<string>',
'name' => '<string>',
'phone' => '<string>',
'email' => 'jsmith@example.com',
'amount' => '<string>',
'payType' => '<string>',
'inBankCode' => '<string>',
'callBackUrl' => '<string>',
'callBackFailUrl' => '<string>',
'subject' => '<string>',
'partnerUserId' => '<string>',
'sign' => '<string>',
'cancelUrl' => '<string>',
'notifyUrl' => '<string>',
'body' => '<string>',
'country' => '<string>'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://uat-interface.haipay.asia/myr/collect/apply"
payload := strings.NewReader("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://uat-interface.haipay.asia/myr/collect/apply")
.header("Content-Type", "application/json")
.body("{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://uat-interface.haipay.asia/myr/collect/apply")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"appId\": 123,\n \"orderId\": \"<string>\",\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"amount\": \"<string>\",\n \"payType\": \"<string>\",\n \"inBankCode\": \"<string>\",\n \"callBackUrl\": \"<string>\",\n \"callBackFailUrl\": \"<string>\",\n \"subject\": \"<string>\",\n \"partnerUserId\": \"<string>\",\n \"sign\": \"<string>\",\n \"cancelUrl\": \"<string>\",\n \"notifyUrl\": \"<string>\",\n \"body\": \"<string>\",\n \"country\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"error": "<string>",
"msg": "<string>",
"data": {
"orderId": "<string>",
"orderNo": "<string>",
"payUrl": "<string>",
"sign": "<string>"
}
}Secret Key & Private Key (Generate Signature)
Related Topics
Body
Business ID (obtained from backend, must pass the corresponding business ID according to the currency in the URL)
Merchant order number
48User’s full name, recommended to use real name. Format: include firstName and lastName, separated by a space. Example: John Doe
Valid phone number
Valid email
Transaction amount (accurate to two decimal places; punctuation marks such as “,” are prohibited)
^\d+\.\d{2}$Transaction type
Redirect URL after successful payment
Redirect URL after failed payment
Payment remark (transaction title, product name, or payment reason)
Unique user identifier (e.g., userId). Must be valid, otherwise it will affect the transaction. Format: digits, letters, or symbols -~!@#$%&*()_.
^[A-Za-z0-9\-~!@#$%&*()_]+$Signature
Cancel payment redirect URL. If provided, users can click back on the payment page and be redirected to this URL
Callback URL
Remark details
Required for cashier mode, pass: 458
Was this page helpful?

