Skip to main content

POS Terminal Integration

Method : POST
URL : https://open.revenuemonster.my/v3/payment/terminal/quickpay
Sandbox URL : https://sb-open.revenuemonster.my/v3/payment/terminal/quickpay

note

Integrate RM Terminal with POS System or Kiosk machine (using local callback). This endpoint only supports payment initiation. For other methods (refund/reverse/settlement), please follow back refund , reverse , settlement API standard steps accordingly.

Request Parameters

ParameterTypeRequiredDescriptionExample
terminalIdStringYesTerminal ID"1582107209454501456"
typeStringYese-wallet "E-WALLET" or Bank card "CARD" payment"E-WALLET"
receiptTypeUintYes1 : Print Merchant Copy and Customer copy
2 : Print Customer copy
3 : Do not print Merchant Copy & Customer Copy
1
cameraTypeStringYesFor "E-WALLET" only, use back or front camera to scan QR"FRONT"
orderStringYes(Refer order ){}

Order object (order):
ParameterTypeRequiredDescriptionExample
amountUintYesAmount of order in cent (min RM 0.10 or amount: 10)100
currencyTypeStringYesCurrency notation (currently only support MYR)"MYR"
idStringYesOrder ID (from Merchant), max: 24"123443333304"
titleStringYesOrder title, max: 32"title"
detailsStringYesOrder details, max: 600"desc"
additionalDataStringYesFor merchant's remark, max 128"API Test"

Example Request

curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/terminal/quickpay" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiYXBpX2NsaWVudEBFaGNLQzA5QmRYUm9RMnhwWlc1MEVNV1Z4NF9UbE5MZEZRIl0sImV4cCI6MTU4NjMzNzc1OCwiaWF0IjoxNTgzNzQ1NzU4LCJpc3MiOiJodHRwczovL3NiLW9hdXRoLnJldmVudWVtb25zdGVyLm15IiwianRpIjoiRWh3S0VFOUJkWFJvUVdOalpYTnpWRzlyWlc0UXlKSG9qb2VNcHYwViIsIm5iZiI6MTU4Mzc0NTc1OCwic3ViIjoiRWhRS0NFMWxjbU5vWVc1MEVKWFZ6ZDN3cmFxVE9SSVFDZ1JWYzJWeUVJeUpxSXp2eU1QVmNRIn0.FfBkCb7fjCKJdcy_DS06dKgEtcAvukPio0HyDRtH2UovhZsLFSqD_8oo21u094XSor_mqFg4hqXmLaHjX-h92Wz3kHl7OwiKQb16x8Rnl5OdyPHtMqIZqP8ab8Ch0RHEZ33VchK1zBTnG6Xosrb1B44tWqJ0_kdTtbRZN4rG821C8i4sb6sx8GaxgluJ5q7CEifMTBFJam_Jub9LfAfukq8YyIl0Bykp7B3A_su2QoELL9L_ElJdV9FuwFPHcKr9bxLvVSrEdyrFg7IBm_tJHxSl8gTh3j4b6lWZrBCfMSLraXaYRNzz1ddbVnwYD4aRuSyRmQeMYTUj0cInktnKUA" \
--header "X-Signature: sha256 GohuT2QTUXJV3MZh2OoEE9qW9wcfakOU9iVLmkTjM12NQuV6IcWMRQDz9NdxAOVIrh5MssfYCLDlafb2illXxgQMpmZkZ38NT6NQsMeMfGbHBS1Kc+BUtU7o1TMLUzk55J1tA6f0Z95oEuBlCeLm6VsgCG30wFm5YmgssJ0weIwMcW355r2sFl7QcKOuRqynoGtmmr/aGfOk1HjiFLoFzSd38O7rRjwGrekYwuYUD1N/Wp5GFXRjtaaPkzAERPbXEmnh/taLME8VeAhky6dAVGZE6gHKnP5WvvVjUE+KLtj3D32YIHzxhzEW9x3JEObqgvm5Q2oRZNxoh6/MvqwkVA==" \
--header "X-Nonce-Str: bfdgdjgtjhmnbmmjmdfdghghffj" \
--header "X-Timestamp: 1546850694" \
--data-raw {
"terminalId": "1554193032595276913",
"type": "CARD",
"receiptType": 3,
"cameraType": "BACK",
"order": {
"amount": 10,
"currencyType": "MYR",
"id": "387153091916665362292147",
"title": "title",
"detail": "desc",
"additionalData": "010100 Pay parking ticket\n30/07/20 07:13 - 30/07/20 18:40\nLength of stay: 0 Days. 11:35\n02993777014011020212260030??"
}
}

Response Parameters

ParameterTypeDescriptionExample
balanceAmountUintAmount of order in cent10
createdAtDateTimeCreation date time of store"2020-02-13T07:08:56Z"
currencyTypeStringCurrency notation (currently only support MYR)"MYR"
extraInfoObjectfor CARD payment (Refer to extraInfo){}
methodStringRM currently supported method"CARD"
orderString(Refer order ){}
payeeObjectfor E-WALLET payment (Refer to payee){}
platformStringOnly "TERMINAL""TERMINAL"
referenceIdStringTransaction ID (from server)"00000000000791320002737201919250001"
regionStringRegion of wallet"MALAYSIA"
statusStringStatus returned from WeChat server"SUCCESS"
storeObject(Refer to store){}
transactionAtDateTimeTransaction date time of store"2020-10-25T04:35:22Z"
transactionIdDateTimeTransaction ID generated from Revenue Monster."200213070856100322408442"
typeString"QUICKPAY" or "BANK_CARD""BANK_CARD"
updatedAtDateTimeLast update date time of store"2020-02-13T07:08:56Z"

Extra Info object (extraInfo):
ParameterTypeRequiredDescriptionExample
cardObjectYesObject of card Info(Refer to explanation below)

Card object (card):
ParameterTypeRequiredDescriptionExample
inputTypeStringYesType of card payment"NFC"
maskNoStringYesMasked card no"XXXX-XXXX-XXXX-9081"
referenceIdStringYesCard payment ref on server"104974001774"
secondaryReferenceIdStringYesCard payment ref on terminal"001774"

Order object (order):
ParameterTypeRequiredDescriptionExample
amountUintYesAmount of order in cent (min RM 0.10 or amount: 10)10
idStringYesOrder ID (from Merchant), max: 24"201919250001"
titleStringYesOrder title, max: 32"SALE"
detailsStringYesOrder details, max: 600"XXXX-XXXX-XXXX-3121"
additionalDataStringYesFor merchant's remark, max 128"000008"

Payee object (payee):
ParameterTypeRequiredDescriptionExample
userIdStringYesPayee account id"1000000806040489"

Store object (store):
ParameterTypeDescriptionExample
idStringStore ID"6170506694335521334"
nameStringStore Name"REVENUE MONSTER"
addressLine1StringStore Address 1"B-5-30, 5th Floor, Block Bougainvillea,"
addressLine2StringStore Address 2"PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
postCodeStringPostcode of store"47400"
cityStringCity of store"Petaling Jaya"
stateStringState of store"Selangor"
countryStringCountry of store"Malaysia"
countryCodeStringCountry code of store contact number"60"
phoneNumberStringPhone number of store"377334080"
geoLocationObject of [Float]Geo Location (latitude and longtitude) of store{"latitude": 3.1349857, "longtitude": 101.6136659 }
statusStringCurrent status of store"ACTIVE"
createdAtDateTimeCreation date time of store"2018-02-12T08:53:13Z"
updatedAtDateTimeLast update date time of store"2018-02-12T08:53:13Z"

Example Response

{
"balanceAmount": 10,
"createdAt": "2021-02-17T18:39:30Z",
"currencyType": "MYR",
"extraInfo": {
"card": {
"inputType": "NFC",
"maskNo": "XXXX-XXXX-XXXX-9081",
"referenceId": "104983001779",
"secondaryReferenceId": "001779"
}
},
"method": "CARD",
"order": {
"additionalData": "010100 Pay parking ticket\n30/07/20 07:13 - 30/07/20 18:40\nLength of stay: 0 Days. 11:35\n02993777014011020212260030??",
"amount": 10,
"detail": "desc",
"id": "387153091916665362292147",
"title": "title"
},
"payee": {
"userId": "1000000806040489"
},
"platform": "TERMINAL",
"referenceId": "00000000000550520003236104983001779",
"region": "MALAYSIA",
"status": "SUCCESS",
"store": {
"addressLine1": "UTROPOLIS MARKETPLACE, JALAN KONTRAKTOR U1/14, SHAH ALAM",
"addressLine2": "UTROPOLIS MARKETPLACE, JALAN KONTRAKTOR U1/14, SHAH ALAM",
"city": "Shah Alam",
"country": "Malaysia",
"countryCode": "60",
"createdAt": "2021-01-08T10:09:23Z",
"geoLocation": {
"latitude": 3.0901139,
"longitude": 101.55987
},
"id": "1601912947341252990",
"name": "Mountain Food - Utropolis",
"phoneNumber": "1123621544",
"postCode": "40150",
"state": "Selangor",
"status": "ACTIVE",
"updatedAt": "2021-01-08T10:09:23Z"
},
"transactionAt": "2021-02-18T02:39:35+08:00",
"transactionId": "210217183930100325434403",
"type": "BANK_CARD",
"updatedAt": "2021-02-17T18:39:37Z"
}