Inquiry Wallet Histories
curl --request POST \
--url https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory \
--header 'Abp-TenantId: <abp-tenantid>' \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cap-signature: <cap-signature>' \
--data '
{
"nextRecord": 123,
"dateTimeFrom": "<string>",
"dateTimeTo": "<string>",
"walletId": 123
}
'import requests
url = "https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory"
payload = {
"nextRecord": 123,
"dateTimeFrom": "<string>",
"dateTimeTo": "<string>",
"walletId": 123
}
headers = {
"Abp-TenantId": "<abp-tenantid>",
"Authorization": "<authorization>",
"cap-signature": "<cap-signature>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Abp-TenantId': '<abp-tenantid>',
Authorization: '<authorization>',
'cap-signature': '<cap-signature>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
nextRecord: 123,
dateTimeFrom: '<string>',
dateTimeTo: '<string>',
walletId: 123
})
};
fetch('https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory', 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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory",
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([
'nextRecord' => 123,
'dateTimeFrom' => '<string>',
'dateTimeTo' => '<string>',
'walletId' => 123
]),
CURLOPT_HTTPHEADER => [
"Abp-TenantId: <abp-tenantid>",
"Authorization: <authorization>",
"Content-Type: application/json",
"cap-signature: <cap-signature>"
],
]);
$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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory"
payload := strings.NewReader("{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Abp-TenantId", "<abp-tenantid>")
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("cap-signature", "<cap-signature>")
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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory")
.header("Abp-TenantId", "<abp-tenantid>")
.header("Authorization", "<authorization>")
.header("cap-signature", "<cap-signature>")
.header("Content-Type", "application/json")
.body("{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Abp-TenantId"] = '<abp-tenantid>'
request["Authorization"] = '<authorization>'
request["cap-signature"] = '<cap-signature>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}"
response = http.request(request)
puts response.read_body{
"walletId": {},
"walletBalance": 123,
"walletHistories": [
{
"walletHistories.id": {},
"walletHistories.createdDate": "<string>",
"walletHistories.transactionNumber": "<string>",
"walletHistories.refenceCode": "<string>",
"walletHistories.amount": 123,
"walletHistories.currencyCode": "<string>",
"walletHistories.type": 123,
"walletHistories.description": "<string>",
"walletHistories.postTransactionWalletBalance": 123
}
],
"nextRecords": 123
}Payout APIs
Inquiry Wallet Histories
Retrieve wallet transaction history.
POST
/
api
/
services
/
app
/
PaymentGateway
/
QueryWalletHistory
Inquiry Wallet Histories
curl --request POST \
--url https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory \
--header 'Abp-TenantId: <abp-tenantid>' \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--header 'cap-signature: <cap-signature>' \
--data '
{
"nextRecord": 123,
"dateTimeFrom": "<string>",
"dateTimeTo": "<string>",
"walletId": 123
}
'import requests
url = "https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory"
payload = {
"nextRecord": 123,
"dateTimeFrom": "<string>",
"dateTimeTo": "<string>",
"walletId": 123
}
headers = {
"Abp-TenantId": "<abp-tenantid>",
"Authorization": "<authorization>",
"cap-signature": "<cap-signature>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Abp-TenantId': '<abp-tenantid>',
Authorization: '<authorization>',
'cap-signature': '<cap-signature>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
nextRecord: 123,
dateTimeFrom: '<string>',
dateTimeTo: '<string>',
walletId: 123
})
};
fetch('https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory', 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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory",
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([
'nextRecord' => 123,
'dateTimeFrom' => '<string>',
'dateTimeTo' => '<string>',
'walletId' => 123
]),
CURLOPT_HTTPHEADER => [
"Abp-TenantId: <abp-tenantid>",
"Authorization: <authorization>",
"Content-Type: application/json",
"cap-signature: <cap-signature>"
],
]);
$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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory"
payload := strings.NewReader("{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Abp-TenantId", "<abp-tenantid>")
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("cap-signature", "<cap-signature>")
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://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory")
.header("Abp-TenantId", "<abp-tenantid>")
.header("Authorization", "<authorization>")
.header("cap-signature", "<cap-signature>")
.header("Content-Type", "application/json")
.body("{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-payments.commerce.asia/api/services/app/PaymentGateway/QueryWalletHistory")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Abp-TenantId"] = '<abp-tenantid>'
request["Authorization"] = '<authorization>'
request["cap-signature"] = '<cap-signature>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"nextRecord\": 123,\n \"dateTimeFrom\": \"<string>\",\n \"dateTimeTo\": \"<string>\",\n \"walletId\": 123\n}"
response = http.request(request)
puts response.read_body{
"walletId": {},
"walletBalance": 123,
"walletHistories": [
{
"walletHistories.id": {},
"walletHistories.createdDate": "<string>",
"walletHistories.transactionNumber": "<string>",
"walletHistories.refenceCode": "<string>",
"walletHistories.amount": 123,
"walletHistories.currencyCode": "<string>",
"walletHistories.type": 123,
"walletHistories.description": "<string>",
"walletHistories.postTransactionWalletBalance": 123
}
],
"nextRecords": 123
}An API endpoint used to retrieve wallet transaction history.
Request
Headers
string
required
Your unique Merchant ID assigned by CommercePay.
string
required
Your API credentials used for authentication (typically a Bearer token).
string
required
A unique security hash used to verify the integrity of the request body. See Generate Signature for how to generate this.
Body
integer
For retrieving the next set of records. Not required to fetch the first 100 records; to fetch subsequent records this field is mandatory, and its value can be obtained from the previous response’s
nextRecords.string
required
The start date and time for the search (UTC).
string
required
The end date and time for the search (UTC).
integer
required
A unique wallet ID. You can obtain this from the Inquiry Wallets endpoint.
Request Payload Sample
Payload
{
"nextRecord": 0,
"dateTimeFrom": "2026-04-26T10:57:32.089Z",
"dateTimeTo": "2026-04-26T10:57:32.089Z",
"walletId": 0
}
Response
Body
int64
A unique wallet ID.
decimal
Available wallet balance.
object[]
Show properties
Show properties
int64
Transaction history ID.
string
Transaction date and time (UTC).
string
Transaction number.
string
Transaction reference.
decimal
Transaction payment amount.
string
Transaction payment currency code.
integer
Payment type. Topup = 1, Payout = 2, Reverse = 3, Refund = 4, Rebate = 5, Unknown = 6.
string
Transaction payment description.
decimal
Wallet balance after the transaction.
integer
Next record indicator.
Response Payload Sample
Response_2XX
{
"result": {
"walletId": 4,
"walletBalance": 5253.6,
"walletHistories": [
{
"id": 2030,
"createdDate": "2026-03-29T03:59:04.338023Z",
"transactionNumber": "101A5E976151454E9B0260329",
"refenceCode": "200BC14478FA9200C3F260329",
"amount": 100,
"currencyCode": "MYR",
"type": 2,
"description": "UOBATD001",
"postTransactionWalletBalance": 5353.6
}
],
"nextRecords": 1
}
}
Error Responses
| Code | Message |
|---|---|
| 1005 | Tenant Wallet Not Found |
| 1 | Invalid Signature. |
Response_400
{
"result": null,
"error": {
"code": 1005,
"message": "Tenant Wallet Not Found"
}
}
Response_400
{
"result": {
"code": 1,
"message": "Invalid Signature."
},
"error": null
}
