Skip to main content

Terminal Integration

Terminal Integration allow businesses to process their orders using systems and process transactions more efficiency using RM Terminal to improve customer experience by allowing them to pay using their preferred methods such as credit cards, debit cards and e-wallets. The most common use cases integration are for POS & Self Service Kiosk systems.

There's two type of API Server and Event, Event will send the action to the terminal from our server while Server will only process at our server and response to you directly. So Event may take some time to process and also can fail when the terminal not connected to the server.

note

This integration can be applicable on any system as long as you're using our terminal for payment acceptance then you can integrate this to trigger the payment with your own machine / system.

Event: Quick Pay

Information

If your hardware device have it's own scanner to scan the payment qrcode, you will not needed to use our terminal to accept payment while you can proceed the OpenAPI QuickPay instead to have better experience and performance.

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

Request Parameters

ParameterTypeValidationRequiredDescription
terminalIdStringYesTerminal ID
typeStringENUM("E-WALLET")YesPayment type
receiptTypeUintENUM(1,2,3)Yes1 : Print Merchant Copy and Customer copy
2 : Print Customer copy
3 : Do not print Merchant Copy & Customer Copy
cameraTypeStringENUM("FRONT", "BACK")YesFor "E-WALLET" only, use back or front camera to scan QR
order.idStringLength(24)YesOrder ID
order.titleStringLength(32)YesOrder Title
order.currencyTypeStringENUM("MYR")YesOrder Currency Type ( currently supported MYR only)
order.amountUint64YesOrder Amount
order.detailStringLength(600)NoOrder Detail
order.additionalDataStringLength(128)NoOrder Additional Data
Example Request
{
"terminalId": "1554193032595276913",
"type": "E-WALLET",
"receiptType": 3,
"cameraType": "FRONT",
"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

ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )

Event: Card Payment

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

Request Parameters

ParameterTypeValidationRequiredDescription
terminalIdStringYesTerminal ID
typeStringENUM("CARD")YesPayment type
receiptTypeUintENUM(1,2,3)Yes1 : Print Merchant Copy and Customer copy
2 : Print Customer copy
3 : Do not print Merchant Copy & Customer Copy
cameraTypeStringENUM("FRONT", "BACK")YesFor "E-WALLET" only, use back or front camera to scan QR
order.idStringLength(24)YesOrder ID
order.titleStringLength(32)YesOrder Title
order.currencyTypeStringENUM("MYR")YesOrder Currency Type ( currently supported MYR only)
order.amountUint64YesOrder Amount
order.detailStringLength(600)NoOrder Detail
order.additionalDataStringLength(128)NoOrder Additional Data
Example Request
{
"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

ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )

Event: Card Refund

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

Request Parameters

ParameterTypeValidationRequiredDescription
terminalIdStringYesTerminal ID
typeStringENUM("REFUND")YesEvent Type
data.transactionIdStringStringYesTransaction ID
data.receiptTypeUintENUM(1,2,3)1 : Print Merchant Copy and Customer copy
2 : Print Customer copy
3 : Do not print Merchant Copy & Customer Copy
data.reasonString
data.emailStringYesEmail match with the refund pin
data.pinStringLENGTH(6)YesRefund Pin
Example Request
{
"terminalId": "1582107209454501456",
"type": "REFUND",
"data": {
"transactionId": "210215083727100327507906",
"receiptType": 3,
"reason": "Testing Refund",
"email": "oska.ng@revenuemonster.my",
"pin": "321123"
}
}

Response Parameters

ParameterTypeValidationDescription
itemJSONTransaction ObjectTransaction response
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )

Event: Card Settlement

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

Request Parameters

ParameterTypeValidationRequiredDescription
terminalIdStringYesTerminal ID
typeStringENUM("SETTLEMENT")YesEvent Type
data.receiptTypeUintENUM(1,2,3)1 : Print Merchant Copy and Customer copy
2 : Print Customer copy
3 : Do not print Merchant Copy & Customer Copy
Example Request
{
"terminalId": "1554193032595276913",
"type": "SETTLEMENT",
"data": {
"receiptType": 3
}
}

Response Parameters

ParameterTypeValidationDescription
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )
summary.batchNoStringSequence no. of the terminal settlement
summary.currencyTypeStringENUM("MYR")Settlement Currency Type ( currently supported MYR only)
summary.noOfTransactionsUint64Count of settled transactions
summary.settlementAtStringRFC3339Date and time of the settlement
summary.totalSalesAmountUint64Total sales amount in cents
transactions[*].amountUint64Transactiona amount in cents
transactions[*].currencyTypeUint64ENUM("MYR")Transaction Currency Type ( currently supported MYR only)
transactions[*].transactionAtStringRFC3339Date and time of the transaction
transactions[*].transactionIdStringTransaction ID
transactions[*].typeStringENUM("SALE","VOID")Transaction type

Event: Cancel Event

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

Request Parameters

ParameterTypeValidationRequiredDescription
terminalIdStringYesTerminal ID
typeStringENUM("CANCEL")YesEvent Type
Example Request
{
"terminalId": "1582107209454501456",
"type": "CANCEL"
}

Response Parameters

ParameterTypeValidationDescription
codeStringENUM("SUCCESS")Determine request have success
error.codeStringError code
error.messageStringError message
error.debugStringDebug message ( sandbox only )

Server: Payment Refund

caution

This applicable to e-wallet transactions only, for card payment will have to perform refund on terminal via Event API.

Reference: Cancel Transaction > Reverse

Server: Payment Reverse

caution

This applicable to e-wallet transactions only, for card payment will have to perform refund on terminal via Event API.

Reference: Cancel Transaction > Reverse