Skip to main content

Voucher

Issue, redeem, and manage vouchers — statuses, marketplace flow, and webhook callbacks.


Reference guide for RM's voucher system. Vouchers let merchants reward customers with free gifts, cashback, or discounts. This page documents voucher statuses, the marketplace flow, and webhook callback behavior.

When to Use

Refer to this page when:

  • Issuing vouchers via the RM Merchant App, Terminal, or API
  • Implementing a webhook to receive voucher events
  • Sharing vouchers with another merchant via the Voucher Marketplace
note

Voucher is for users to collect free gifts, cashback, and discount offers.

Issue Voucher Using RM Merchant App/Terminal


VALIDSTRING

Voucher is still valid, waiting for user to redeem.

Example: status : "VALID"

ISSUESTRING

Click “Issue” button from RM Merchant App/Terminal.

Example: status : "ISSUE"

REDEEMEDSTRING

Optional: User scan with RM Loyalty Program, and this voucher can now be viewed under “My Rewards”

Example: status : "REDEEMED"

VOIDSTRING

User used voucher at merchant shop. Merchant has scanned this voucher.

Example: status : "VOID"

EXPIREDSTRING

Voucher has reached its expiry date. It cannot be used anymore

Example: status : "EXPIRED"


Voucher Marketplace

note

Send voucher to other merchant

VALIDSTRING

Voucher is still valid, waiting for user to redeem.

Example: status : "VALID"

ISSUESTRING

Click “Issue” button from RM Merchant App/Terminal.

Example: status : "ISSUE"

REDEEMEDSTRING

Optional: User scan with RM Loyalty Program, and this voucher can now be viewed under “My Rewards”

Example: status : "REDEEMED"

VOIDSTRING

User used voucher at merchant shop. Merchant has scanned this voucher.

Example: status : "VOID"

EXPIREDSTRING

Voucher has reached its expiry date. It cannot be used anymore

Example: status : "EXPIRED"

MARKET_PLACESTRING

Send/Share voucher to other merchant

Example: status : "MARKET_PLACE"


Sample Response

note
  • Frequency of callback: 5 times, interval of 1 min each
  • Callback will stop when RM server receives HTTP response of 200-OK
  • In case of unreachable server callback, please proceed to call Get Voucher By Code endpoint.
Example Response
JSON
1{
2"item": {
3 "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW",
4 "label": "oijfge",
5 "redemptionRuleKey": null,
6 "voucherBatchKey": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg",
7 "type": "GIFT",
8 "amount": 0,
9 "discountRate": 0,
10 "minimumSpendAmount": 0,
11 "origin": "SYSTEM",
12 "imageUrl": "",
13 "memberProfile": null,
14 "redemptionRule": null,
15 "assignedAt": "2018-09-28T17:15:17Z",
16 "payload": null,
17 "qrUrl": "http://api.revenuemonster.my/qr/4118165203679668885/voucher/NAklEfbVdV",
18 "code": "NAklEfbVdV",
19 "isShipping": false,
20 "address": null,
21 "expiry": {
22 "type": "DYNAMIC",
23 "day": 100,
24 "expiredAt": "2019-01-06T17:19:35Z"
25 },
26 "usedAt": "2018-09-28T17:19:44.686549737Z",
27 "redeemedAt": "2018-09-28T17:19:35Z",
28 "isDeviceRedeem": false,
29 "status": "VOID",
30 "createdAt": "2018-06-21T11:08:00Z",
31 "updatedAt": "2018-09-28T17:19:44.686549977Z"
32},
33"code": "SUCCESS"
34}