Terminal Integration
/v3/payment/terminal/quickpayWhat is this?
Terminal Integration lets businesses process orders using an RM Terminal to accept credit cards, debit cards, and e-wallets. Common use cases are for POS and Self-Service Kiosk systems.
There are two types of integration:
- Event — sends an action to the terminal from the RM server. May take time and can fail if the terminal is not connected.
- Server — processes directly on the RM server and returns a response immediately.
This integration works with any system as long as you are using an RM Terminal for payment acceptance.
How to Use
Step 1: Identify the Terminal
Get the terminalId of the RM Terminal you want to use.
Step 2: Choose the Event Type
Select the appropriate event based on what you want to do:
- Quick Pay — accept e-wallet QR payments
- Card Payment — accept card payments
- Card Refund — refund a card transaction
- Card Settlement — settle terminal transactions
- Cancel Event — cancel an ongoing event
Step 3: Make the POST Request
Send the event request with the terminalId, type, and order details.
Step 4: Handle the Response
Check the code field. For Event-type requests, a "SUCCESS" response confirms the event was sent — not that it completed on the terminal.
Event: Quick Pay
If your hardware device has its own scanner to scan payment QR codes, use the OpenAPI QuickPay instead for better experience and performance.
Request Parameters
RM Terminal ID
Payment type. Set to "E-WALLET".
Receipt setting: 1 = Print both merchant and customer copy, 2 = Print customer copy only, 3 = Do not print
Use "FRONT" or "BACK" camera to scan QR code (for E-WALLET only)
Order ID
Order title
Currency type (currently supported MYR only)
Order amount
Order detail
Order additional data
1{2 "terminalId": "1554193032595276913",3 "type": "E-WALLET",4 "receiptType": 3,5 "cameraType": "FRONT",6 "order": {7 "amount": 10,8 "currencyType": "MYR",9 "id": "387153091916665362292147",10 "title": "title",11 "detail": "desc",12 "additionalData": "010100 Pay parking ticket"13 }14}
Response Parameters
Transaction response object
"SUCCESS" if the event was sent, otherwise an error code.
Error code if the request failed.
Error message if the request failed.
Debug message (sandbox only).
Event: Card Payment
Request Parameters
RM Terminal ID
Payment type. Set to "CARD".
Receipt setting: 1 = Print both copies, 2 = Print customer copy only, 3 = Do not print
Order ID
Order title
Currency type (currently supported MYR only)
Order amount
Order detail
Order additional data
1{2 "terminalId": "1554193032595276913",3 "type": "CARD",4 "receiptType": 3,5 "order": {6 "amount": 10,7 "currencyType": "MYR",8 "id": "387153091916665362292147",9 "title": "title",10 "detail": "desc",11 "additionalData": "010100 Pay parking ticket"12 }13}
Response Parameters
Transaction response object
"SUCCESS" if the event was sent, otherwise an error code.
Error code if the request failed.
Error message if the request failed.
Debug message (sandbox only).
Event: Card Refund
Request Parameters
RM Terminal ID
Event type. Set to "REFUND".
Transaction ID to refund
Receipt setting: 1 = Print both copies, 2 = Print customer copy only, 3 = Do not print
Reason for the refund
Email address matching the refund PIN
Refund PIN
1{2 "terminalId": "1582107209454501456",3 "type": "REFUND",4 "data": {5 "transactionId": "210215083727100327507906",6 "receiptType": 3,7 "reason": "Testing Refund",8 "email": "oska.ng@revenuemonster.my",9 "pin": "321123"10 }11}
Response Parameters
Transaction response object
"SUCCESS" if the event was sent, otherwise an error code.
Error code if the request failed.
Error message if the request failed.
Debug message (sandbox only).
Event: Card Settlement
Request Parameters
RM Terminal ID
Event type. Set to "SETTLEMENT".
Receipt setting: 1 = Print both copies, 2 = Print customer copy only, 3 = Do not print
1{2 "terminalId": "1554193032595276913",3 "type": "SETTLEMENT",4 "data": {5 "receiptType": 36 }7}
Response Parameters
"SUCCESS" if the event was sent, otherwise an error code.
Error code if the request failed.
Error message if the request failed.
Debug message (sandbox only).
Terminal settlement sequence number
Settlement currency type (currently supported MYR only)
Count of settled transactions
Date and time of settlement
Total sales amount in cents
Transaction amount in cents
Transaction currency type
Transaction date and time
Transaction ID
Transaction type
Event: Cancel Event
Request Parameters
RM Terminal ID
Event type. Set to "CANCEL".
1{2 "terminalId": "1582107209454501456",3 "type": "CANCEL"4}
Response Parameters
"SUCCESS" if the event was sent, otherwise an error code.
Error code if the request failed.
Error message if the request failed.
Debug message (sandbox only).
Server: Payment Refund
This applies to e-wallet transactions only. For card payments, perform the refund on the terminal via the Event API.
Server: Payment Reverse
This applies to e-wallet transactions only. For card payments, perform the reverse on the terminal via the Event API.