Query Transaction
- Transaction ID is an identifier generated by Revenue Monster.
- Reference ID is an identifer generated by Payment Provider, which will generated by the customer's selected payment provider.
- Order ID is an identifier generated by Payment Initiator. It will be set by when payment been initiated such as from OpenAPI, Mobile App, Terminal, Recurring Payment.
You should always store either Transaction ID or Order ID for transaction querying.
Query By Order ID
Method : GET
URL : https://open.revenuemonster.my/v3/payment/transaction/order/{id}
Sandbox URL : https://sb-open.revenuemonster.my/v3/payment/transaction/order/{id}
Request Parameters
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
id | Param | Yes | Order ID |
Response Parameters
Parameter | Type | Validation | Description |
---|---|---|---|
item | JSON | Transaction Object | Transaction response |
code | String | ENUM("SUCCESS") | Determine request have success |
error.code | String | Error code | |
error.message | String | Error message | |
error.debug | String | Debug message ( sandbox only ) |
Query By Transaction ID
Method : GET
URL : https://open.revenuemonster.my/v3/payment/transaction/{id}
Sandbox URL : https://sb-open.revenuemonster.my/v3/payment/transaction/{id}
Request Parameters
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
id | Param | Yes | Transaction ID |
Response Parameters
Parameter | Type | Validation | Description |
---|---|---|---|
item | JSON | Transaction Object | Transaction response |
code | String | ENUM("SUCCESS") | Determine request have success |
error.code | String | Error code | |
error.message | String | Error message | |
error.debug | String | Debug message ( sandbox only ) |
Get All Transactions
Method : GET
URL :https://open.revenuemonster.my/v3/payment/transactions
Sandbox URL :https://sb-open.revenuemonster.my/v3/payment/transactions
URL with limit : https://sb-open.revenuemonster.my/v3/payment/transactions?limit=1
Request Parameters
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
limit | QueryParam | No | Transaction search limit |
Response Parameters
Parameter | Type | Validation | Description |
---|---|---|---|
items | JSONArray | Array of Transaction Object | List of transaction response |
code | String | ENUM("SUCCESS") | Determine request have success |
error.code | String | Error code | |
error.message | String | Error message | |
error.debug | String | Debug message ( sandbox only ) |
Transaction Object
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
store | JSON | Transaction Object: Store | No | Store details |
referenceId | String | No | Reference ID | |
transactionId | String | Yes | Transaction ID | |
terminalId | String | No | Terminal ID | |
currencyType | String | ENUM("MYR") | Yes | Currency Type ( currently supported MYR only) |
balanceAmount | Uint64 | Yes | Remaining balance amount for initiate refund | |
finalAmount | Uint64 | Yes | Amount after all deductions ( voucher, membership) | |
platform | String | ENUM("TERMINAL", "MOBILE_APP", "OPEN_API", "WEB_LOYALTY") | Yes | Transaction platform |
type | String | Appendix: Type | Yes | Transaction type |
method | String | Appendix: Method | Yes | Transaction payment method |
region | String | Appendix: Region | Yes | Transaction pament region |
status | String | Appendix: Status | Yes | Transaction payment status |
source | String | ENUM("RECURRING", "ALACARTE") | Yes | (Internal) Determine initiator source |
transactionAt | String | RFC3339 | No | Transaction payment date time ( exists only when SUCCESS ) |
createdAt | String | RFC3339 | Yes | Transaction created date time |
updatedAt | String | RFC3339 | Yes | Transaction last updated date time |
error.message | String | No | Transaction error message ( exists only when FAIELD ) | |
payee.userId | String | No | Payment provider user id | |
payee.subUserId | String | No | Payment provider sub user id | |
order.id | String | Yes | Order ID | |
order.title | String | Length(32) | Yes | Order Title |
order.currencyType | String | ENUM("MYR") | Yes | Order Currency Type ( currently supported MYR only) |
order.amount | Uint64 | Yes | Order Amount | |
order.detail | String | Length(600) | No | Order Detail |
order.additionalData | String | Length(128) | No | Order Additional Data |
voucher.key | String | No | (Internal) Determine have any vouchers | |
voucher.discountAmount | Uint64 | No | Total discounted amount from all voucher deductions | |
voucher.wallet | JSON | Transaction Object: Payment Provider Discount Info | No | Payment provider discount info |
voucher.membership | JSON | Transaction Object: Membership Discount Info | No | Membership discount info |
extendInfo.buyNowPayLater | JSON | Transaction Object: BuyNowPayLater | No | BNPL transaction info |
extendInfo.inHousePromo | JSON | Transaction Object: In House Promotion | No | (Internal) In house promotion |
extraInfo.card | JSON | Transaction Object: Card Payment | No | Card payment info |
extraInfo.onlineBanking | JSON | Transaction Object: Online Banking | No | FPX online banking transaction info |
extraInfo.loyalty | JSON | Transaction Object: Spending Loyalty | No | Spending loyalty info |
{
"referenceId": "230522162302AC0570UM",
"transactionId": "230522082259300426500551",
"order": {
"id": "1684743768790895",
"title": "Demo",
"detail": "Demo",
"additionalData": "Demo",
"amount": 120
},
"terminalId": "",
"payee": {
"userId": "",
"subUserId": ""
},
"currencyType": "MYR",
"balanceAmount": 120,
"finalAmount": 120,
"voucher": null,
"platform": "OPEN_API",
"method": "GOBIZ",
"transactionAt": "2023-05-22T08:23:02Z",
"type": "WEB_PAYMENT",
"status": "SUCCESS",
"region": "MALAYSIA",
"source": "",
"createdAt": "2023-05-22T08:23:02Z",
"updatedAt": "2023-05-22T08:23:11Z"
}
Store
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
id | String | Yes | Store id | |
name | String | No | Store name | |
imageUrl | String | No | Store image url | |
addressLine1 | String | No | Store address line 1 | |
addressLine2 | String | No | Store address line 2 | |
postCode | String | No | Store postal code | |
city | String | No | Store city | |
state | String | No | Store state | |
country | String | No | Store country | |
countryCode | String | No | Store country code of phone number | |
phoneNumber | String | No | Store phone number | |
geoLocation.latitude | Float64 | No | Store latitude | |
geoLocation.longitude | Float64 | No | Store longitude | |
status | String | Store status | ||
createdAt | String | RFC3339 | Store created time | |
updatedAt | String | RFC3339 | Store last updated time |
{
"id": "10946114768247530",
"name": "Utropolis",
"imageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/store.png",
"addressLine1": "UTROPOLIS GLENMARIE, JALAN KONTRAKTOR U1/14, HICOM-GLENMARIE INDUSTRIAL PARK",
"addressLine2": "UTROPOLIS GLENMARIE, JALAN KONTRAKTOR U1/14, HICOM-GLENMARIE INDUSTRIAL PARK",
"postCode": "40150",
"city": "Shah Alam",
"state": "Selangor",
"country": "Malaysia",
"countryCode": "60",
"phoneNumber": "1123621544",
"geoLocation": {
"latitude": 3.091198,
"longitude": 101.5588264
},
"status": "ACTIVE",
"createdAt": "2020-12-18T11:17:51Z",
"updatedAt": "2023-04-07T06:35:57Z"
}
BuyNowPayLater ( BNPL )
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
isBuyNowPayLater | bool | No | Determine wether is buy now pay later transaction | |
installmentMonth | Uint64 | No | How many month selected for BNPL transaction |
{
"isBuyNowPayLater": true,
"installmentMonth": 3
}
Online Banking ( FPX )
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
buyerName | String | No | FPX Buyer Name | |
bankID | String | No | FPX Bank ID |
{
"buyerName": "",
"bankId": "TEST0021"
}
Card Payment
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
cardType.brand | String | No | Card brand | |
cardType.type | String | No | Card type | |
cardType.issuer | String | No | Card issuer | |
cardType.alpha2 | String | ISO3166 | No | Card country in alpha2 code |
cardType.alpha3 | String | ISO3166 | No | Card country in alpha3 code |
cardType.country | String | No | Card country full name | |
provider | String | ENUM("SC","GOBIZ", "PAYDEE") | No | (Internal) Determine from which card provider |
isTokenization | bool | No | Determine payment using token or PAN | |
token | String | No | Token used for payment | |
maskNo | String | Length(4) | No | Masked PAN, last four digits |
inputType | String | ENUM("MAG", "IC", "NFC") | No | Card input type |
referenceId | String | No | Card transaction reference number | |
secondaryReferenceId | String | No | Card transaction invoice number | |
domain | String | No | Online card payment domain |
{
"isTokenization": true,
"token": "8814223001082177022",
"domain": "revenuemonster.my",
"maskNo": "XXXX-XXXX-XXXX-2354"
}
{
"cardType": {
"brand": "VISA",
"type": "CREDIT",
"issuer": "WASHINGTON MUTUAL",
"alpha2": "US",
"alpha3": "USA",
"country": "United States"
},
"provider": "SC",
"maskNo": "XXXX-XXXX-XXXX-2354",
"inputType": "NFC",
"referenceId": "313110000027",
"secondaryReferenceId": "000027"
}
Spending Loyalty
If you're using QRCODE mode when doing payment, you will receive this object in transaction response. So when receipt printing you can print the qrcode
parameters as the qrcode content and customer will able to scan and retrieve the points.
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
code | String | No | Spending loyalty code | |
qrcode | String | No | Spending loyalty qrcode content | |
id | String | No | Spending loyalty id |
{
"id": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIhChVMb3lhbHR5U3BlbmRpbmdSZXdhcmQQ-qf65Pa6p_kV",
"code": "6ebd1a92c03e7a62580eac7b013c97e8",
"qrcode": "http://api.local.rm:8080/qr/4118165203679668885/loyalty/6ebd1a92c03e7a62580eac7b013c97e8"
}
Payment Provider Discount Info
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
salesAmount | Uint64 | No | Original sales amount | |
discountAmount | Uint64 | No | Payment provider discount amount | |
grossAmount | Uint64 | No | Sales amount after discount amount |
{
"grossAmount": 1875,
"salesAmount": 2500,
"discountAmount": 625
}
Membership Discount Info
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
memberId | String | No | Membership Member ID | |
voucherId | String | No | Membership Voucher ID | |
discountAmount | Uint64 | No | Membership Discount Amount |
{
"memberId": "28159426363267580029",
"voucherId": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIhChVMb3lhbHR5U3BlbmRpbmdSZXdhcmQQ-qf65Pa6p_kV",
"discountAmount": 10,
}
(Internal) Inhouse Promotion
Parameter | Type | Validation | Required | Description |
---|---|---|---|---|
amount | Uint64 | No | (Internal) Inhosue promo total amount | |
info[*].label | String | No | (Internal) Inhouse promo info label | |
info[*].uniqueID | String | No | (Internal) Inhouse promo unique id | |
info[*].source | String | No | (Internal) Inhouse promo info source | |
info[*].amount | String | No | (Internal) Inhouse promo info amount |
{
"amount": 25,
"info": [
{
"label": "SMO Campaign",
"amount": 25,
"source": "ALACARTE",
"uniqueID": "ABC-4"
}
]
}
Appendix
Transaction Type
Value | Description |
---|---|
QUICK_PAY | QuickPay transaction |
RETAIL_QRPAY | (Coming-Soon): Offline RetailQR |
BANK_CARD | Terminal card transaction |
WEB_PAYMENT | Web payment checkout |
WEB_MOBILE_PAYMENT | H5/Mobile payment checkout |
MINI_PROGRAM | Miniprogram checkout |
RECURRING_PAYMENT | Recurring payment transaction |
QR_PAY | (Deprecated) Platform Specific QR Payment transaction |
MOBILE_PAYMENT | (Deprecated) Now known as "WEB_MOBILE_PAYMENT" |
Transaction Status
Value | Description |
---|---|
SUCCESS | Success transaction |
FAILED | Failed transaction |
IN_PROCESS | Transaction in process |
FULL_REFUNDED | Transaction fully refunded |
PARTIAL_REFUNDED | Transaction partial refunded |
REVERSED | Transaction reversed, when timeout our system will initiate reverse automatically |
Transaction Method & Region
For online payment checkout you will need to append region name to system method. Example malaysia will be 'MY' and full method name will be 'ALIPAYPLUS_MY'
Method | Region | Description |
---|---|---|
WECHATPAY | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ❌ |
WECHATPAY | CHINA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ❌ |
ALIPAY | CHINA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
ALIPAYPLUS | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
TNG | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
BOOST | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ✅ Retail QRPay: ❌ |
PRESTO | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ✅ Retail QRPay: ❌ |
MAYBANK | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ❌ |
GRABPAY | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
SHOPEEPAY | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ✅ Retail QRPay: ❌ |
ZAPP | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
MCASH | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ✅ Retail QRPay: ❌ |
BINFINITE | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ❌ |
FPX | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
PAYDEE | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
FAVEPAY | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ❌ |
SARAWAKPAY | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ✅ Retail QRPay: ❌ |
GOBIZ | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
ATOME | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
IOUPAY | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
SPLIT | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ❌ Retail QRPay: ❌ |
SENHENGPAY | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
LAZADA | MALAYSIA | Quick Pay: ❌ Web Payment: ❌ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ❌ Retail QRPay: ❌ |
NETSPAY | SINGAPORE | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ✅ Retail QRPay: ✅ |
SETEL | MALAYSIA | Quick Pay: ✅ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
TRUEMONEY | MALAYSIA | Quick Pay: ✅ Web Payment: ❌ Web Mobile/Mobile Payment: ❌ Checkout By URL: ❌ Checkout By QRCode: ❌ Retail QRPay: ❌ |
HOOLAH | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |
GOPAYZ | MALAYSIA | Quick Pay: ❌ Web Payment: ✅ Web Mobile/Mobile Payment: ✅ Checkout By URL: ✅ Checkout By QRCode: ❌ Retail QRPay: ❌ |