NAV Navbar
cURL
  • RM - Open API
  • Quick Start & SDK
  • Create Developer Application
  • Generate Access Token
  • Signature Algorithm
  • Payment-Quickpay QR
  • Payment-Transaction QR
  • Payment-Web/App Checkout
  • Merchant
  • Store
  • User
  • Loyalty Point
  • Loyalty Members
  • Voucher
  • Push Notification
  • Tool
  • Appendix 1: Error Codes
  • SDK Beta
  • WeChat OA (Beta)
  • Social Media
  • RM - Open API

    Revenue Monster (hereafter mentioned as RM) Open APIs allow developers to manage payments, users, stores, loyalty, and social media through RESTful API or SDK. All RM products have API for most of its core functionalities. Start with our comprehensive API to reimagine your business.

    API Environment Summary

    There are two services for our API (OAuth and Open API),both for sandbox and production environment. OAuth server is for authentication, Open API server is for core functions. You may test with sandbox endpoints before going production. You could self-signup for sandbox access and contact sandbox@revenuemonster.my to activate your sandbox account.

    Sandbox Environment: -
    https://sb-oauth.revenuemonster.my
    https://sb-open.revenuemonster.my

    Production Environment: -
    https://oauth.revenuemonster.my
    https://open.revenuemonster.my

    Before You Start

    Go to our merchant portal in Production Merchant Portal or Sandbox Merchant Portal to sign up as merchant.

    Submit all required documents as shown in our merchant portal and get approval from our admin. Should you need more assistance, please contact us at bd@revenuemonster.my.

    Kindly go through Signature Algorithm to see our signing mechanism before proceed to call payment API endpoint(s). Payment API have higher security requirements than the rest.

    Scenario / Business Use Case

    For Merchant that using RM API to intergrate their E-Commerce platform :-

    Web Payment Mobile Payment Mobile Browser

    For Merchant that using Shop / Cafe :-

    Transaction QR

    QuickPay

    Intergrate for Vending Machine :-

    Transaction QR

    Intergrate Supermarket

    QuickPay ( To make payments with Quick Pay. Merchant to scan user's wallet.

    Quick Start & SDK

    *Note: The following steps document the RESTful API. For language specific SDK(s), please refer to the SDK section. need to change URL

    Create a developer application in RM merchant portal for your developer project. The application settings help you to manage API credentials, provide callback endpoints and with debugging utilties.

    Once you have your API credentials, follow our Authentication process to exchange access token and refresh token for subsequent API calls.

    Payment operations require higher security with Signature, all payment endpoints require the requests to be signed.

    Use access token to call RESTful API endpoints. (Signature is optional for non-payment endpoints.)

    Create Developer Application

    -Step 1 : Create New Application

    image

    image

    -Step 2 : Obtain clientID and cilientSecret

    image

    image

    -Step 3 : Product Settings

    image

    image

    image

    NOTES ON RSA KEYS

    Optional Tool: Signature Debugger

    image

    Generate Access Token

    This endpoint is to obtain access token for subsequent calls.

    What is refresh token? Refresh token is used to get new access token when:

    In case you lost refresh token or do not want to deal with refresh token, you may opt to get new access token/refresh token using client credentials again. But this is not a suggested practice. (You don't want your clientid/clientscrect always exposed in network traffic. That is why you shall use refresh token.)

    Recommended practice is to run a scheduled task to get the refresh token refreshed before 24 years expiry. And store it using singleton design pattern for all subsequent requests to get access token. (For example, static variable in most OOP languages like C# or JAVA). Another fail-safe mechanism is that if a invalid access token error has occur, use clientid/clientsecrect again to get new access token and refresh token and store the access token/refresh token for future use.

    Client Credentials

    Method : POST

    https://sb-oauth.revenuemonster.my/v1/token (SandBox)

    https://oauth.revenuemonster.my/v1/token (Production)

    Example Request

    curl --location --request POST "https://sb-oauth.revenuemonster.my/v1/token" \
      --header "Content-Type: application/json" \
      --header "Authorization: Basic NjY5MTY1ODE1MDQ5NjMyNzA1MTptNzFwc3dibVFWQzBpTXNHc000TEZMSUl4czZsWEV6eA==" \
      --data "{
      \"grantType\": \"client_credentials\"
    }"
    

    Process flow for Grant Type: client_credentials

    This is for the scenario that merchant's trusted developer is provided with clientid and clientsecret.

    1. To start with, get OAuth 2.0 client credentials (client_id & client_secret) from your RM Merchant Portal. Then request an access token from RM Authorisation Server, you will get a response consists of access token & refresh token. Use the access token to call Revenue Monster API that you want to access. Refresh token can be stored to get new access tokens.

    2. Get an access token from RM Authorization Server Access token is required for subsequent request to our resource server(s) to get protected resources.

    Example Response

    {
      "accessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiYXBpX2NsaWVudEBFaGNLQzA5QmRYUm9RMnhwWlc1MEVJbmVpOW5mbE9DN0ZRIl0sImV4cCI6MTU1NjQxNjA4MSwiaWF0IjoxNTUzODI0MDgxLCJpc3MiOiJodHRwczovL3NiLW9hdXRoLnJldmVudWVtb25zdGVyLm15IiwianRpIjoiRWh3S0VFOUJkWFJvUVdOalpYTnpWRzlyWlc0UW92Mk1pOUxZa3NnViIsIm5iZiI6MTU1MzgyNDA4MSwic3ViIjoiRWhRS0NFMWxjbU5vWVc1MEVKWFZ6ZDN3cmFxVE9SSVFDZ1JWYzJWeUVJeUpxSXp2eU1QVmNRIn0.NpnDCdRfjlzJpLMU_cHY4jmyXMW63wpyh99vsu3CIt1jyaQlD34icxfh5MTMytJ7Irtp--K9uy8BuRlt5PM7ufqBVCFOEfC8uXs89DJFx1z2qB2r4QwGreQ7GmG2qQhTPkRtz4al-kCgifUkPQkf1GYS7Ly8VNXGTNMtWT4Ko4juEs8sT-D7ya2zgs81RTxZw8pFmwp78cCZviTZ5zGuVYjZ73EQu_N0GAMaj0D18HdiIRzaSRZh-rIN3z6Lfy_wpvtGNYRpMasSBYiIKOLcExtU8tPiRET39awBFaT7qPKslse7NXSdNNqqwDYIC0-WZKn7rzmIXbtVQRllQn0ing",
      "tokenType": "Bearer",
      "expiresIn": 393612,
      "refreshToken": "PScHXFQHCaAOPrPLNtzktDyRWzrjNhgMLcqZsVRBuGfcvrjDjaMQZSFIHXOGwmnGOSWyrfPncvivwCloQCEToDBGmZhRMufFTDzKpZOzEWsZMDvxYrvDARhrHIaDDkWA",
      "refreshTokenExpiresIn": 243113245
    }
    

    -Step 1:

    Prepare Request Header:

    Parameter Type Required Description Example
    ClientID String Yes Client ID or AppID as obtained from RM Merchant Portal. 3208919753194101125
    ClientSecret String Yes Client secret or AppSecret as obtained from RM Merchant Portal. mglve4W3UhPSGOV7gnwoYKyvbRCe83zZ

    -Step 2:

    Encode the parameters from Step 1 in Base 64 format.

    Structure:
    clientId:clientSecret

    Eg:
    Before Base64 encoding:
    3675930941412424316:wmn7FUauXHdkoYa9182kCMkjGnNJVgin

    After Base64 encoding:
    MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    -Step 3:

    Put the Base64 encoded clientId and clientSecret in Headers:

    Content-Type: application/json
    Authorization: Basic MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    More info refer: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication

    Request Parameters:

    Parameter Type Required Description Example
    grantType String Yes Only support client credentials or authorisation code client_credentials

    Response Parameters :

    Parameter Type Description Example
    accessToken String Required for subsequent request(s) Access Token
    tokenType String We only support “Bearer” type Bearer
    expiresIn String Token expiry, in seconds format. “7200” means 7,200 seconds or 2 hour 7200
    refreshToken String Required for getting new access token after expiry Refresh token string

    HEADERS

    Content-Type     application/json

    AuthorizationBasic  
    OTExMjU1NzcyODk3Njg0NjYyMjpUQVBPaWZ2UHl1T3FhYkVZV0hwQ3JSaU1EZE1UTWdGeg==

    BODY

    { "grantType": "client_credentials" }

    Authorization Code

    Method : POST

    https://sb-oauth.revenuemonster.my/v1/token

    Process flow for Grant Type: auth_code This is for the scenario which a partner wants to request permission to develop an application of a merchant.

    For authorization code, only client_id is needed. You are required to pass in following request parameters as Query String.

    1. Get Authorization code from RM Merchant Portal

    Request Parameters :

    Parameter Type Required Description Example
    responseType String Yes Only support authorization code code
    clientId String Yes Client ID or AppID as obtained from RM Merchant Portal. 3675930941412424316
    redirectUri String Yes Specify your desired redirect Uri after request successful. This Uri must be EXACTLY the same as the one entered in RM Merchant Portal https://www.google.com
    scope String Yes Scope of authorization granted to user, to perform action(s) when calling other API endpoints. (Currently only support manage_payment, get_merchant_profile, get_user_profile, manage_store). Separated by comma(s) without space. manage_payment
    state String No Optional field for user reference, will be passed back in response Anything

    Response Parameters

    Parameter Type Description Example
    code String Required for subsequent request(s) Random string
    state String Optional field for user reference Anything

    Example Request URL :
    https://sb-oauth.revenuemonster.my/authorize?responseType=code&clientId=3675930941412424316&redirectUri= https://www.google.com&scope=manage_payment& state=123456

    image

    Example Response URL :
    https://www.google.com/?code=iEWqJsA5KVEsWF11xTphDIx8vbUqomsiW2vT4KClOFaVqiGh517 dDCfgPlHlqZUeP5atf0SnwiMO8P2X06md8Muv4nEWRW9nro6a5ef0M1jD7k1EFOh9f PV7Jvoe7wIRoVY6JYCSzHuWItQ3Un9J137smxcdSkZ8GKs14vDmREtwFsn8a0SSKBvg fjXEJGrWnCZaCOpEhXPDNzIfo71n0p8p38d9mUyNqxYpQ8UzlPpfAKEr0fiGIF Tf6RakxUp&state=123456

    Get an access token from RM Authorization Server

    Parameter Type Required Description Example
    clientId String Yes Client ID or AppID as obtained from RM Merchant Portal. 3208919753194101125
    clientSecret String Yes Client secret or AppSecret as obtained from RM Merchant Portal. mglve4W3UhPSGOV7gnwoYKyvbRCe83zZ

    Example Request

    curl --location --request POST "https://sb-oauth.revenuemonster.my/v1/token" \
      --header "Content-Type: application/json" \
      --header "Authorization: Basic NjY5MTY1ODE1MDQ5NjMyNzA1MTptNzFwc3dibVFWQzBpTXNHc000TEZMSUl4czZsWEV6eA==" \
      --data "{
      \"grantType\": \"authorization_code\",
      \"code\": \"kDHVY8IrbUU5nAAaZyz5WxFqFEh2LOx4Qqom7chiu1bmCrAE6fWTSKm5O39NwKyLZdHdZtlrQc9idG2o42P10WOMibH06r0XEWLCaPfkQgE9X7VcihAVXTxOlJxpLW9kTydaaSEuz5tIlyVdluEwXx8ck2plRzbezf3vFex32Lic84cjxh8yrMEM4sTo9AdAOUBvBavZpkB2ZkTIy0LdPY0En0ofsm4JmbWxifCsNcuMUYNKGBmDvNatvQzQtGI\",
      \"redirectUri\": \"https://revenuemonster.my\"
    }"
    

    Structure:
    clientId:clientSecret

    Before encoding using Base64 :
    3675930941412424316:wmn7FUauXHdkoYa9182kCMkjGnNJVgin

    Eg encoding using Base64 :
    MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    Example Response

    {
      "accessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiY2xpZW50QEVoY0tDMDlCZFhSb1EyeHBaVzUwRUl1cnVkV2s5T0x1WEEiXSwiZXhwIjoxNTIzNDYwNDc3LCJpYXQiOjE1MjM0NTMyNzcsImlzcyI6Imh0dHA6Ly8xOTIuMTY4LjAuMTk1OjgwODIiLCJqdGkiOiJFaHdLRUU5QmRYUm9RV05qWlhOelZHOXJaVzRROF9iMDJJYlNrcUFMIiwibmJmIjoxNTIzNDUzMjc3LCJzdWIiOiJFaFFLQ0UxbGNtTm9ZVzUwRUkzZF9vTDd3dXUzV0JJUUNnUlZjMlZ5RUl5dmctV2Q3Y3F0S1EifQ.Cqa4gWIApb8yL3zvY8-PDgrVUV9cli3MrLxFcE4vkXi1PIfczK6A3B9GhTIQ6fJJizlbkmHgTKk7VIVFfWPPSgGOR3_FcKPBSd3BwlIKHVL2U4bHOVFdNy81gusZJ_tEXJIL86wEhcZs_5XtAIBcqGHgATjvQIwGVqXt3gqhsu8kGBfy7MGo3DdDdcioQE8lisJJ9JNVzzXzxG2iWJBWG3un9suEuADIGOkGkirdgjbd5Oxbzi4Jrxfq5JSwqn7DwH_jkOqg8kqvNtJ5yUU0W1Z9NYFn4eq8i67xuvo6tmqICsihelARPbZ_qqA85Ovlm8EHpaEYOj_P4iugWOIFeg",
      "tokenType": "Bearer",
      "expiresIn": 7200,
      "refreshToken": "kgy2b68e1JYpQjZhriwQM0j7pJ35PIfeCQEnK3PDcKtA0x0IgvmBucxmSpJVsDYYJ2GyMCHLcBbfHP6rGm32T1rQuGBvHl8mh539HJmEk4geRE1eMmKh79SwhsN0C3F83ahuNbcEIG8WxFmaRLozK0vf5XHmHy1610hcUNFqUhhT7Dyl33DcqO53DohZ7RXAINmoVMpwiNlFURE0KzVzjmhW5jt6IiTkbcpCUAKPiRtaSI7GzKWoBHnPl8W6jWA4"
    }
    

    Content-Type: application/json
    Authorization: Basic MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    (More info refer: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication)

    Request Parameters:

    Parameter Type Required Description Example
    grantType String Yes Only support client credentials or authorisation code authorization_code
    code String Yes Code obtained from query string as described in previous steps. Random String
    redirectUri String Yes Must be EXACTLY the same as described in previous steps. https://www.google.com

    Response Parameters:

    Parameter Type Description Example
    accessToken String Required for subsequent request(s) Access Token
    tokenType String We only support “Bearer” type Bearer
    expiresIn String Token expiry, in seconds format. “7200” means 7,200 seconds or 2 hour 7200
    refreshToken String Required for getting new access token after expiry Refresh token string

    Refresh Token

    Method : POST

    https://sb-oauth.revenuemonster.my/v1/token

    Access token will be expired as mentioned in response parameter (currently default expiry is set to 2 hours). Developers can regenerate new access token by using refresh token rather than using clientid/clientserect.

    Parameter Type Required Description Example
    clientId String Yes Client ID or AppID as obtained from RM Merchant Portal. 3208919753194101125
    clientSecret String Yes Client secret or AppSecret as obtained from RM Merchant Portal. mglve4W3UhPSGOV7gnwoYKyvbRCe83zZ

    Structure:
    clientId:clientSecret

    Before encoding using Base64 :
    3675930941412424316:wmn7FUauXHdkoYa9182kCMkjGnNJVgin

    Eg encoding using Base64 :
    MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    Example Request

    curl --location --request POST "https://sb-oauth.revenuemonster.my/v1/token" \
      --header "Content-Type: application/json" \
      --header "Authorization: Basic MTM5NjMxNzEzNjIyMzY4MzExMjpEWGxaTWpQem96dXh2Z2JRRmtYWmFDcnFoRmliS3B4ZQ==" \
      --data "{
      \"grantType\": \"refresh_token\",
      \"refreshToken\": \"OgoHjoZyLZPnHemifOrHIwStdeyzKuFoDaJBtBRULxEIJgANlhsLgFuBFiVTtqiQgmYDOTBkakwXZWfcLqXQTUTiqCpQTAEVHuqshWdiuvtGMIYztLiVfEmLEoXNlALi\"
    }"
    

    Content-Type: application/json
    Authorization: Basic MzY3NTkzMDk0MTQxMjQyNDMxNjp3bW43RlVhdVhIZGtvWWE5MTgya0NNa2pHbk5KVmdpbg==

    (More info refer: https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication)

    Request Parameters:

    Parameter Type Required Description Example
    grantType String Yes Only support refresh_token refresh_token
    refreshToken String Yes Refresh token is obtained from response parameter when access token is generated. Random String

    Example Request

    {
      "accessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiYXBpX2NsaWVudEBFaGNLQzA5QmRYUm9RMnhwWlc1MEVJbmVpOW5mbE9DN0ZRIl0sImV4cCI6MjM0NDQyOTc0OSwiaWF0IjoxNTU2MDI5NzQ5LCJpc3MiOiJodHRwczovL3NiLW9hdXRoLnJldmVudWVtb25zdGVyLm15IiwianRpIjoiRWh3S0VFOUJkWFJvUVdOalpYTnpWRzlyWlc0UXJ1dkxrSUthaU13ViIsIm5iZiI6MTU1NjAyOTc0OSwic3ViIjoiRWhRS0NFMWxjbU5vWVc1MEVKWFZ6ZDN3cmFxVE9SSVFDZ1JWYzJWeUVJeUpxSXp2eU1QVmNRIn0.PL3u_qTOw1c51HWNJsgTVDQBIZssLMRT2Nuo95_qyHHRTOhYz_LPtFdnICabU8P77lBOtZR5rMTuw3jzFFUopu3mCfT6ULzLtbBMVtlwXRdAZAw-kecYIhG5AmkT7H7Iwskvpitkqp1G31xb6PPOEhNTiO3iUY_Q-o3lsjn8uAWdDn7oXdWSmTMCI-1Mo0eYpWIQxsMI6HdQKXzhn1NELE1zvedyUhb6syw3oIocL7yll2eMg_LcYMdTOh26Ae614an8m7zSxgSBydwMHC0gjf7mzYEgqUzJ0M7zg_-vHy67u5UrysXQXDx-1MVHXaetzh3RriCR0R0_qESnIge3SQ",
      "tokenType": "Bearer",
      "expiresIn": 788399999,
      "refreshToken": "XtBwKribhoPsoEbhHnLNJSjkSuskqsRIpTnvVxmOTyQhenqlgGQisbtbpcjcapmhPEaHrJZVbPGvkvaTwWozamuCBUfvWdWQzHJSnjpuurEACugOZssEpUffUSDoSxLz",
      "refreshTokenExpiresIn": 1576799999
    }
    

    Response Parameters:

    Parameter Type Description Example
    accessToken String Required for subsequent request(s) Access Token
    tokenType String We only support “Bearer” type Bearer
    expiresIn String Token expiry, in seconds format. “7200” means 7,200 seconds or 2 hour 7200
    refreshToken String Required for getting new access token after expiry Refresh token string
    Parameter Type Description Example
    accessToken String Required for subsequent request(s) JWE Token (Refer)
    tokenType String We only support “Bearer” type Bearer
    expiresIn String Token expiry, in seconds format. “7200” means 7,200 seconds or 2 hour 7200
    refreshToken String Required for getting new access token after expiry Refresh token string
    scope String Scope of authorization granted to user, to perform action(s) when calling other API endpoints. (Currently only support manage_payment, get_merchant_profile, get_user_profile). Separated by comma(s) without space. manage_payment,get_user_profile

    Signature Algorithm

    Signature algorithm is used to sign your payment API request with a private key to obtain additional security.

    Example:

    PATCH Update Store

    Step 1: Prepare Request Parameters

    Request Parameters:

    Parameter Type Required Description Example
    name String Yes Store Name "REVENUE MONSTER"
    addressLine1 String Yes Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String No Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Yes Postcode of store "47400"
    city String Yes City of store "Petaling Jaya"
    state String Yes State of store "Selangor"
    country String Yes Country of store "Malaysia"
    countryCode String Yes Country code of store contact number "60"
    phoneNumber String Yes Phone number of store "377334080"
    geoLocation Object of [String] No Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }

    Step 2: Sort by order

    Step 3: Encode the data in Step 2 using Base64 format.

    Example :
    eyJjdXJyZW5jeVR5cGUiOiJNWVIiLCJvdXRUcmFkZU5vIjoiMTgwNjA2MDYxMjU5NTUzNzg1MTMzOSIsInJlYXNvbiI6ImhlbGxvIiwicmVmdW5kIjp7ImFtb3VudCI6MTAsInR5cGUiOiJGVUxMIn0sInRvdGFsQW1vdW50IjoxMH0

    Step 4: Construct plain text parameters:

    Plain Text Parameters:

    Parameter Type Required Description Example
    data String Yes Base64 data body from Step 3. "eyJjdXJyZW5jeVR5cGUiOiJNWVIiLCJvdXRUcmFkZU5vIjoiMTgwNjA2MDYxMjU5NTUzNzg1MTMzOSIsInJlYXNvbiI6ImhlbGxvIiwicmVmdW5kIjp7ImFtb3VudCI6MTAsInR5cGUiOiJGVUxMIn0sInRvdGFsQW1vdW50IjoxMH0"
    method String Yes HTTP call method used. "patch"
    nonceStr String Yes Random string "VYNknZohxwicZMaWbNdBKUrnrxDtaRhN"
    requestURl String Yes Request URL must be exactly the same, together with URI. https://sb-open.revenuemonster.my/v3/store/1662168764176583360
    signType String Yes Sign Type, prefer SHA-256 "sha256"
    timestamp String Yes UNIX timestamp of request "1527407052"

    Example : Combine All In One Line


    data=eyJjdXJyZW5jeVR5cGUiOiJNWVIiLCJvdXRUcmFkZU5vIjoiMTgwNjA2MDYxMjU5NTUzNzg1MTMzOSIsInJlYXNvbiI6ImhlbGxvIiwicmVmdW5kIjp7ImFtb3VudCI6MTAsInR5cGUiOiJGVUxMIn0sInRvdGFsQW1vdW50IjoxMH0=&method=patch&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/store/1662168764176583360&signType=sha256&timestamp=1527407052

    Step 5: Sign with CLIENT PRIVATE KEY

    Signature of Request Data:

    Parameter Type Required Description Example
    data String Yes Signature of request data in Step 1 using CLIENT PRIVATE KEY (Refer below), [sign method] [signature]

    ExampleSignature of Request Data:


    sha256 IrBg6t73VsH7ieEnQDB4CXHFjMWUkp8Dtddpxqw+4Gvz6Tag7Dx6nrfAt2ofYK8xZN9aBCvAKAfmAOGWIXnsTXfhFBnMA2kadiga7ufUJ81ozyhllbiliRM2ugw1OcqSTLRHWBPhrVwhHBxgDiG9wbuI3FKURrz+CufYYakFoCw=

    curl --request PATCH \
      --url 'https://sb-open.revenuemonster.my/store/1662168764176583360' \
      --header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw' \
      --header 'Content-Type: application/json' \
      --header 'X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN' \
      --header 'X-Signature: sha256 IrBg6t73VsH7ieEnQDB4CXHFjMWUkp8Dtddpxqw+4Gvz6Tag7Dx6nrfAt2ofYK8xZN9aBCvAKAfmAOGWIXnsTXfhFBnMA2kadiga7ufUJ81ozyhllbiliRM2ugw1OcqSTLRHWBPhrVwhHBxgDiG9wbuI3FKURrz+CufYYakFoCw=' \
      --header 'X-Timestamp: 1527407052' \
      --data '{
      "addressLine1": "gugusan melur",
        "city": "petaling jaya",
        "country": "malaysia.",
        "name": "yussuf",
        "countryCode": "60",
        "phoneNumber": "176473298",
        "postCode": "47810",
        "state": "selangor"
    }'
    

    Step 6: Put this Signature of Request Data into header under X-Signature, construct the request as below and call API endpoint:

    RESPONSE

    Request Parameters:

    Parameter Type Description Example
    items Object[] Array of store object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Array of store object ("items"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    isDefault String Default store of merchant (first store created upon signup) true
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Payment-Quickpay QR

    Scenarios:

    1. EDC/Smart Payment Terminal
    2. POS(point-of-sales) Payment Integration

    To make payments with Quick Pay. Merchant to scan user's wallet.

    Quick Pay

    Method POST

    https://sb-open.revenuemonster.my/v3/payment/quickpay

    To initiate Quick Pay by merchant scanning user's QR code.

    Example Request

    
    curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/quickpay" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
       \"authCode\":\"151261311797136005\",
       \"order\":{
          \"amount\":100,
          \"currencyType\":\"MYR\",
          \"id\":\"12344333233404\",
          \"title\":\"title\",
          \"detail\":\"desc\",
          \"additonalData\":\"API Test\"
       },
       \"ipAddress\":\"175.143.101.229\",
       \"storeId\":\"10946114768247530\"
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    authCode String Yes Auth code of QR code/barcode being scanned. Length: 18 "134850717797247290"
    order Object Yes Object of order (Refer to explanation below)
    ipAddress String Yes IP address of terminal/application for payment "8.8.8.8"
    terminalId String No ID of terminal for payment "19382734937293"
    storeId String Yes ID of the store "6170506694335521334"

    Example Respond

    {
      "item": {
        "store": {
          "id": "10946114768247530",
          "name": "One Utama",
          "addressLine1": "200, ABCD",
          "addressLine2": "",
          "postCode": "48482",
          "city": "AMPANG",
          "state": "W.P. KUALA LUMPUR",
          "country": "MALAYSIA",
          "countryCode": "60",
          "phoneNumber": "12312341234",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-06-28T03:24:52Z",
          "updatedAt": "2018-06-28T03:24:52Z"
        },
        "referenceId": "1010014200000026201807306110047699",
        "transactionId": "180730103559010434619271",
        "order": {
          "id": "12344333233404",
          "title": "title",
          "detail": "desc",
          "amount": 100
        },
        "terminalId": "19382734937293",
        "payee": {
          "userId": "o74f0wsssZBWis4rJWyDCWmEF-ig"
        },
        "currencyType": "MYR",
        "balanceAmount": 100,
        "platform": "OPEN_API",
        "method": "WECHATPAY",
        "transactionAt": "2018-07-30T10:36:01.515328338Z",
        "type": "QUICK_PAY",
        "status": "SUCCESS",
        "region": "MALAYSIA",
        "createdAt": "2018-07-30T10:35:59.233482384Z",
        "updatedAt": "2018-07-30T10:36:01.515328459Z"
      },
      "code": "SUCCESS"
    }
    

    Order object ("order"):

    Parameter Type Required Description Example
    id String Yes Order ID (from Merchant), max: 24 "134850717797247290"
    title String Yes Order title, max: 32 "Sales"
    details String Yes Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String Yes For merchant's remark, max 128 ""
    amount Uint Yes Amount of order in cent (min RM 0.10 or amount: 10) 100

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    currencyType String Currency notation (currently only support MYR) "MYR"
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY" ALL
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server "SUCCESS"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    error String (Refer Appendix: Error Codes) {}
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant), max: 24 "134850717797247290"
    title String Order title, max: 32 "Sales"
    details String Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    amount Uint Amount of order in cent (min RM 0.10 or amount: 10) 100

    Refund

    Method POST

    https://sb-open.revenuemonster.my/v3/payment/refund

    Refund is to get funds returned to the customer after settlement. (After the money is settled to the merchant.)

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/refund" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 ZtQhyfkgMLY2FCxQeVQPljczzijPoC7zWH087erdAm1h2x2A0B+GQ9Fk89VbvMB9400m8SFBDRz5XgEVaqPh7Q==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
      \"transactionId\": \"180730103903010431152179\",
      \"refund\": {
        \"type\": \"FULL\",
        \"currencyType\": \"MYR\",
        \"amount\": 100
      },
      \"reason\": \"test\"
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    transactionId String Yes Transaction ID generated from Revenue Monster. "180730103903010431152179"
    refund Object Yes Object of refund (Refer to explanation below)
    reason String Yes Refund reason "Wrong Item"

    Refund object ("refund"):

    Parameter Type Required Description Example
    type String Yes Fully or partial refund. "FULL"/"PARTIAL" (currenty for sandbox can partial refund) "FULL"
    currencyType String Yes Currency notation (currently only support MYR) "MYR"
    amount Uint Yes Amount of order in cent 100

    Example Respond

    {
      "item": {
        "store": {
          "id": "10946114768247530",
          "name": "One Utama",
          "addressLine1": "200, ABCD",
          "addressLine2": "",
          "postCode": "48482",
          "city": "AMPANG",
          "state": "W.P. KUALA LUMPUR",
          "country": "MALAYSIA",
          "countryCode": "60",
          "phoneNumber": "12312341234",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-06-28T03:24:52Z",
          "updatedAt": "2018-06-28T03:24:52Z"
        },
        "referenceId": "1010014200000026201807306110047703",
        "transactionId": "180730103903010431152179",
        "order": {
          "id": "12344333233414",
          "title": "title",
          "detail": "desc",
          "amount": 100
        },
        "terminalId": "19382734937293",
        "payee": {
          "userId": "o74f0wsssZBWis4rJWyDCWmEF-ig"
        },
        "currencyType": "MYR",
        "balanceAmount": 0,
        "platform": "OPEN_API",
        "method": "WECHATPAY",
        "transactionAt": "2018-07-30T10:39:06Z",
        "type": "QUICK_PAY",
        "status": "FULL_REFUNDED",
        "region": "MALAYSIA",
        "createdAt": "2018-07-30T10:39:03Z",
        "updatedAt": "2018-07-30T10:39:37.462943554Z"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY" ALL
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server "SUCCESS"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    error String (Refer Appendix: Error Codes) {}
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant), max: 24 "134850717797247290"
    title String Order title, max: 32 "Sales"
    details String Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark, max 128 ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order in cent 100

    Reverse

    Method POST

    https://sb-open.revenuemonster.my/v3/payment/reverse

    Refund is to get funds returned to customer before settlement. (Before money is settled to merchant.)

    Note: If transaction is timed out, should perform reverse order before creating new transaction. This is to make sure no double charge.

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/reverse" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 ZtQhyfkgMLY2FCxQeVQPljczzijPoC7zWH087erdAm1h2x2A0B+GQ9Fk89VbvMB9400m8SFBDRz5XgEVaqPh7Q==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
      \"orderId\": \"12344333233404\"
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    orderId String Yes Order ID (from Merchant), max: 24 "134850717797247290"

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "item": {
        "referenceId": "1010014200000026201807306110047699",
        "transactionId": "180730103559010434619271",
        "order": {
          "id": "12344333233404",
          "title": "title",
          "detail": "desc",
          "amount": 100
        },
        "terminalId": "19382734937293",
        "payee": {
          "userId": "o74f0wsssZBWis4rJWyDCWmEF-ig"
        },
        "currencyType": "MYR",
        "balanceAmount": 0,
        "platform": "OPEN_API",
        "method": "WECHATPAY",
        "transactionAt": "2018-07-30T10:36:01Z",
        "type": "QUICK_PAY",
        "status": "REVERSED",
        "region": "MALAYSIA",
        "createdAt": "2018-07-30T10:35:59Z",
        "updatedAt": "2018-07-30T10:37:24.376379089Z"
      },
      "code": "SUCCESS"
    }
    

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY" ALL
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server "SUCCESS"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    error String (Refer Appendix: Error Codes) {}
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant), max: 24 "134850717797247290"
    title String Order title, max: 32 "Sales"
    details String Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark, max 128 ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order in cent 100

    Get All Payment Transaction

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transactions?limit=1

    To query for payment transaction using ID.

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transactions" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: OsjlEWZLKx0IXgC5PUk6sM+ZZdrS/ELBNdEGj+okOhVAwo/i+GK91CwEmIbLko+p0Vbs8Ph+iBQG/3DyS7kHug==" \
      --header "X-Signature-Type: sha256" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
      \"data\": \"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.RfZ1ftmFgRj0ptCK4EbBrY5ysnvvW5NNOq9bJ8-LXM1bY4805rDjFQnyXBc_edpzL-o-c1H3xQG4A1b2uCqrQVBUZ5ohr9fa0ZzHY4DuiHuceadhBhpVN5z3TPpE_pFPO7xleJOIvPswwi-_btiUAU64fNL-q8a6UCANuOtvQDvvoAv7fo7snS1eA2XkrVjSfgIsk9uMd5T6HoWagBZzJCjlzgOpf4jVl2Se5DOthvCs-t21Yla9uQdkAZASAA7fUHnkCeHXaF9Psr_tZ0j_g9LL51XGTz0wg_4Lv9ldEecSsZkWD2JsUzkujYJoHj_qu3cZGamx2YgngWe03q639g.tGaA9osvbYYGc5_G.sn2J5NUwaK-yD2RcvGe3IWOeLjjnvBk.jZvdmjli2NwNK13Z3H8iYQ\"
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "items": [
        {
          "store": {
            "id": "6883264812332703106",
            "name": "XXX",
            "addressLine1": "",
            "addressLine2": "",
            "postCode": "",
            "city": "",
            "state": "",
            "country": "",
            "countryCode": "",
            "phoneNumber": "",
            "geoLocation": {
              "latitude": 0,
              "longitude": 0
            },
            "status": "ACTIVE",
            "createdAt": "2018-05-14T09:26:23Z",
            "updatedAt": "2018-05-14T09:26:23Z"
          },
          "transactionId": "1805260747580014147708",
          "order": {
            "id": "333333333323333333333",
            "title": "title",
            "detail": "desc",
            "additionalData": "In-store payment",
            "amount": 100
          },
          "currencyType": "MYR",
          "balanceAmount": 0,
          "platform": "TERMINAL",
          "method": "WECHATPAY",
          "error": {
            "code": "AUTH_CODE_INVALID",
            "message": "Invalid Auth Code"
          },
          "transactionAt": "2018-05-26T07:47:59Z",
          "type": "QUICK_PAY",
          "status": "FAILED",
          "region": "",
          "createdAt": "2018-05-26T07:47:58Z",
          "updatedAt": "2018-05-26T07:47:59Z"
        }
        etc ...
    

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY". "ALL"
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server, "SUCCESS" or "IN_PROCESS" or "FAILED". "IN_PROCESS" means user scanned and making payment. "FAILED"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"

    | createdAt | DateTime | Creation date time of store | "2018-02-12T08:53:13Z" | | updatedAt | DateTime | Last update date time of store | "2018-02-12T08:53:13Z" |

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant) "134850717797247290"
    title String Order title "Sales"
    details String Order details "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order 100

    Get Payment By Transaction ID

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transaction/1805260552060011600267

    To query for payment transaction using ID.

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transactions" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: OsjlEWZLKx0IXgC5PUk6sM+ZZdrS/ELBNdEGj+okOhVAwo/i+GK91CwEmIbLko+p0Vbs8Ph+iBQG/3DyS7kHug==" \
      --header "X-Signature-Type: sha256" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
      \"data\": \"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.RfZ1ftmFgRj0ptCK4EbBrY5ysnvvW5NNOq9bJ8-LXM1bY4805rDjFQnyXBc_edpzL-o-c1H3xQG4A1b2uCqrQVBUZ5ohr9fa0ZzHY4DuiHuceadhBhpVN5z3TPpE_pFPO7xleJOIvPswwi-_btiUAU64fNL-q8a6UCANuOtvQDvvoAv7fo7snS1eA2XkrVjSfgIsk9uMd5T6HoWagBZzJCjlzgOpf4jVl2Se5DOthvCs-t21Yla9uQdkAZASAA7fUHnkCeHXaF9Psr_tZ0j_g9LL51XGTz0wg_4Lv9ldEecSsZkWD2JsUzkujYJoHj_qu3cZGamx2YgngWe03q639g.tGaA9osvbYYGc5_G.sn2J5NUwaK-yD2RcvGe3IWOeLjjnvBk.jZvdmjli2NwNK13Z3H8iYQ\"
    }"
    

    REQUEST

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "item": {
        "store": {
          "id": "6883264812332703106",
          "name": "XXX",
          "addressLine1": "",
          "addressLine2": "",
          "postCode": "",
          "city": "",
          "state": "",
          "country": "",
          "countryCode": "",
          "phoneNumber": "",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-05-14T09:26:23Z",
          "updatedAt": "2018-05-14T09:26:23Z"
        },
        "transactionId": "1805260552060011600267",
        "order": {
          "id": "3333333333",
          "title": "title",
          "detail": "desc",
          "additionalData": "In-store payment",
          "amount": 100
        },
        "currencyType": "MYR",
        "balanceAmount": 0,
        "platform": "TERMINAL",
        "method": "WECHATPAY",
        "error": {
          "code": "AUTH_CODE_INVALID",
          "message": "Invalid Auth Code"
        },
        "transactionAt": "2018-05-26T05:52:07Z",
        "type": "QUICK_PAY",
        "status": "FAILED",
        "region": "",
        "createdAt": "2018-05-26T05:52:06Z",
        "updatedAt": "2018-05-26T05:52:07Z"
      },
      "code": "SUCCESS"
    }
    

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY". "ALL"
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server, "SUCCESS" or "IN_PROCESS" or "FAILED". "IN_PROCESS" means user scanned and making payment. "FAILED"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant) "134850717797247290"
    title String Order title "Sales"
    details String Order details "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order 100

    Get Payment Transaction By Order ID

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transaction/order/190423044930300434571311

    To query for payment transaction using Order ID.

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transactions" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: OsjlEWZLKx0IXgC5PUk6sM+ZZdrS/ELBNdEGj+okOhVAwo/i+GK91CwEmIbLko+p0Vbs8Ph+iBQG/3DyS7kHug==" \
      --header "X-Signature-Type: sha256" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
      \"data\": \"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkExMjhHQ00ifQ.RfZ1ftmFgRj0ptCK4EbBrY5ysnvvW5NNOq9bJ8-LXM1bY4805rDjFQnyXBc_edpzL-o-c1H3xQG4A1b2uCqrQVBUZ5ohr9fa0ZzHY4DuiHuceadhBhpVN5z3TPpE_pFPO7xleJOIvPswwi-_btiUAU64fNL-q8a6UCANuOtvQDvvoAv7fo7snS1eA2XkrVjSfgIsk9uMd5T6HoWagBZzJCjlzgOpf4jVl2Se5DOthvCs-t21Yla9uQdkAZASAA7fUHnkCeHXaF9Psr_tZ0j_g9LL51XGTz0wg_4Lv9ldEecSsZkWD2JsUzkujYJoHj_qu3cZGamx2YgngWe03q639g.tGaA9osvbYYGc5_G.sn2J5NUwaK-yD2RcvGe3IWOeLjjnvBk.jZvdmjli2NwNK13Z3H8iYQ\"
    }"
    

    REQUEST

    Request Parameters:

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Repsond

    {
      "item": {
        "store": {
          "id": "5980004217354859450",
          "name": "yussuf",
          "addressLine1": "GUGUSAN MELUR",
          "addressLine2": "",
          "postCode": "47810",
          "city": "PETALING JAYA",
          "state": "SELANGOR",
          "country": "MALAYSIA.",
          "countryCode": "60",
          "phoneNumber": "176473298",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-05-28T02:05:50Z",
          "updatedAt": "2018-05-28T02:05:50Z"
        },
        "transactionId": "1806151242300013190769",
        "order": {
          "id": "9809099398273542333339",
          "title": "title",
          "detail": "desc",
          "additionalData": "In-store payment",
          "amount": 100
        },
        "payee": {},
        "currencyType": "MYR",
        "balanceAmount": 100,
        "platform": "MOBILE_APP",
        "method": "WECHATPAY",
        "error": {
          "message": "Invalid Auth Code"
        },
        "transactionAt": "2018-06-15T12:42:30Z",
        "type": "QUICK_PAY",
        "status": "FAILED",
        "region": "CHINA",
        "createdAt": "2018-06-15T12:42:30Z",
        "updatedAt": "2018-06-15T12:42:30Z"
      },
      "code": "SUCCESS"
    }
    

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY". "ALL"
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server, "SUCCESS" or "IN_PROCESS" or "FAILED". "IN_PROCESS" means user scanned and making payment. "FAILED"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant) "134850717797247290"
    title String Order title "Sales"
    details String Order details "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order 100

    Daily Settlement Report

    Method Post

    https://sb-open.revenuemonster.my/v3/payment/settlement/csv

    To query for payment transaction using ID.

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/settlement/csv" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 OsjlEWZLKx0IXgC5PUk6sM+ZZdrS/ELBNdEGj+okOhVAwo/i+GK91CwEmIbLko+p0Vbs8Ph+iBQG/3DyS7kHug==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
        \"date\": \"2018-08-05\",
        \"method\": \"WECHATPAY\",
        \"region\": \"MALAYSIA\",
        \"sequence\": 1
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    sequence UInt Yes Sequence of the report 1
    date String Yes Date of the report "2018-08-05"
    method String Yes Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY_CN" , "GRABPAY_MY". "ALL"
    region String Yes Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"

    Example Respond

    H,4118165203679668885,REVENUE MONSTER,2018-08-05,1
    T,0,0.00,0.00,0.00,0.00,0.00,
    S,0,0.00,0.00,0.00,0.00,0.00,
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    payee Object Object of userID made payment (payment sender) {"userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ"}
    platform String Currently only support "OPEN_API" "OPEN_API"
    method String Currently only support "WECHATPAY" , "PRESTO" , "BOOST" , "TNG" , "MAYBANK" , "ALIPAY" , "GRABPAY". "ALL"
    type String Currently only support "QUICKPAY" "QUICKPAY"
    status String Status returned from WeChat server, "SUCCESS" or "IN_PROCESS" or "FAILED". "IN_PROCESS" means user scanned and making payment. "FAILED"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Order object ("order"):

    Parameter Type Description Example
    id String Order ID (from Merchant) "134850717797247290"
    title String Order title "Sales"
    details String Order details "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String For merchant's remark ""
    currencyType String Currency notation (currently only support MYR) "MYR"
    amount Uint Amount of order 100

    Payment-Transaction QR

    Scenarios:

    1. Wechat Official Account (OA) Payment
    2. Website QR Code online payment. Example, E-commerce website shows QR Code with an amount for user to scan with their Mobile wallet.
    3. Vending Machines / Sales Kiosk

    To make payment when user scan merchant's displayed QR code with mobile wallet.

    Illustration of transaction QR Code

    1. Get QR Code URL qrCodeUrl from the endpoint below and generate QR Code as below. Example of QR Code URL: https://dev-rm-api.ap.ngrok.io/payment/unified?code=a669adc3b06fe5cef977cc762f40ce8c

    2. If "isPreFillAmount": false, then user will be prompted to key-in amount for payment, followed by Step 3.
      No Prefill Amount

    3. If "isPreFillAmount": true, then user will be directly prompted for payment.
      Prompt Payment

    4. Key in payment pin to complete payment.
      Complete Payment

    5. User will get payment status notification.
      Successful Payment

    6. User will be redirected to redirectUrl specified during QR code creation.

    7. User will also get this notification in Service Notification.
      Notification Payment Details

    8. Merchant can view the transaction record in Merchant Portal.
      Merchant Transaction Record

    Create Transaction QR Code or URL

    Method POST

    https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode

    To create static/dynamic QR code for user scanning merchant's displayed QR.

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    amount Uint Yes Amount of order in cent. Only required when "isPrefillAmount" = true. (min RM 0.10 or amount: 10) 100
    currencyType String Yes Currency notation (currently only support MYR) "MYR"
    method []String No Wallet provider for payment, supports "WECHATPAY", "PRESTO" , "BOOST" , "ALIPAY_CN" ["WECHATPAY","WECHATPAY_MY",
    "WECHATPAY_CN","PRESTO_MY",
    "BOOST_MY",
    "ALIPAY_CN" ]
    expiry Object No Object of expiry (Refer to explanation below)
    order Object Yes Object of order (Refer to explanation below)
    redirectUrl String No URL to redirect after payment is made. Default is "". "https://www.apple.com/my/iphone/"
    type String Yes "STATIC" (for permanent use) or "DYNAMIC" (for one-time use) "STATIC"
    storeId String Yes ID of the store to create QR code "10946114768247530"
    isPreFillAmount Bool No To indicate QR code has pre-fill amount. Default is false. (i.e. Amount will be shown directly on user's wallet without keying-in) true

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 pLZz2vnRYHKPUd28gz+f3gIPimH+dHu1xNZqBqlNVQFOdDY1UPpA8S9lIHb4vUhQlEqLS/jJp4zETKA0q4qIlA==" \
      --header "X-Nonce-Str: mpnbwsaizkwaykemxfolmmhvyzvrgnnh" \
      --header "X-Timestamp: 15347569119413" \
      --data "{\"amount\":100,\"currencyType\":\"MYR\",\"expiry\":{\"type\":\"PERMANENT\"},\"isPreFillAmount\":true,\"method\": [\"WECHATPAY\"],\"order\":{\"detail\":\"detail\",\"title\":\"title\"},\"redirectUrl\":\"https://www.baidu.com/\",\"storeId\":\"10946114768247530\",\"type\":\"DYNAMIC\"}"
    

    Expiry object ("expiry"):

    Parameter Type Required Description Example
    type String Yes "DYNAMIC" (days from now), "FIX" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    day Uint No Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 3
    expiredAt DateTime No Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Example Respond

    {
      "item": {
        "store": {
          "id": "10946114768247530",
          "name": "One Utama",
          "addressLine1": "ANYTHING",
          "addressLine2": "",
          "postCode": "48484",
          "city": "KUALA LUMPUR",
          "state": "W.P. KUALA LUMPUR",
          "country": "MALAYSIA",
          "countryCode": "60",
          "phoneNumber": "12312341234",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-06-03T08:53:48Z",
          "updatedAt": "2018-06-03T08:53:48Z"
        },
        "type": "DYNAMIC",
        "isPreFillAmount": true,
        "currencyType": "MYR",
        "amount": 100,
        "platform": "OPEN_API",
        "method": ["WECHATPAY"],
        "expiry": {
          "type": "PERMANENT",
          "day": 0,
          "expiredAt": "2050-12-31T23:59:59Z"
        },
        "code": "237fff27513b29ddd364e595d6c2eaf2",
        "status": "VALID",
        "qrCodeUrl": "https://sb-api.revenuemonster.my/payment/unified?code=237fff27513b29ddd364e595d6c2eaf2",
        "redirectUrl": "https://www.baidu.com/",
        "order": {
          "title": "title",
          "detail": "detail"
        },
        "createdAt": "2018-08-20T09:27:47.68849666Z",
        "updatedAt": "2018-08-20T09:27:47.688496777Z"
      },
      "code": "SUCCESS"
    }
    

    Order object ("order"):

    Parameter Type Required Description Example
    details String Yes Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    title String Yes Order title, max: 32 "Sales"
    additionalData String Yes Order additional data, max: 128 "Sales for customer xxx at branch xxx."

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Transaction object ("item"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    isPreFillAmount Bool To indicate QR code has pre-fill amount true
    currencyType String Currency notation "MYR"
    amount Uint Amount of order in cent. Only required when "isPrefillAmount" = true. 100
    platform String Currently only support "OPEN_API" "OPEN_API"
    method []String Wallet provider for payment, supports "WECHATPAY", "PRESTO" , "BOOST" , "ALIPAY_CN" ["WECHATPAY","WECHATPAY_MY",
    "WECHATPAY_CN","PRESTO_MY",
    "BOOST_MY",
    "ALIPAY_CN"]
    expiry Object Object of expiry (Refer to explanation above)
    code String Embedded code in QR "c8ff3df0605a5f20cd6476661072eade"
    status String "VALID" (always valid for static QR) or "REDEEMED" (only applicable to dynamic QR) "VALID"
    qrCodeUrl String Embedded URL in QR "https://dev-rm-api.ap.ngrok.io/payment/unified?code=c8ff3df0605a5f20cd6476661072eade"
    redirectUrl String Redirect URL after QR payment is made "https://www.apple.com/my/iphone/"
    order Object Order object (Refer to explanation below)
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIX" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 3
    expiredAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Order object ("order"):

    Parameter Type Description Example
    details String Order details, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    title String Order title, max: 32 "Sales"
    additionalData String Order additional data, max: 128 "Sales for customer xxx at branch xxx."

    Get Transaction QR Code URL

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transaction/qrcodes?order[]=-createdAt&limit=1&filter={"type":"STATIC", "expiry.type": "PERMANENT"}

    To get all QR Code(s) generated previously in the system.

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transaction/qrcodes" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"amount\": 100,
        \"currencyType\": \"MYR\",
        \"method\": [\"WECHATPAY\"],
        \"expiry\": {
            \"type\": \"PERMANENT\"
        },
        \"quantity\": 2,
        \"type\": \"STATIC\",
        \"storeId\": \"10946114768247530\",
        \"isPreFillAmount\": true
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items []Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "items": [
        {
          "storeId": "10946114768247530",
          "type": "STATIC",
          "isPreFillAmount": true,
          "currencyType": "MYR",
          "amount": 100,
          "platform": "PORTAL",
          "method": ["WECHATPAY"],
          "expiry": {
            "type": "PERMANENT",
            "day": 0,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "code": "a669adc3b06fe5cef977cc762f40ce8c",
          "status": "VALID",
          "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/payment/unified?code=a669adc3b06fe5cef977cc762f40ce8c",
          "createdAt": "2018-06-25T02:29:28Z",
          "updatedAt": "2018-06-25T02:29:28Z"
        },
        {
          "storeId": "10946114768247530",
          "type": "STATIC",
          "isPreFillAmount": true,
          "currencyType": "MYR",
          "amount": 100,
          "platform": "PORTAL",
          "method": ["WECHATPAY"],
          "expiry": {
            "type": "PERMANENT",
            "day": 0,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "code": "d54b69122f59ea46ac3fced769854ec2",
          "status": "VALID",
          "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/payment/unified?code=d54b69122f59ea46ac3fced769854ec2",
          "createdAt": "2018-06-25T02:29:53Z",
          "updatedAt": "2018-06-25T02:29:53Z"
        },
        {
          "storeId": "10946114768247530",
          "type": "STATIC",
          "isPreFillAmount": true,
          "currencyType": "MYR",
          "amount": 100,
          "platform": "PORTAL",
          "method": ["WECHATPAY"],
          "expiry": {
            "type": "PERMANENT",
            "day": 0,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "code": "e794902fbcb62c59b8d9cf270a5e505a",
          "status": "VALID",
          "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/payment/unified?code=e794902fbcb62c59b8d9cf270a5e505a",
          "createdAt": "2018-06-25T02:28:24Z",
          "updatedAt": "2018-06-25T02:28:24Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 3
      }
    }
    

    Transaction object array ("items"):

    Parameter Type Description Example
    storeId String ID of store 10946114768247530
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    isPreFillAmount Bool To indicate QR code has pre-fill amount true
    currencyType String Currency notation "MYR"
    amount Uint Amount of order in cent. Only required when "isPrefillAmount" = true. 100
    platform String "OPEN_API" (generated through API calls) or "PORTAL" (generated through merchant portal) "PORTAL"
    method []String Wallet provider for payment, supports "WECHATPAY", "PRESTO" , "BOOST" , "ALIPAY_CN" ["WECHATPAY","WECHATPAY_MY",
    "WECHATPAY_CN","PRESTO_MY",
    "BOOST_MY",
    "ALIPAY_CN"]
    expiry String Object of expiry (Refer to explanation above)
    code String Embedded code in QR "c8ff3df0605a5f20cd6476661072eade"
    status String "VALID" (always valid for static QR) or "REDEEMED" (only applicable to dynamic QR) "VALID"
    qrCodeUrl String Embedded URL in QR "https://dev-rm-api.ap.ngrok.io/payment/unified?code=c8ff3df0605a5f20cd6476661072eade"
    redirectUrl String Redirect URL after QR payment is made "https://www.apple.com/my/iphone/"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIX" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 3
    expiredAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Database object ("meta"):

    Parameter Type Description Example
    count Int Current page record 1

    Get Transaction QRCode URL By Code

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode/5413b4583a9440dd351b2dde0c0ea166

    To get specific QR Code generated previously in the system, by passing in code in query parameter (/qrcode/...).

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode/a669adc3b06fe5cef977cc762f40ce8c" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"amount\": 100,
        \"currencyType\": \"MYR\",
        \"method\": [\"WECHATPAY\"],
        \"expiry\": {
            \"type\": \"PERMANENT\"
        },
        \"quantity\": 2,
        \"type\": \"STATIC\",
        \"storeId\": \"10946114768247530\",
        \"isPreFillAmount\": true
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "item": {
        "storeId": "10946114768247530",
        "type": "STATIC",
        "isPreFillAmount": true,
        "currencyType": "MYR",
        "amount": 100,
        "platform": "PORTAL",
        "method": ["WECHATPAY"],
        "expiry": {
          "type": "PERMANENT",
          "day": 0,
          "expiredAt": "2050-12-31T23:59:59Z"
        },
        "code": "a669adc3b06fe5cef977cc762f40ce8c",
        "status": "VALID",
        "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/payment/unified?code=a669adc3b06fe5cef977cc762f40ce8c",
        "createdAt": "2018-06-25T02:29:28Z",
        "updatedAt": "2018-06-25T02:29:28Z"
      },
      "code": "SUCCESS"
    }
    

    Transaction object ("item"):

    Parameter Type Description Example
    storeId String ID of store 10946114768247530
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    isPreFillAmount Bool To indicate QR code has pre-fill amount true
    currencyType String Currency notation "MYR"
    amount Uint Amount of order in cent. Only required when "isPrefillAmount" = true. 100
    platform String "OPEN_API" (generated through API calls) or "PORTAL" (generated through merchant portal) "PORTAL"
    method []String Wallet provider for payment, supports "WECHATPAY", "PRESTO" , "BOOST" , "ALIPAY_CN" ["WECHATPAY","WECHATPAY_MY",
    "WECHATPAY_CN","PRESTO_MY",
    "BOOST_MY",
    "ALIPAY_CN" ]
    expiry String Object of expiry (Refer to explanation above)
    code String Embedded code in QR "c8ff3df0605a5f20cd6476661072eade"
    status String "VALID" (always valid for static QR) or "REDEEMED" (only applicable to dynamic QR) "VALID"
    qrCodeUrl String Embedded URL in QR "https://dev-rm-api.ap.ngrok.io/payment/unified?code=c8ff3df0605a5f20cd6476661072eade"
    redirectUrl String Redirect URL after QR payment is made "https://www.apple.com/my/iphone/"
    createdAt DateTime Creation date time of transaction "2018-03-21T06:41:22Z"
    updatedAt DateTime Last update date time of transaction "2018-03-21T06:41:22Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIX" (specific fixed date) or "PERMANENT" (never expire) "PERMANENT"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 3
    expiredAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Get Transactions By Code

    Method GET

    https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode/5413b4583a9440dd351b2dde0c0ea166/transactions

    To get all transactions under existing QR code, by passing in code in query parameter (/qrcode/.../transactions).

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode/39d1f014eade17aa77fb2aaa6a4e6afb/transactions" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
      \"amount\": 100,
      \"currencyType\": \"MYR\",
      \"method\": [\"WECHATPAY\"],
      \"expiry\": {
          \"type\": \"PERMANENT\"
      },
      \"quantity\": 2,
      \"type\": \"STATIC\",
      \"storeId\": \"10946114768247530\",
      \"isPreFillAmount\": true
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items []Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "items": [
        {
          "store": {
            "id": "10946114768247530",
            "name": "One Utama",
            "addressLine1": "ANYTHING",
            "addressLine2": "",
            "postCode": "48484",
            "city": "KUALA LUMPUR",
            "state": "W.P. KUALA LUMPUR",
            "country": "MALAYSIA",
            "countryCode": "60",
            "phoneNumber": "12312341234",
            "geoLocation": {
              "latitude": 0,
              "longitude": 0
            },
            "status": "ACTIVE",
            "createdAt": "2018-06-03T08:53:48Z",
            "updatedAt": "2018-06-03T08:53:48Z"
          },
          "referenceId": "",
          "transactionId": "180802093420010425899434",
          "order": {
            "id": "180802093420010425899434",
            "title": "title",
            "detail": "detail",
            "additionalData": "",
            "amount": 100
          },
          "terminalId": "",
          "currencyType": "MYR",
          "balanceAmount": 0,
          "platform": "OPEN_API",
          "method": "WECHATPAY",
          "error": {
            "message": "Payment timeout"
          },
          "transactionAt": "2018-08-02T09:34:53Z",
          "type": "QUICK_PAY",
          "status": "FAILED",
          "region": "MALAYSIA",
          "createdAt": "2018-08-02T09:34:20Z",
          "updatedAt": "2018-08-02T09:34:53Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 1
      }
    }
    

    Transaction object array ("items"):

    Parameter Type Description Example
    store Object Store object (Refer to explanation below)
    referenceId String Transaction ID (from WeChat server) ""
    transactionId String Transaction ID (from RM server) "152161448229438994"
    order Object Order object (Refer to explanation below)
    terminalId String ID of terminal (Optional, if the payment is made through terminal) ""
    currencyType String Currency notation "MYR"
    balanceAmount Uint Total available amount (= total received amount - total refunded amount). In this case, amount 100 is failed, so no amount is received. 0
    platform String "OPEN_API" (generated through API calls) or "PORTAL" (generated through merchant portal) "OPEN_API"
    method String Wallet provider for payment, supports "WECHATPAY", "PRESTO" , "BOOST" , "ALIPAY_CN" ["WECHATPAY","WECHATPAY_MY",
    "WECHATPAY_CN","PRESTO_MY",
    "BOOST_MY",
    "ALIPAY_CN"]
    error String Error message only if transaction failed (optional) {message": "Payment timeout"}
    transactionAt DateTime Transaction date time (from wallet server) "2018-08-02T09:34:53"
    type String Can support "QUICK_PAY" , "QR_PAY" "QUICK_PAY" or "QR_PAY"
    status String Transaction status returned from wallet server, "SUCCESS" or "IN_PROCESS" or "FAILED". "IN_PROCESS" means user scanned and making payment. "FAILED"
    region String Region of wallet, "MALAYSIA" or "CHINA" "MALAYSIA"
    createdAt DateTime Creation date time of transaction (from RM server) "2018-08-02T09:34:53"
    updatedAt DateTime Last update date time of transaction "2018-08-02T09:34:53"

    Store object ("store"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Database object ("meta"):

    Parameter Type Description Example
    count Int Current page record 1

    Payment-Web/App Checkout

    Scenarios:

    1. E-commerce website payment checkout.

    To make payment with a unified payment checkout page.

    Create Transaction Web or Mobile Payment

    Method POST

    https://sb-open.revenuemonster.my/v3/payment/online

    To create a unified payment checkout page for your website and Mobile

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    order Object Yes Object of order (Refer to explanation below)
    method []String Yes Wallet provider for payment, currently supports "WECHATPAY MY", "WECHATPAY CN", "Presto", "Boost","ALIPAY_CN" , "GRABPAY_MY","TNG_MY","RAZER_MY". ["WECHATPAY_MY","WECHATPAY_CN"
    ,"PRESTO_MY","BOOST_MY","TNG_MY" , "ALIPAY_CN","GRABPAY_MY","RAZER_MY"]
    type String Yes Obejct of type (Refer to explanation below)
    storeId String Yes ID of the store to create QR code "10946114768247530"
    redirectUrl String Yes URL to redirect after payment is made "https://google.com"
    notifyUrl String Yes This is a notify URL or callback URL to inform server on transaction status after payment made. "https://google.com"
    layoutVersion String Optional New layout for Web paymnet v1

    Example Request

    curl --location --request POST "{{open_base_path}}/v3/payment/online" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Nonce-Str: XAYZRZNLGCKSTURRFKBIGYALUKLCLJOG" \
      --header "X-Signature: sha256 YTTV0p1XJUllLNwAC/m430ZbteZhdBmUm3aVnKH4XEZU2yfl7liCPzEI40VqTwFcmMLByJ0mRyzc97gzVn1XZVIr1DaPpW3LUv/on82hIDhLue4uJzKg+vS8/CKJC4+SJ1NpL4rDQEg/hdq4mrNIckTN5+UCFbM4tLCDN8FanSoI3SxcfmvfBwuOc5ro4WWStJlr/LxLJWHRdI8ZpTc1gmNkzRKA9YXJI6iACrkg4cUtMkQ0nii9dHu+brKtK2gCtZ6kdPxgiykDlJuPcpHBGsG+wjNGXLxNeeZjbIl6m40dtdwwyiDbdsk/ZelN0J8Xw1rti7a7dHY/vNnN4W+tUA==" \
      --header "X-Timestamp: 1547643342" \
      --data "{
        \"order\": {
            \"title\": \"hello\",
            \"detail\": \"hello\",
            \"additionalData\": \"world\",
            \"amount\": 100,
            \"currencyType\": \"MYR\",
            \"id\": \"13234353336\"
        },
        \"method\": [],
        \"type\": \"WEB_PAYMENT\",
        \"storeId\": \"977596145540933417\",
        \"redirectUrl\": \"https://google.com\",
        \"notifyUrl\": \"https://google.com\",
        \"layoutVersion\": \"v1\"
    }"
    

    Order object ("order"):

    Parameter Type Required Description Example
    title String Yes Order title, max: 32 "Sales"
    detail String Yes Order detail, max: 600 "1 x iPhone X; 2 x SAMSUNG S8"
    additionalData String Yes Order description "Sales"
    amount Uint Yes Amount of order in cent. Only required when "isPrefillAmount" = true. (min RM 0.10 or amount: 10) 100
    currencyType String Yes Currency notation (currently only support MYR) "MYR"
    id String Order ID "6170506694335521334"

    Type Object ("type"):

    Parameter Type Required Description Example
    type String Yes "WEB_PAYMENT" (Currenty for Web payment only support "WECHATPAY_MY","WECHATPAY_CN"
    ,"PRESTO_MY","BOOST_MY",
    "ALIPAY_CN","GRABPAY_MY","TNG_MY","RAZER_MY"
    )
    "WEB_PAYMENT"
    type String Yes "MOBILE_PAYMENT" (Currently for Mobile payment only support "WECHATPAY_MY","WECHATPAY_CN"
    ,"BOOST_MY",
    "ALIPAY_CN","GRABPAY_MY","TNG_MY"
    )
    "MOBILE_PAYMENT"

    "MOBILE_PAYMENT":

    For"MOBILE_PAYMENT" only apply at application.

    SDK for "MOBILE_PAYMENT" :-

    Example Respond

    {
      "item": {
        "checkoutId": "1548316308361173347",
        "url": "https://sb-pg.revenuemonster.my/checkout?checkoutId=1548316308361173347"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object item object (Refer to explanation below)
    checkoutId String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    "item" Object:

    Parameter Type Description Example
    code String Code to identify web payment url "1547775958720585401"
    url String Example to form checkout URL. Note: to change base URL to desired URL. "http://localhost:8081/checkout?code=1547775958720585401"

    Example of Notify URL Response

    images images

    Get Individual QR Code

    Method Get

    https://sb-open.revenuemonster.my/v3/payment/online/qrcode?checkoutId=1561390635417535731&method=WECHATPAY_MY

    REQUEST

    Request Parameters:

    Parameter Type Description Example
    checkoutId String Code to identify web payment url "1547775958720585401"
    method String Wallet provider for payment, currently supports "WECHATPAY MY ","WECHATPAY CN","Presto", "Boost","ALIPAY_CN" , "GRABPAY_MY". ["WECHATPAY_MY"]

    Example Request

    curl --location --request GET "{{open_base_path}}/v3/payment/online/qrcode?checkoutId=1559485554334807004&method=BOOST_MY" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Nonce-Str: XAYZRZNLGCKSTURRFKBIGYALUKLCLJOG" \
      --header "X-Signature: sha256 RLHmhe9pvCnM6wbp2UcQcyyjBXKbVhlbshaZqUBdgxqdnbM6WsmQuQL1PwhsF6/uOxoXtoXaLIi18zN0IQp5MdxNSiq+6MPLZqmPpiWyJSXpzZsUVst43tKp+JZDF8AWXesrol5vj1RVbxOvCfnkmfghA83mlKc4scXIJkqXpFdyKcRmjT6Bsu9nlMh5IdyBSKv3goatgso/4IsEi8R220ZSHp2Ai//g9iKrKG3cgspM2Uj74ZXIrzt8IB+660btXyoanMuqgqirl1ulj59KciqLKqQMYoHfRywJTH0XLDtV1fQHO1FAECwmMd91Y63acnH3BOxo023tF7AXwNASsg==" \
      --header "X-Timestamp: 1547643342"
    

    RESPONSE

    Response Parameters:

    Example Respond

    {
      "item": {
        "qrCodeImageBase64": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAABlBMVEX///8AAABVwtN+AAADOUlEQVR42uzdwW7bOhAF0Pj/f/ot3yZm7iWHaWCdu2oRC5BOAGo8Q7ZfIiIiIiIiIiIiIiIi8vo5b6/4/6/rj7y97LuPfHdXm3cKAAAAABlA+tP1Q7xFWX8ufYiTnwIAAADAjxe+XXnTxX79OJtvgf5OAQAAAOAWQMXz9rLgDt7+FAAAAAD+BMD6svX396DSPvllAAAAAMCFfkD6tT+lTV8U6SMCAAAAwNXJ0B/5078bjQEAAOAzAU5K5qAUTgdA1+8fAAAAALp+wPEeoaqx2fdXp9Z+AAAAPBsgXefTBwu+51cNhaBAn1IAAADAEwHS3Y3BR04q3uq9sX4tAQAAAMCF5fBEK91B2c/cR3sJAAAAeCJA0OzsewnpkL06WhO0BwAAAADgcCU86Wn299Cv5JdGSwAAAADwqp4uWNjTfd7BO+dmFwAAAADPBqjalNUpwHQRT5+kP7QIAAAAABeq4H5drg4jpj2CqYYwAAAAALz644H9JKcvhYNrR88MAQAA4IkAa5Sq9q0m2X2lPb8hAAAAAAC6LYn9hDp9nKrE3WwoAAAAAEDbGejvq9pLWQ3Ag18aAAAAAExMhtJpeXWqJt2Mno7b53eKAgAA4IkAfYmb7lU82fsYtEJ/uyECAACAzwQYPN237psGa3oqc7MhAgAAgIcBpEXs9JpeDY/mz8gAAAAAwNfmSp7ibXpM/0YAAAAAYKserorYqu0ZNDZvbg8HAAAAgKEOZdWw3NwoXp3SBgAAAIDZerjatd0X1OkpmOowIgAAAADsV8EVVFDnpn3O484AAAAAAMxulDx54mqZTrcbXdoeCQAAAADxN/l+iT8psn9ntyQAAAAAxP+/QHBfad0c1MPpBGl+pygAAACeA7BZMvenCk8G70EPFwAAAABeU0OhapLdt0zTidRmHwIAAAAADpui625BOqtO69x+0j6/XR4AAAAANorToBqtJuObu8rnGyIAAAAA0G0ASmWCWroaKI2WwgAAAAAQf51PnySoudMl/lIbGAAAAAB2/yX/dACU7umphuxTu4UAAAAAYGi6Hbwjqg7C+nZH5/4AAAB4LICIiIiIiIiIiIiIiIh8Vv4LAAD//+flU07X8QYtAAAAAElFTkSuQmCC",
        "url": "https://mywallet.wechatpay.com.my/app/pay/myw_order_idx.cgi?prepay_id=415613907510f1b0e0920320010983"
      },
      "code": "SUCCESS"
    }
    

    Example of the Indvidual QR Code

    Decoder Base64 to Image

    iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAABlBMVEX///8AAABVwtN+AAADOUlEQVR42uzdwW7bOhAF0Pj/f/ot3yZm7iWHaWCdu2oRC5BOAGo8Q7ZfIiIiIiIiIiIiIiIi8vo5b6/4/6/rj7y97LuPfHdXm3cKAAAAABlA+tP1Q7xFWX8ufYiTnwIAAADAjxe+XXnTxX79OJtvgf5OAQAAAOAWQMXz9rLgDt7+FAAAAAD+BMD6svX396DSPvllAAAAAMCFfkD6tT+lTV8U6SMCAAAAwNXJ0B/5078bjQEAAOAzAU5K5qAUTgdA1+8fAAAAALp+wPEeoaqx2fdXp9Z+AAAAPBsgXefTBwu+51cNhaBAn1IAAADAEwHS3Y3BR04q3uq9sX4tAQAAAMCF5fBEK91B2c/cR3sJAAAAeCJA0OzsewnpkL06WhO0BwAAAADgcCU86Wn299Cv5JdGSwAAAADwqp4uWNjTfd7BO+dmFwAAAADPBqjalNUpwHQRT5+kP7QIAAAAABeq4H5drg4jpj2CqYYwAAAAALz644H9JKcvhYNrR88MAQAA4IkAa5Sq9q0m2X2lPb8hAAAAAAC6LYn9hDp9nKrE3WwoAAAAAEDbGejvq9pLWQ3Ag18aAAAAAExMhtJpeXWqJt2Mno7b53eKAgAA4IkAfYmb7lU82fsYtEJ/uyECAACAzwQYPN237psGa3oqc7MhAgAAgIcBpEXs9JpeDY/mz8gAAAAAwNfmSp7ibXpM/0YAAAAAYKserorYqu0ZNDZvbg8HAAAAgKEOZdWw3NwoXp3SBgAAAIDZerjatd0X1OkpmOowIgAAAADsV8EVVFDnpn3O484AAAAAAMxulDx54mqZTrcbXdoeCQAAAADxN/l+iT8psn9ntyQAAAAAxP+/QHBfad0c1MPpBGl+pygAAACeA7BZMvenCk8G70EPFwAAAABeU0OhapLdt0zTidRmHwIAAAAADpui625BOqtO69x+0j6/XR4AAAAANorToBqtJuObu8rnGyIAAAAA0G0ASmWCWroaKI2WwgAAAAAQf51PnySoudMl/lIbGAAAAAB2/yX/dACU7umphuxTu4UAAAAAYGi6Hbwjqg7C+nZH5/4AAAB4LICIiIiIiIiIiIiIiIh8Vv4LAAD//+flU07X8QYtAAAAAElFTkSuQmCC

    images

    images

    Merchant

    This is the section describing how to query merchant details.

    Get Merchant Profile

    Method GET

    https://sb-open.revenuemonster.my/v3/merchant

    To query for merchant details.

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    Eg. Plain text parameters: method=get&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/merchant&signType=sha256&timestamp=1527407052

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/merchant" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 JyMp21esWHb8r+wxpsj2J++6TGaO+pSfHsjqmG2T+S59e+S3sxsr+/cJHbmC3CaenBwb1Cp3/4EJxhzXWf7OEg==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Object of refund details. (Refer explanantion below)
    code String Status returned from Revenue Monster server, whether successfully called our endpoint or not. "SUCCESS"

    Example Respond

    {
      "item": {
        "id": "5611759774758429587",
        "companyName": "YUSSUF TEST",
        "companyType": "SOLE PROPRIETORSHIP",
        "companyLogoUrl": "https://storage.googleapis.com/rm-dev-merchant/5611759774758429587/logo/merchant.jpeg",
        "registrationNumber": "12343",
        "businessCategory": "INSURANCE SERVICES",
        "establishedAt": "2018-05-12T16:00:00Z",
        "countryCode": "60",
        "phoneNumber": "167367171",
        "addressLine1": "20, JALAN JASA 38, TAMAN MUTIARA RINI",
        "addressLine2": "",
        "postcode": "81300",
        "city": "AYER HITAM",
        "state": "JOHOR",
        "country": "MALAYSIA",
        "invoiceAddress": {
          "addressLine1": "20, JALAN JASA 38, TAMAN MUTIARA RINI",
          "addressLine2": "",
          "postcode": "81300",
          "city": "AYER HITAM",
          "state": "JOHOR",
          "country": "MALAYSIA"
        },
        "isActive": true,
        "status": "VERIFIED",
        "isMasterMerchant": false,
        "masterMerchantId": "2301663653361832803",
        "isPartner": false,
        "partnerId": "2301663653361832803",
        "gstNo": "",
        "createdAt": "2018-05-14T09:26:22Z",
        "updatedAt": "2018-05-22T05:23:02Z"
      },
      "code": "SUCCESS"
    }
    

    Item Object:

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    companyName String Company name of merchant "REVENUE MONSTER"
    companyType String Type of company incorporation "SOLE PROPRIETOR"
    companyLogoUrl String Public URL to show merchant's logo "https://storage.googleapis.com/rm-dev-asset/img/merchant.png"
    registrationNumber String Registration number of merchant “12344”
    businessCategory String Business category of merchant "SOFTWARE AND IT"
    establishedAt String Established date time of merchant "2018-03-26T04:50:57Z"
    countryCode String Country code of merchant contact number "60"
    phoneNumber String Phone number of merchant "377334080"
    addressLine1 String Address 1 of merchant "20, JALAN JASA 38, TAMAN MUTIARA RINI"
    addressLine2 String Address 2 of merchant ""
    postcode String Postcode of merchant “81300”
    city String City of merchant "Selangor"
    state String State of merchant "Selangor"
    country String Country of merchant "Malaysia"
    invoiceAddres Object Object of Invoice Address (Refer below)
    isActive Boolean Merchant active or deactivated status true
    status String Current status of merchant “REVIEWING”
    isMasterMerchant Bool Master Merchant flag true
    masterMerchantId String Master Merchant ID, if any "2301663653361832803"
    isPartner Bool Partner Merchant flag true
    partnerId String Partner Merchant ID, if any "2301663653361832803"
    gstNo String GST No, if any ""
    createdAt DateTime Creation date time of merchant "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of merchant "2018-02-12T08:53:13Z"

    Invoice Address Object:

    Parameter Type Description Example
    addressLine1 String Address 1 of merchant "20, JALAN JASA 38, TAMAN MUTIARA RINI"
    addressLine2 String Address 2 of merchant ""
    postcode String Postcode of merchant “81300”
    city String City of merchant "Selangor"
    state String State of merchant "Selangor"
    country String Country of merchant "Malaysia"

    Get Merchant Subscriptions

    Method Get

    https://sb-open.revenuemonster.my/v3/merchant/subscriptions

    To query for merchant product subscription details.

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/merchant/subscriptions" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 fvPpcLVgEcEFWc9sZkOxDFENrXcBodygcHp3XPTiN8BPs2IDeCGvYI9ijREeWKaPPenuAcpIGGAf2/xeaHxjMQ==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    Eg. Plain Text Parameters: method=get&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/merchant&signType=sha256&timestamp=1527407052

    Example Respond

    {
      "item": [
        {
          "id": 1001,
          "gracePeriod": 90,
          "expiryAt": "2018-04-28T06:36:08Z",
          "terminateAt": "2018-07-27T23:59:59Z",
          "status": "ACTIVE"
        },
        {
          "id": 1000,
          "gracePeriod": 90,
          "expiryAt": "2018-04-25T02:51:10Z",
          "terminateAt": "2018-07-24T23:59:59Z",
          "status": "ACTIVE"
        },
        {
          "id": 1003,
          "gracePeriod": 90,
          "expiryAt": "2018-04-29T05:04:30Z",
          "terminateAt": "2018-07-28T23:59:59Z",
          "status": "ACTIVE"
        }
      ],
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Object of refund details. (Refer explanantion below)
    code String Status returned from Revenue Monster server, whether successfully called our endpoint or not. "SUCCESS"

    Item Object:

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    companyName String Company name of merchant "REVENUE MONSTER"
    companyType String Type of company incorporation "SOLE PROPRIETOR"
    companyLogoUrl String Public URL to show merchant's logo "https://storage.googleapis.com/rm-dev-asset/img/merchant.png"
    registrationNumber String Registration number of merchant “12344”
    businessCategory String Business category of merchant "SOFTWARE AND IT"
    establishedAt String Established date time of merchant "2018-03-26T04:50:57Z"
    countryCode String Country code of merchant contact number "60"
    phoneNumber String Phone number of merchant "377334080"
    addressLine1 String Address 1 of merchant "20, JALAN JASA 38, TAMAN MUTIARA RINI"
    addressLine2 String Address 2 of merchant ""
    postcode String Postcode of merchant “81300”
    city String City of merchant "Selangor"
    state String State of merchant "Selangor"
    country String Country of merchant "Malaysia"
    invoiceAddres Object Object of Invoice Address (Refer below)
    isActive Boolean Merchant active or deactivated status true
    status String Current status of merchant “REVIEWING”
    isMasterMerchant Bool Master Merchant flag true
    masterMerchantId String Master Merchant ID, if any "2301663653361832803"
    isPartner Bool Partner Merchant flag true
    partnerId String Partner Merchant ID, if any "2301663653361832803"
    gstNo String GST No, if any ""
    createdAt DateTime Creation date time of merchant "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of merchant "2018-02-12T08:53:13Z"

    Invoice Address Object:

    Parameter Type Description Example
    addressLine1 String Address 1 of merchant "20, JALAN JASA 38, TAMAN MUTIARA RINI"
    addressLine2 String Address 2 of merchant ""
    postcode String Postcode of merchant “81300”
    city String City of merchant "Selangor"
    state String State of merchant "Selangor"
    country String Country of merchant "Malaysia"

    Store

    This is the section describing how to manage merchant stores(outlets).

    Get Store

    Method Get

    https://sb-open.revenuemonster.my/v3/stores

    To query for ALL stores under this merchant.

    Exxample Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/stores" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 O5T6ythlvnlr1f8NS0VsMRDSmIPhuZ8cmHmvGaEJz2yA8kdS71h5MpO1L7wCuQPRQ/fMWtziEMdjTQ7dbYbbEw==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    Eg. Plain Text Parameters:

    method=get&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/stores&signType=sha256&timestamp=1527407052

    Example Respond

    {
      "items": [
        {
          "id": "1662168764176583360",
          "name": "Test Store",
          "addressLine1": "20, JALAN JASA 38, TAMAN MUTIARA RINI",
          "addressLine2": "",
          "postCode": "81230",
          "city": "BALING",
          "state": "KEDAH",
          "country": "MALAYSIA",
          "countryCode": "60",
          "phoneNumber": "12354645547",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-05-16T08:05:02Z",
          "updatedAt": "2018-05-16T08:05:02Z"
        },
        {
          "id": "526742853846521323",
          "name": "yussuf",
          "addressLine1": "GUGUSAN MELUR",
          "addressLine2": "",
          "postCode": "47810",
          "city": "PETALING JAYA",
          "state": "SELANGOR",
          "country": "MALAYSIA.",
          "countryCode": "60",
          "phoneNumber": "176473298",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-05-27T10:12:25Z",
          "updatedAt": "2018-05-27T10:12:25Z"
        },
        {
          "id": "6883264812332703106",
          "name": "XXX",
          "addressLine1": "",
          "addressLine2": "",
          "postCode": "",
          "city": "",
          "state": "",
          "country": "",
          "countryCode": "",
          "phoneNumber": "",
          "geoLocation": {
            "latitude": 0,
            "longitude": 0
          },
          "status": "ACTIVE",
          "createdAt": "2018-05-14T09:26:23Z",
          "updatedAt": "2018-05-14T09:26:23Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 3,
        "total": 3
      }
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items Object[] Array of store object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"
    meta Object Database object (Refer to explanation below)

    Array of store object ("items"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    isDefault String Default store of merchant (first store created upon signup) true
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Database object ("meta"):

    Parameter Type Description Example
    count Int Current page record 1
    total Int Total record in database 1
    cursor String Optional, if pagination exists. 1

    Get Store By ID

    Method GET

    https://sb-open.revenuemonster.my/v3/store/10946114768247530

    REQUEST

    Request Parameters:

    Eg.Plain Text Parameters:

    method=get&nonceStr=MNhrdDgIDlTKdlYXzfhEvqHpGjRhvrPe&requestUrl=https://sb-open.revenuemonster.my/v3/store/1553067214325776225& signType=sha256&timestamp=1527407052

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/store/10946114768247530" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 O5T6ythlvnlr1f8NS0VsMRDSmIPhuZ8cmHmvGaEJz2yA8kdS71h5MpO1L7wCuQPRQ/fMWtziEMdjTQ7dbYbbEw==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    Response

    Response Parameters:

    Example Respond

    {
      "item": {
        "id": "1553067214325776225",
        "name": "Starbucks",
        "imageUrl": "https://storage.googleapis.com/rm-prod-asset/img/store.png",
        "addressLine1": "Berjaya Times Square,  Imbi",
        "addressLine2": "",
        "postCode": "55100",
        "city": "Kuala Lumpur",
        "state": "W.P. Kuala Lumpur",
        "country": "Malaysia",
        "countryCode": "60",
        "phoneNumber": "1234567890",
        "geoLocation": {
          "latitude": 3.1421984,
          "longitude": 101.71055120000005
        },
        "status": "ACTIVE",
        "createdAt": "2019-03-20T07:33:34Z",
        "updatedAt": "2019-03-20T07:33:34Z"
      },
      "code": "SUCCESS"
    }
    
    Parameter Type Description Example
    item Object[] Array of store object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Array of store object ("item"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    imageUrl String Image of your Store "https://storage.googleapis.com/rm-prod-asset/img/store.png"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "55100"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [String] Geo Location (latitude and longtitude) of store {"Lat": 3.1349857, "Lng": 101.6136659 }
    status String Current status of store "ACTIVE"
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Create Store

    Method Post

    https://sb-open.revenuemonster.my/v3/store

    To create store under this merchant.

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    name String Yes Store Name "REVENUE MONSTER"
    addressLine1 String Yes Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String No Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Yes Postcode of store "47400"
    city String Yes City of store "Petaling Jaya"
    state String Yes State of store "Selangor"
    country String Yes Country of store "Malaysia"
    countryCode String Yes Country code of store contact number "60"
    phoneNumber String Yes Phone number of store "377334080"
    geoLocation Object of [Float] No Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longitude": 101.6136659 }

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/store" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 X+IAMfyCdGTE4Or/jdYqBbwRvCpzNqv1lnaXUd+iWE37nCmxAT69x3PqdmcwyQnmO6BuHsqNy7znCFg3L9sjxg==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
        \"addressLine1\": \"gugusan melur\",
        \"city\": \"petaling jaya\",
        \"country\": \"malaysia.\",
        \"name\": \"yussuf\",
        \"countryCode\": \"60\",
        \"phoneNumber\": \"176473298\",
        \"postCode\": \"47810\",
        \"state\": \"selangor\"
    }"
    

    RESPONSE

    Request Parameters:

    Parameter Type Description Example
    item Object[] Array of store object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "item": {
        "id": "5237968049713769466",
        "name": "yussuf",
        "addressLine1": "GUGUSAN MELUR",
        "addressLine2": "",
        "postCode": "47810",
        "city": "PETALING JAYA",
        "state": "SELANGOR",
        "country": "MALAYSIA.",
        "countryCode": "60",
        "phoneNumber": "176473298",
        "geoLocation": {
          "latitude": 0,
          "longitude": 0
        },
        "status": "ACTIVE",
        "createdAt": "2018-05-27T17:17:12.196274Z",
        "updatedAt": "2018-05-27T17:17:12.196283Z"
      },
      "code": "SUCCESS"
    }
    

    Array of store object ("item"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    isDefault String Default store of merchant (first store created upon signup) true
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Update Store

    Method PATC

    https://sb-open.revenuemonster.my/v3/store/1662168764176583360

    To update specific store under this merchant. Specify store_id in query parameter.

    Example Request

    curl --location --request PATCH "https://sb-open.revenuemonster.my/v3/store/1662168764176583360" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Uf8oEHcq3l5ZkPc/y9eUsRjoKkx0dLUQz5PEFntWUZcR4A0DYdtQ9+VTx5Rq4e4XsRVp+4KZb4cwpDfzPABCZA==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
        \"addressLine1\": \"gugusan melur\",
        \"city\": \"petaling jaya\",
        \"country\": \"malaysia.\",
        \"name\": \"yussuf\",
        \"countryCode\": \"60\",
        \"phoneNumber\": \"176473298\",
        \"postCode\": \"47810\",
        \"state\": \"selangor\"
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    name String Yes Store Name "REVENUE MONSTER"
    addressLine1 String Yes Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String No Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Yes Postcode of store "47400"
    city String Yes City of store "Petaling Jaya"
    state String Yes State of store "Selangor"
    country String Yes Country of store "Malaysia"
    countryCode String Yes Country code of store contact number "60"
    phoneNumber String Yes Phone number of store "377334080"
    geoLocation Object of [Float] No Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }

    Eg. Plain Text Parameters:
    data=eyJjdXJyZW5jeVR5cGUiOiJNWVIiLCJvdXRUcmFkZU5vIjoiMTgwNjA2MDYxMjU5NTUzNzg1MTMzOSIsInJlYXNvbiI6ImhlbGxvIiwicmVmdW5kIjp7ImFtb3VudCI6MTAsInR5cGUiOiJGVUxMIn0sInRvdGFsQW1vdW50IjoxMH0=&method=patch&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/store/1662168764176583360&signType=sha256&timestamp=1527407052

    Example Respond

    {
      "item": {
        "id": "1662168764176583360",
        "name": "yussuf",
        "addressLine1": "GUGUSAN MELUR",
        "addressLine2": "",
        "postCode": "47810",
        "city": "PETALING JAYA",
        "state": "SELANGOR",
        "country": "MALAYSIA.",
        "countryCode": "60",
        "phoneNumber": "176473298",
        "geoLocation": {
          "latitude": 0,
          "longitude": 0
        },
        "status": "ACTIVE",
        "createdAt": "2018-05-27T17:24:06.501633Z",
        "updatedAt": "2018-05-27T17:24:06.501634Z"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Request Parameters:

    Parameter Type Description Example
    item Object[] Array of store object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Array of store object ("item"):

    Parameter Type Description Example
    id String Store ID "6170506694335521334"
    name String Store Name "REVENUE MONSTER"
    addressLine1 String Store Address 1 "B-5-30, 5th Floor, Block Bougainvillea,"
    addressLine2 String Store Address 2 "PJU 6A, Lebuhraya SPRINT, 10 Boulevard,"
    postCode String Postcode of store "47400"
    city String City of store "Petaling Jaya"
    state String State of store "Selangor"
    country String Country of store "Malaysia"
    countryCode String Country code of store contact number "60"
    phoneNumber String Phone number of store "377334080"
    geoLocation Object of [Float] Geo Location (latitude and longtitude) of store {"latitude": 3.1349857, "longtitude": 101.6136659 }
    status String Current status of store "ACTIVE"
    isDefault String Default store of merchant (first store created upon signup) true
    createdAt DateTime Creation date time of store "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of store "2018-02-12T08:53:13Z"

    Delete Store

    Method DEL

    https://sb-open.revenuemonster.my/v3/store/1662168764176583360

    To delete specific store under this merchant. Specify store_id in query parameter.

    Example Request

    curl --location --request DELETE "https://sb-open.revenuemonster.my/v3/store/1662168764176583360" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 J5x9KSPQSfL7qMdVaEiDekzbHWgG2UnkIMhvWEWU/2B4uk9OnnCxsallgPJfIPq0eVGmE7cWxPj1t2BuS0mMRg==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    Eg. Plain Text Parameters:

    method=delete&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/store/1662168764176583360&signType=sha256&timestamp=1527407052

    Example Respond

    {
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    User

    To query for ALL users under this merchant.

    Get User

    Method GET

    https://sb-open.revenuemonster.my/v3/user

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/user" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 HeVHowOfhueqMqUU6+ZawOgG5esSGi/DYoobUC/GUnUJqeVOtIJUpb+XzSIfaoJoraceaZE8lbjNKkM8tNCDRA==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1527407052" \
      --data "{
    
    }"
    

    REQUEST

    Request Parameters:

    Note: No request parameter is required for this endpoint

    Eg. Plain Text Parameters:

    method=get&nonceStr=VYNknZohxwicZMaWbNdBKUrnrxDtaRhN&requestUrl=https://sb-open.revenuemonster.my/v3/user&signType=sha256&timestamp=1527407052

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object[] Array of user object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Respond

    {
      "item": {
        "id": "2728070797661038926",
        "firstName": "M",
        "lastName": "YUSSUF",
        "countryCode": "60",
        "phoneNumber": "176473298",
        "email": "yussuf@revenuemonster.my",
        "avatarUrl": "https://storage.googleapis.com/rm-dev-asset/img/avatar.png",
        "status": "ACTIVE",
        "storeId": ["6883264812332703106"],
        "isActive": true,
        "createdAt": "2018-05-14T09:26:23Z",
        "updatedAt": "2018-05-15T03:29:56Z"
      },
      "code": "SUCCESS"
    }
    

    Array of store object ("item"):

    Parameter Type Description Example
    id String User ID “8190656045166232716”
    firstName String First name of user “MOHAMED”
    lastName String Last name of user “YUSSUF”
    countryCode String Country code of user contact number "60"
    phoneNumber String Phone number of user "377334080"
    email String Email address of user "yussuf@revenuemonster.my"
    avatarUrl String Public URL to show user’s avatar "https://storage.googleapis.com/rm-prod-asset/img/avatar.png"
    status String Current status of user “ACTIVE”
    storeId String Store ID "6170506694335521334"
    isActive Boolean User active or deactivated status true
    createdAt DateTime Creation date time of user "2018-02-12T08:53:13Z"
    updatedAt DateTime Last update date time of user "2018-02-12T08:53:13Z"

    Loyalty Point

    To give loyalty points to customers via phone number or member ID

    Give Loyalty Point

    Method Post

    https://sb-open.revenuemonster.my/v3/loyalty/reward

    To give loyalty points to customers using phone number or member ID.

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/loyalty/reward" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"currencyType\": \"MYR"\,
       \"point\": 100,
       \"type\": \"PHONENUMBER\",
       \"countryCode\": \"60\",
       \"phoneNumber\": \"176473298\"
    }"
    

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/loyalty/reward" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
       \"currencyType\": \"MYR\",
       \"point\": 100,
       \"type\": \"QRCODE\",
    
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    currencyType String Yes Currently MYR only MYR
    point Integer Yes Loyalty point given to customers. 100
    type String Yes "ID", "PHONENUMBER" or "QRCODE" Use phone number , ID or QR Code to give loyalty points.
    memberId String No Member ID if type "ID" being provided. "2777058682717858418"
    countryCode String No Country code if type "PHONENUMBER" being provided. "60"
    phoneNumber String No Phone number if type "PHONENUMBER" being provided. "172826990"

    Example Respond (PhoneNumber)

    {
      "code": "SUCCESS"
    }
    

    Example Respond (QRCDOE)

    {
      "item": {
        "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/qr/4118165203679668885/loyalty/d3008719d04cab91c53eb0b5d8cc4ee6"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Give Spending Loyalty Point

    Method POST

    https://sb-open.revenuemonster.my/v3/loyalty/spending-reward

    To give loyalty points to customers using phone number or member ID.

    Example Request

    curl --location --request POST "{{open_base_path}}/v3/loyalty/reward" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
       \"currencyType\": \"MYR\",
       \"amount\": 100,
       \"type\": \"PHONENUMBER\",
       \"countryCode\": \"60\",
       \"phoneNumber\": \"176473298\"
    }"
    

    Example Request (QRCODE)

    curl --location --request POST "{{open_base_path}}/v3/loyalty/reward" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
       \"currencyType\": \"MYR\",
       \"amount\": 100,
       \"type\": \"QRCODE\",
    
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    currencyType String Yes Currently MYR only MYR
    amount Integer Yes Loyalty point given to customers. 100
    type String Yes "ID" ,"PHONENUMBER" or "QRCODE" Use phone number , ID or QR Code to give loyalty points.
    memberId String No Member ID if type "ID" being provided. "2777058682717858418"
    countryCode String No Country code if type "PHONENUMBER" being provided. "60"
    phoneNumber String No Phone number if type "PHONENUMBER" being provided. "172826990"

    Example Respond (Phone Number)

    {
      "code": "SUCCESS"
      "item": {
        "id": "d3008719d04cab91c53eb0b5d8cc4ee6"
      }
    }
    

    Example Respond (QRCDOE)

    {
      "item": {
        "qrCodeUrl": "https://dev-rm-api.ap.ngrok.io/qr/4118165203679668885/loyalty/d3008719d04cab91c53eb0b5d8cc4ee6",
        "id": "d3008719d04cab91c53eb0b5d8cc4ee6"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Body

    Cancel Spending Loyalty Point

    Method POST

    https://sb-open.revenuemonster.my/v3/loyalty/spending-reward/cancel

    Example Request

    curl --location --request POST "{{open_base_path}}/v3/loyalty/spending-reward/cancel" \
    --header "Content-Type: application/json"\
    --header "Authorization: Bearer {{clientToken}}" \
    --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
    --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
    --header "X-Timestamp: 1528450585"\
    --data-raw "{
      "id":"dee13d3470f2dd43466c252cfc67f967"
    
    }"
    

    To cancel loyalty points by id

    REQUEST

    Request Parameters:

    Parameter Type Required Description Example
    id String Yes Get the id from spending loyalty point api "dee13d3470f2dd43466c252cfc67f967"

    Example Respond

    {
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Calculate Spending Reward

    Method GET

    https://sb-open.revenuemonster.my/v3/loyalty/spending-reward/calculate

    Example Request

    curl --location --request GET "{{open_base_path}}/v3/loyalty/spending-reward/calculate" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"currencyType\": \"MYR\"
        \"amount\": 300
    }"
    

    REQUEST

    Request Parameters:

    Parameter Type Description Example
    currencyType String Currently MYR only MYR
    amount int Amount Sales 300

    Example Respond

    {
      "item": {
        "point": 300
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Point object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Point Object (item)

    Parameter Type Description Example
    Point int Loyalty point given to customers. 300

    Currency notation (currently only support MYR)

    Loyalty Members

    Get Loyalty Members

    Method Get

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/loyalty/members" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    https://sb-open.revenuemonster.my/v3/loyalty/members

    Example Respond

    {
      "items": [
        {
          "id": "2940921291529816182",
          "name": "Gan",
          "email": "junkai@revenuemonster.my",
          "nric": "",
          "address": {
            "addressLine1": "",
            "addressLine2": "",
            "postcode": "",
            "city": "",
            "state": "",
            "country": ""
          },
          "gender": "",
          "state": "",
          "birthDate": "0001-01-01T00:00:00Z",
          "loyaltyPoint": 0,
          "countryCode": "60",
          "phoneNumber": "167367171",
          "profileImageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/avatar.png",
          "memberTier": null,
          "status": "ACTIVE",
          "createdAt": "2018-09-19T10:00:21Z"
        },
        {
          "id": "3328113896344269171",
          "name": "Sharon",
          "email": "sharon@apacvebture.com",
          "nric": "",
          "address": {
            "addressLine1": "",
            "addressLine2": "",
            "postcode": "",
            "city": "",
            "state": "",
            "country": ""
          },
          "gender": "",
          "state": "",
          "birthDate": "0001-01-01T00:00:00Z",
          "loyaltyPoint": 99,
          "countryCode": "60",
          "phoneNumber": "1126195189",
          "profileImageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/avatar.png",
          "memberTier": null,
          "status": "ACTIVE",
          "createdAt": "2018-09-13T09:17:24Z"
        },
        {
          "id": "2777058682717858418",
          "name": "yussuf",
          "email": "yussuf@gmail.com",
          "nric": "",
          "address": {
            "addressLine1": "",
            "addressLine2": "",
            "postcode": "",
            "city": "",
            "state": "",
            "country": ""
          },
          "gender": "",
          "state": "",
          "birthDate": "0001-01-01T00:00:00Z",
          "loyaltyPoint": 400,
          "countryCode": "60",
          "phoneNumber": "176473298",
          "profileImageUrl": "https://storage.googleapis.com/rm-dev-asset/img/avatar.png",
          "memberTier": null,
          "status": "ACTIVE",
          "createdAt": "2018-09-26T07:13:13Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 3
      }
    }
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Loyalty Member

    Method Get

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/loyalty/member/2940921291529816182" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    https://sb-open.revenuemonster.my/v3/loyalty/member/2940921291529816182

    Example Respond

    {
      "item": {
        "id": "2940921291529816182",
        "name": "Gan",
        "email": "junkai@revenuemonster.my",
        "nric": "",
        "address": {
          "addressLine1": "",
          "addressLine2": "",
          "postcode": "",
          "city": "",
          "state": "",
          "country": ""
        },
        "gender": "",
        "state": "",
        "birthDate": "0001-01-01T00:00:00Z",
        "loyaltyPoint": 0,
        "countryCode": "60",
        "phoneNumber": "167367171",
        "profileImageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/avatar.png",
        "memberTier": null,
        "status": "ACTIVE",
        "createdAt": "2018-09-19T10:00:21Z"
      },
      "code": "SUCCESS"
    }
    

    headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Loyalty Member Point History

    Method Get

    https://sb-open.revenuemonster.my/v3/loyalty/member/2940921291529816182/history

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/loyalty/member/2940921291529816182/history" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    Example Respond

    {
      "items": [
        {
          "key": "EhIKBk1lbWJlchD2kJLw04qQ6CgSGQoNTWVtYmVyUHJvZmlsZRDFjJ-q6rzOxi8SGgoOTG95YWx0eUhpc3RvcnkQs7zyjL79rLIh",
          "type": "POINT_EXPIRED",
          "description": "99 loyalty points expired",
          "point": -99,
          "PointBalance": 0,
          "createdAt": "2018-09-19T16:00:00Z",
          "updatedAt": "0004-04-04T04:04:04Z"
        },
        {
          "key": "EhIKBk1lbWJlchD2kJLw04qQ6CgSGQoNTWVtYmVyUHJvZmlsZRDFjJ-q6rzOxi8SGgoOTG95YWx0eUhpc3RvcnkQ5dH4usjY7coe",
          "type": "VOUCHER_REDEEM",
          "description": "Redeemed voucher",
          "point": 0,
          "PointBalance": 99,
          "createdAt": "2018-09-19T10:01:02Z",
          "updatedAt": "0001-01-01T00:00:00Z"
        },
        {
          "key": "EhIKBk1lbWJlchD2kJLw04qQ6CgSGQoNTWVtYmVyUHJvZmlsZRDFjJ-q6rzOxi8SGgoOTG95YWx0eUhpc3RvcnkQmtaHztvlwqUW",
          "type": "VOUCHER_REDEEM",
          "description": "Discount for Apple Product voucher redeemed",
          "point": -1,
          "PointBalance": 99,
          "createdAt": "2018-09-19T10:00:37Z",
          "updatedAt": "2018-09-19T10:00:37Z"
        },
        {
          "key": "EhIKBk1lbWJlchD2kJLw04qQ6CgSGQoNTWVtYmVyUHJvZmlsZRDFjJ-q6rzOxi8SGgoOTG95YWx0eUhpc3RvcnkQzYCj3ofay5YO",
          "type": "QR_CODE_REDEEM",
          "description": "Earned 100 points",
          "point": 100,
          "PointBalance": 100,
          "createdAt": "2018-09-19T10:00:21Z",
          "updatedAt": "2018-09-19T10:00:21Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 4
      }
    }
    

    headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Post Bulk Create Members

    Method Post

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/loyalty/member/2940921291529816182" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    https://sb-open.revenuemonster.my/v3/loyalty/members

    headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
      "item": {
        "id": "2940921291529816182",
        "name": "Gan",
        "email": "junkai@revenuemonster.my",
        "nric": "",
        "address": {
          "addressLine1": "",
          "addressLine2": "",
          "postcode": "",
          "city": "",
          "state": "",
          "country": ""
        },
        "gender": "",
        "state": "",
        "birthDate": "0001-01-01T00:00:00Z",
        "loyaltyPoint": 0,
        "countryCode": "60",
        "phoneNumber": "167367171",
        "profileImageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/avatar.png",
        "memberTier": null,
        "status": "ACTIVE",
        "createdAt": "2018-09-19T10:00:21Z"
      },
      "code": "SUCCESS"
    }
    

    Body

    Post Bulk register Loyalty Members

    Method Post

    https://sb-open.revenuemonster.my/v3/loyalty/members

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/loyalty/members" \
      --header "Content-Type: application/json" \
      --data "[
        {
            \"name\": \"zhengyan peh\",
            \"countryCode\": \"60\",
            \"phoneNumber\": \"149669976\",
            \"nric\": \"970503145887\",
            \"gender\": \"MALE\",
            \"state\": \"\",
            \"address\": {
                \"addressLine1\": \"\",
                \"addressLine2\": \"\",
                \"postcode\": \"52100\",
                \"city\": \"\",
                \"country\": \"\"
            }
        }
    ]"
    

    Headers

    Content-Type application/json

    Body

    Voucher

    To manage vouchers for the merchant.

    Post Issue Voucher

    Method Post

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/voucher-batch/EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg/issue" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{}"
    

    https://sb-open.revenuemonster.my/v3/voucher-batch/EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg/issue

    To issue vouchers for customer.

    The URL is consist of [base_URL]/v3/voucher-batch/[batchkey]/issue.

    [base_URL] is the base URL depending on your environment (Sandbox or production)

    [batchkey] can be retrieved by viewing at merchant portal or using endpoint Get voucher By Batches

    REQUEST

    Request Parameters:

    Just pass in an empty JSON object,
    Example: {}

    Example Respond

    {
      "item": {
        "code": "NAklEfbVdV",
        "qrUrl": "http://api.local.rm:8080/qr/4118165203679668885/voucher/NAklEfbVdV"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Voucher object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Voucher object ("item"):

    Parameter Type Description Example
    code String Voucher Code, members can keep this code for future redemption. Same as the qrURL below except this code is not a URL. "NAklEfbVdV"
    qrUrl String QR code for user to scan with Wechat or Facebook to add the voucher into their member account. "http://api.revenuemonster.my/qr
    /4118165203679668885/voucher/NAklEfbVdV"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Post Void Voucher

    Method Post

    https://sb-open.revenuemonster.my/v3/voucher/NAklEfbVdV/void

    To void voucher(s) of customer.

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/voucher/NAklEfbVdV/void" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{}"
    

    The URL is consist of [base_URL]/v3/voucher/[code]/issue.

    [base_URL] is the base URL depending on your environment (Sandbox or production)

    [code] is the code generated from Issue Voucher endpoint.

    REQUEST

    Request Parameters:

    Just pass in an empty JSON object,
    Example: {}

    Example Respond

    {
      "item": {
        "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW",
        "label": "oijfge",
        "redemptionRuleKey": null,
        "voucherBatchKey": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg",
        "type": "GIFT",
        "amount": 0,
        "discountRate": 0,
        "minimumSpendAmount": 0,
        "origin": "SYSTEM",
        "imageUrl": "",
        "memberProfile": null,
        "redemptionRule": null,
        "assignedAt": "2018-09-28T17:15:17Z",
        "payload": null,
        "qrUrl": "",
        "code": "NAklEfbVdV",
        "isShipping": false,
        "address": null,
        "expiry": {
          "type": "DYNAMIC",
          "day": 100,
          "expiredAt": "2019-01-06T17:19:35Z"
        },
        "usedAt": "2018-09-28T17:19:44.686549737Z",
        "redeemedAt": "2018-09-28T17:19:35Z",
        "isDeviceRedeem": false,
        "status": "VOID",
        "createdAt": "2018-06-21T11:08:00Z",
        "updatedAt": "2018-09-28T17:19:44.686549977Z"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Voucher object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Voucher object ("item"):

    Parameter Type Description Example
    key String Voucher key "EhQKCE1lcmNoYW50EJXVzd3wra
    qTORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW"
    label String label of voucher for merchant remarks "Free Breakfast"
    voucherBathKey String Parent key of current voucher "EhQKCE1lcmNoYW50EJXVzd3wraqTORIY
    CgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg"
    type String Define type of vouchers: “DISCOUNT”, “GIFT”, “CASH" "GIFT"
    amount UInt Required if type = “CASH", notation in cents, eg. RM 1.00 = 100 0
    discountRate UInt Required if type = “DISCOUNT", notation without decimals, eg. 1% = 100 100
    minimumSpendAmount UInt min amount to activate this voucher, required if type = “CASH”, “DISCOUNT", notation in cents, eg. RM 1.00 = 100 100
    origin String “SYSTEM” (voucher code generated from RM server), “SELF” (voucher code uploaded from merchant csv file) "SYSTEM"
    imageUrl String Image URL of current voucher, optional ""
    memberProfile String Member profile of user's social media ""
    assignedAt DateTime Date time of voucher issuance (UTC) "2018-09-28T17:15:17Z"
    qrUrl String QR code for user to scan with Wechat or Facebook to add the voucher into their member account. "http://api.revenuemonster.my/qr
    /4118165203679668885/voucher/NAklEfbVdV"
    code String Voucher Code, members can keep this code for future redemption. Same as the qrURL below except this code is not a URL. "NAklEfbVdV"
    isShipping Boolean "True" if items/goods to be delivered physically to customers false
    address String Required if isShipping = true null
    expiry Object of Expiry Expiry date time of current voucher (Refer below)
    usedAt DateTime Date time of voucher being voided (UTC) "GIFT"
    redeemedAt DateTime Date time of voucher being redeemed (UTC) "GIFT"
    isDeviceRedeem Boolean “TRUE” means only can be redeemed through merchant app. “FALSE” means customer can do redemption from own loyalty app. false
    status String Status of current voucher: 1. Merchant created voucher batch (status=valid)
    2. Merchant issued or going to transferred to customers (status=issued)
    3. Merchant shows voucher to customer and customer scan to get it (status=redeemed)
    4. Customers go back to shop and use the voucher (status=void)
    "VALID"
    createdAt DateTime Date time of voucher being created (UTC) "2018-06-21T11:08:00Z"
    updatedAt DateTime Date time of voucher being updated (UTC) "2018-09-28T17:19:44.686549977Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) "DYNAMIC"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 30
    expiryAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Voucher By Code

    Method Get

    https://sb-open.revenuemonster.my/v3/voucher/NAklEfbVdV

    To get a single voucher by code.

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/voucher/NAklEfbVdV" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{}"
    

    REQUEST

    Request Parameters:

    Just pass in an empty JSON object,
    Example: {}

    Specify code in query string (/v3/voucher/code)

    Example Respond

    {
      "item": {
        "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW",
        "label": "oijfge",
        "redemptionRuleKey": null,
        "voucherBatchKey": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg",
        "type": "GIFT",
        "amount": 0,
        "discountRate": 0,
        "minimumSpendAmount": 0,
        "origin": "SYSTEM",
        "imageUrl": "",
        "memberProfile": null,
        "redemptionRule": null,
        "assignedAt": "2018-09-28T17:15:17Z",
        "payload": null,
        "qrUrl": "",
        "code": "NAklEfbVdV",
        "isShipping": false,
        "address": null,
        "expiry": {
          "type": "DYNAMIC",
          "day": 100,
          "expiredAt": "2019-01-06T17:19:35Z"
        },
        "usedAt": "2018-09-28T17:19:44.686549737Z",
        "redeemedAt": "2018-09-28T17:19:35Z",
        "isDeviceRedeem": false,
        "status": "VOID",
        "createdAt": "2018-06-21T11:08:00Z",
        "updatedAt": "2018-09-28T17:19:44.686549977Z"
      },
      "code": "SUCCESS"
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    item Object Voucher object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Voucher object ("item"):

    Parameter Type Description Example
    key String Voucher key "EhQKCE1lcmNoYW50EJXVzd3wraqT
    ORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW"
    label String label of voucher for merchant remarks "Free Breakfast"
    voucherBathKey String Parent key of current voucher "EhQKCE1lcmNoYW50EJXVzd3wraqTO
    RIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg"
    type String Define type of vouchers: “DISCOUNT”, “GIFT”, “CASH" "GIFT"
    amount UInt Required if type = “CASH", notation in cents, eg. RM 1.00 = 100 0
    discountRate UInt Required if type = “DISCOUNT", notation without decimals, eg. 1% = 100 100
    minimumSpendAmount UInt min amount to activate this voucher, required if type = “CASH”, “DISCOUNT", notation in cents, eg. RM 1.00 = 100 100
    origin String “SYSTEM” (voucher code generated from RM server), “SELF” (voucher code uploaded from merchant csv file) "SYSTEM"
    imageUrl String Image URL of current voucher, optional ""
    memberProfile String Member profile of user's social media ""
    assignedAt DateTime Date time of voucher issuance (UTC) "2018-09-28T17:15:17Z"
    qrUrl String QR code for user to scan with Wechat or Facebook to add the voucher into their member account. "http://api.revenuemonster.my/qr
    /4118165203679668885/voucher/NAklEfbVdV"
    code String Voucher Code, members can keep this code for future redemption. Same as the qrURL below except this code is not a URL. "NAklEfbVdV"
    isShipping Boolean "True" if items/goods to be delivered physically to customers false
    address String Required if isShipping = true null
    expiry Object of Expiry Expiry date time of current voucher (Refer below)
    usedAt DateTime Date time of voucher being voided (UTC) "GIFT"
    redeemedAt DateTime Date time of voucher being redeemed (UTC) "GIFT"
    isDeviceRedeem Boolean “TRUE” means only can be redeemed through merchant app. “FALSE” means customer can do redemption from own loyalty app. false
    status String Status of current voucher: 1. Merchant created voucher batch (status=valid)
    2. Merchant issued or going to transferred to customers (status=issued)
    3. Merchant shows voucher to customer and customer scan to get it (status=redeemed)
    4. Customers go back to shop and use the voucher (status=void)
    "VALID"
    createdAt DateTime Date time of voucher being created (UTC) "2018-06-21T11:08:00Z"
    updatedAt DateTime Date time of voucher being updated (UTC) "2018-09-28T17:19:44.686549977Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) "DYNAMIC"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 30
    expiryAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Voucher By Batches

    Method Get

    https://sb-open.revenuemonster.my/v3/voucher-batches

    To get multiple voucher batches.

    REQUEST

    Request Parameters:

    Just pass in an empty JSON object,
    Example: {}

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items []Object Voucher object array (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Example Request

    curl --location --request GET "{{open_base_path}}/v3/voucher-batches" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer {{clientToken}}" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{}"
    

    Example Response

    {
      "items": [
        {
          "id": "6544507929221794245",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQxZP495jpsOla",
          "label": "Shell Voucher",
          "type": "CASH",
          "amount": 10000,
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/1d2721426e06da4b2b459446135da29e.jpeg",
          "quantity": 1,
          "balanceQuantity": 0,
          "usedQuantity": 1,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": true,
          "createdAt": "2018-09-21T07:12:31Z",
          "updatedAt": "2018-09-26T07:15:54Z"
        },
        {
          "id": "8223209398981211509",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQ9eq2n5SsrY9y",
          "label": "Wedding",
          "type": "GIFT",
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/1d2721426e06da4b2b459446135da29e.jpeg",
          "quantity": 2,
          "balanceQuantity": 0,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-09-19T03:41:54Z",
          "updatedAt": "2018-09-19T03:41:54Z"
        },
        {
          "id": "2304781924451151306",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQytubna_ejv4f",
          "label": "Discount for Apple Product",
          "type": "GIFT",
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/9561650c763a67150e3323e2ce79aa2c.jpeg",
          "quantity": 10,
          "balanceQuantity": 0,
          "usedQuantity": 17,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": true,
          "createdAt": "2018-09-18T03:43:39Z",
          "updatedAt": "2018-09-18T03:43:39Z"
        },
        {
          "id": "4458755374738958227",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQk8-33bzMq_A9",
          "label": "New join memebr",
          "type": "DISCOUNT",
          "discountRate": 20,
          "minimumSpendAmount": 100,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/10d2d9972237261337ac5e57a2286f72.jpeg",
          "quantity": 10,
          "balanceQuantity": 0,
          "usedQuantity": 2,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 30,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": true,
          "createdAt": "2018-09-13T09:33:44Z",
          "updatedAt": "2018-09-13T09:33:44Z"
        },
        {
          "id": "2941118409651104156",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQnNP2jMbzvOgo",
          "label": "Testing abcd 20% discount voucher",
          "type": "DISCOUNT",
          "discountRate": 20,
          "minimumSpendAmount": 100,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/98c5478340ef87e9719e63396fb6ef38.jpeg",
          "quantity": 20,
          "balanceQuantity": 8,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 30,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": true,
          "createdAt": "2018-09-13T04:26:14Z",
          "updatedAt": "2018-09-13T04:26:14Z"
        },
        {
          "id": "5497342184860260682",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQyrL2yvTynqVM",
          "label": "SKU",
          "type": "CASH",
          "amount": 100,
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/e263abbbfb389d9611fcaa2dd418efd9.jpeg",
          "quantity": 1000,
          "balanceQuantity": 0,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-08-16T04:53:45Z",
          "updatedAt": "2018-08-16T04:53:45Z"
        },
        {
          "id": "5754046140813404401",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQ8dGPo6nPnu1P",
          "label": "Voucher 1",
          "type": "CASH",
          "amount": 100,
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/e263abbbfb389d9611fcaa2dd418efd9.jpeg",
          "quantity": 1,
          "balanceQuantity": 0,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-07-03T09:34:48Z",
          "updatedAt": "2018-07-03T09:34:48Z"
        },
        {
          "id": "2362533890619456658",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg",
          "label": "oijfge",
          "type": "GIFT",
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/4be4a06bff04ae3656c409ecb54382fe.jpeg",
          "quantity": 100,
          "balanceQuantity": 76,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 100,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-06-21T11:08:00Z",
          "updatedAt": "2018-06-21T11:08:00Z"
        },
        {
          "id": "1152161190116426684",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQvIeG5_eP0_4P",
          "label": "IONIC",
          "type": "GIFT",
          "discountRate": 0,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/4be4a06bff04ae3656c409ecb54382fe.jpeg",
          "quantity": 200,
          "balanceQuantity": 92,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 15,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-06-20T06:58:12Z",
          "updatedAt": "2018-06-20T06:58:12Z"
        },
        {
          "id": "6277564721218867340",
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQjKGZ9qn7mI9X",
          "label": "insurance",
          "type": "DISCOUNT",
          "discountRate": 36,
          "minimumSpendAmount": 100000,
          "imageUrl": "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/e263abbbfb389d9611fcaa2dd418efd9.jpeg",
          "quantity": 1,
          "balanceQuantity": 0,
          "usedQuantity": 0,
          "status": "COMPLETED",
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "origin": "SYSTEM",
          "isShipping": false,
          "reason": "",
          "isDeviceRedeem": false,
          "createdAt": "2018-06-11T03:57:04Z",
          "updatedAt": "2018-06-11T03:57:04Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 10
      }
    }
    

    Voucher object ("items"):

    Parameter Type Description Example
    id String Voucher ID “6544507929221794245"
    key String Voucher key "EhQKCE1lcmNoYW50EJXVzd3wraq
    TORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW"
    label String label of voucher for merchant remarks "Free Breakfast”
    type String Define type of vouchers: “DISCOUNT”, “GIFT”, “CASH" “GIFT"
    amount UInt Required if type = “CASH", notation in cents, eg. RM 1.00 = 100 10000
    discountRate UInt Required if type = “DISCOUNT", notation without decimals, eg. 1% = 100 0
    imageUrl String Image URL of current voucher, optional "https://storage.googleapis.com/rm-sandbox-merchant
    /4118165203679668885/
    gallery/1d2721426e06da4b2b459446135da29e.jpeg”
    quantity UInt Total quantity of voucher(s) in this batch 1
    balanceQuantity UInt Total quantity of voucher(s) remaining in this batch 0
    usedQuantity UInt Total quantity of voucher(s) used/assigned/redeemed in this batch 1
    expiry Object of Expiry Expiry date time of current voucher (Refer below)
    origin String “SYSTEM” (voucher code generated from RM server), “SELF” (voucher code uploaded from merchant csv file) “SYSTEM”
    isShipping Boolean "True" if items/goods to be delivered physically to customers false
    reason String Will show if voucher batch is fail during creation. Optional. ”"
    isDeviceRedeem Boolean “TRUE” means only can be redeemed through merchant app. “FALSE” means customer can do redemption from own loyalty app. false
    createdAt DateTime Date time of voucher being created (UTC) "2018-06-21T11:08:00Z"
    updatedAt DateTime Date time of voucher being updated (UTC) "2018-09-28T17:19:44.686549977Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) "DYNAMIC"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 30
    expiryAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Vouchers By Batch Key

    Method Get

    https://sb-open.revenuemonster.my/v3/voucher-batch/EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQi5rUhcrdx78V/vouchers

    To get Multiple voucher batches by Key .

    REQUEST

    Request Parameters:

    Just pass in an empty JSON object,
    Example: {}

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/voucher-batch/EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQi5rUhcrdx78V/vouchers" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585"
    

    Example Respond

    {
      "items": [
        {
          "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIWCgdWb3VjaGVyGgtVVUVyYTIyVlN5Mg",
          "label": "test",
          "voucherBatchKey": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQi5rUhcrdx78V",
          "type": "CASH",
          "amount": 100,
          "discountRate": 0,
          "minimumSpendAmount": 0,
          "origin": "SYSTEM",
          "imageUrl": "",
          "memberProfile": {
            "id": "1039768290679711875",
            "name": "yussuf",
            "email": "yussuf888@gmail.com",
            "nric": "",
            "address": {
              "addressLine1": "",
              "addressLine2": "",
              "postcode": "",
              "city": "",
              "state": "",
              "country": ""
            },
            "gender": "",
            "state": "",
            "birthDate": "0001-01-01T00:00:00Z",
            "loyaltyPoint": 0,
            "credit": 112,
            "countryCode": "60",
            "phoneNumber": "176473298",
            "profileImageUrl": "https://storage.googleapis.com/rm-sandbox-asset/img/avatar.png",
            "hasPinCode": false,
            "memberTier": null,
            "status": "ACTIVE",
            "createdAt": "2018-10-19T03:39:47Z"
          },
          "assignedAt": "0001-01-01T00:00:00Z",
          "qrUrl": "",
          "code": "UUEra22VSy2",
          "isShipping": false,
          "address": null,
          "expiry": {
            "type": "DYNAMIC",
            "day": 1,
            "expiredAt": "2050-12-31T23:59:59Z"
          },
          "usedAt": "0001-01-01T00:00:00Z",
          "redeemedAt": "2019-03-22T04:58:38Z",
          "isDeviceRedeem": true,
          "status": "REDEEMED",
          "voucherComboKey": null,
          "createdAt": "2019-02-01T03:13:19Z",
          "updatedAt": "2019-03-13T03:16:26Z"
        }
      ],
      "code": "SUCCESS",
      "meta": {
        "count": 1
      }
    }
    

    RESPONSE

    Response Parameters:

    Parameter Type Description Example
    items Object Transaction object (Refer to explanation below)
    code String Successfully call this endpoint. If fail, will return error code object (Refer Appendix 1: Error Codes) "SUCCESS"

    Voucher object ("items"):

    Parameter Type Description Example
    key String Voucher key "EhQKCE1lcmNoYW50EJXVzd3wraqTORIVCgdWb3VjaGVyGgpOQWtsRWZiVmRW"
    label String label of voucher for merchant remarks "Free Breakfast”
    voucherBathKey String Parent key of current voucher "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCgxWb3VjaGVyQmF0Y2gQkvnGweaB2uQg"
    type String Define type of vouchers: “DISCOUNT”, “GIFT”, “CASH" “GIFT"
    amount UInt Required if type = “CASH", notation in cents, eg. RM 1.00 = 100 10000
    discountRate UInt Required if type = “DISCOUNT", notation without decimals, eg. 1% = 100 0
    imageUrl String Image URL of current voucher, optional "https://storage.googleapis.com/rm-sandbox-merchant/4118165203679668885/gallery/1d2721426e06da4b2b459446135da29e.jpeg”
    quantity UInt Total quantity of voucher(s) in this batch 1
    balanceQuantity UInt Total quantity of voucher(s) remaining in this batch 0
    usedQuantity UInt Total quantity of voucher(s) used/assigned/redeemed in this batch 1
    expiry Object of Expiry Expiry date time of current voucher (Refer below)
    origin String “SYSTEM” (voucher code generated from RM server), “SELF” (voucher code uploaded from merchant csv file) “SYSTEM”
    isShipping Boolean "True" if items/goods to be delivered physically to customers false
    reason String Will show if voucher batch is fail during creation. Optional. ”"
    isDeviceRedeem Boolean “TRUE” means only can be redeemed through merchant app. “FALSE” means customer can do redemption from own loyalty app. false
    createdAt DateTime Date time of voucher being created (UTC) "2018-06-21T11:08:00Z"
    updatedAt DateTime Date time of voucher being updated (UTC) "2018-09-28T17:19:44.686549977Z"

    Expiry object ("expiry"):

    Parameter Type Description Example
    type String "DYNAMIC" (days from now), "FIXED" (specific fixed date) "DYNAMIC"
    day Uint Only required by "DYNAMIC" expiry type. To indicate number of days from now until expiry. 30
    expiryAt DateTime Only required by "FIXED". To indicate specific expiry date. "2020-10-07T17:44:26.679908+08:00"

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Push Notification

    Post Send Notification(Merchant)

    Method POST

    https://sb-open.revenuemonster.my/v3/push-notification/merchant

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/push-notification/merchant" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
      \"title\": \"hello Revenue Monster\",
      \"body\": \"test\"
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
        "code" : "SUCCESS" 
    }
    

    Body

    Post Send Notification (Store)

    Method POST

    https://sb-open.revenuemonster.my/v3/push-notification/store/10946114768247530

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/push-notification/merchant" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
      \"title\": \"hello World\",
      \"body\": \"test\"
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
        "code" : "SUCCESS" 
    }
    

    Body

    Post Send Notification (User)

    Method POST

    https://sb-open.revenuemonster.my/v3/push-notification/user/8190656045166232716

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/push-notification/merchant" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
      \"title\": \"hello World\",
      \"body\": \"test\"
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
        "code" : "SUCCESS" 
    }
    

    Body

    Tool

    Post Verify Signature

    Method POST

    https://sb-open.revenuemonster.my/tool/signature/verify

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/tool/signature/verify" \
      --header "Content-Type: application/json" \
      --data "{
        \"data\": {
            \"test\": \"world\"
        },
        \"method\": \"post\",
        \"nonceStr\": \"VYNknZohxwicZMaWbNdBKUrnrxDtaRhN\",
        \"publicKey\": \"-----BEGIN PUBLIC KEY-----\
    MFswDQYJKoZIhvcNAQEBBQADSgAwRwJAbbPqIDbm4/b4IcyH5TgG6y5PS4YNZYZH\
    ULZRYONqBWYAtkuy7nzQ3zn/HOBF8RHwf37cMbzOInSr+Exoh1KfnwIDAQAB\
    -----END PUBLIC KEY-----\",
        \"requestUrl\": \"https://open.localhost:8080/v3/stores\",
        \"signType\": \"sha256\",
        \"timestamp\": \"1527407052\",
        \"signature\": \"Whm4Ud2XCcxspqNJLKc+FlH7U2JVP6lafCYO3+KMxSf9CI6IYdu5eCwjvA4CMm9+O9A1+XEATOjBODvDlgoG5A==\"
    }"
    

    Headers

    Content-Type application/json

    Example Respond

    {
      "isValid": true
    }
    

    Body

    Post Generate Signature

    Method POST

    https://sb-open.revenuemonster.my/tool/signature/generate

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/tool/signature/generate" \
      --header "Content-Type: application/json" \
      --data "{
      \"data\": {
    \"amount\":100,\"currencyType\":\"MYR\",\"expiry\":{\"type\":\"PERMANENT\"},\"isPreFillAmount\":true,\"method\":[\"WECHATPAY\"],\"order\":{\"detail\":\"detail\",\"title\":\"title\"},\"redirectUrl\":\"https://google.com\",\"storeId\":\"1234\",\"type\":\"DYNAMIC\"
      },
      \"method\": \"post\",
      \"nonceStr\": \"MNhrdDgIDlTKdlYXzfhEvqHpGjRhvrPe\",
      \"privateKey\": \"-----BEGIN RSA PRIVATE KEY-----\
    MIICXAIBAAKBgQDD3n2Ux9jdlqQFK/nWiPfounUif0f8pnwIw29q1vWRRCoTACVJ\
    fVRZTiFWQnlT0W73OdmH7yMAl7TfJYxchl1cYGwTKjvlBwj7YCLZfLtEhfyRN8MC\
    bUS9RKZMDU5peSVHFls9XDiTD8h17Z/ZZcAIf9Me9luvsG4qTa+ffd1AIwIDAQAB\
    AoGAJg+S+ZlIA+8k2jhsaQremaO55UU0eNzlF1La0LkKqPrE7kJF/JzVCjGLetaZ\
    +vakiHf+VFLcy12vcPk76DLX6ydbgiiA1CCOKnpAnMubKDq/wYLt3OXY19t9QXHo\
    vm70lcQM6/IuBs1o3aUjRumJjh0cVcjKKqS5eF6j0AQZGxECQQDpZ+j6/3cdTdLA\
    E0niJQBQefIoBUoocWDvs/dt0jta9mrWlYFnEz+CFaY+roF/fcxmmxKF6/2l0DuS\
    vGZH0x/bAkEA1tRfLGG/CYv6e4iTE75AtpDeVD3QURfVlLVIKAjjSK2woopK3Hsp\
    ocRb+cjL5GZipBM5Q6uCtAj0QZHvsxeXWQJBAJDTagv8YhOry15lWY3Z+bT1xd0x\
    Uw9/Mm/p0lixfyT1C9v0TqP/nIOCHXJ9Y1sRWrg79qVkhjHR4HUvM6PTi8sCQB/v\
    Jc6lIQ68PhnK7YILz/bThhkjrym+z0Lxx64b1B1jpFQlFoe7zy56z+lLjfN/vL4D\
    FYoXnrBAfH6awPTwVtECQC2LIuer+rYpCb8hYsWFksYQOV2rWrwQTXgDhmdRra7L\
    +6JZP+MzKwD9vs7Mv+QUbSnisAPqXRCV6giMHmj/Vkc=\
    -----END RSA PRIVATE KEY-----\",
      \"requestUrl\": \"https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode\",
      \"signType\": \"sha256\",
      \"timestamp\": \"1532069238\"
    }"
    

    Headers

    Content-Type application/json

    Example Respond

    {
      "data": "data=eyJhbW91bnQiOjEwMCwiY3VycmVuY3lUeXBlIjoiTVlSIiwiZXhwaXJ5Ijp7InR5cGUiOiJQRVJNQU5FTlQifSwiaXNQcmVGaWxsQW1vdW50Ijp0cnVlLCJtZXRob2QiOm51bGwsIm9yZGVyIjp7ImRldGFpbCI6ImRldGFpbCIsInRpdGxlIjoidGl0bGUifSwicmVkaXJlY3RVcmwiOiJodHRwczovL2dvb2dsZS5jb20iLCJzdG9yZUlkIjoiMTIzNCIsInR5cGUiOiJEWU5BTUlDIn0=&method=post&nonceStr=MNhrdDgIDlTKdlYXzfhEvqHpGjRhvrPe&requestUrl=https://sb-open.revenuemonster.my/v3/payment/transaction/qrcode&signType=sha256&timestamp=1532069238",
      "sequenceData": "{\"amount\":100,\"currencyType\":\"MYR\",\"expiry\":{\"type\":\"PERMANENT\"},\"isPreFillAmount\":true,\"method\":null,\"order\":{\"detail\":\"detail\",\"title\":\"title\"},\"redirectUrl\":\"https://google.com\",\"storeId\":\"1234\",\"type\":\"DYNAMIC\"}",
      "signature": "sha256 gCwAhdaHdF4RE7fE9E1mODoEEdd50IcUfFsrxlWvciW+CyFEc/zjmfG9UaNxD7Xmi7cVYbuoUdQGTuXP6VbE6PFgd3t6wWl9ZokBSfYs5260JtBfDdPn263Wz6iTrrPJFQUI60yH4IsDi3uS6FKxP2/hnued4tEiv6pcgZ8o0CY="
    }
    

    Body

    Appendix 1: Error Codes

    Error Codes Description Solution
    InvalidRequest: The request is missing a required parameter, includes an invalid parameter value, includes a parameter more than once, or is otherwise malformed. Refer to request paramenter(s) as described in API documentation and retry again.
    InvalidGrant: Invalid grant Check redirect URI (must be exactly the same as request URI query string)
    InvalidClient: Invalid client Client is not registered in our system, please try again with correct clientId, clientSecret.
    InvalidCode: Invalid authorization code This is not the correct authorization code generated from our system, please request a new authorization code again.
    InActiveClient: Client mode is inactive This client/application is disabled, login to Merchant Portal and reactivate it.
    InvalidScope: The requested scope is invalid, unknown, or malformed. 1. Check scope, currently only support manage_payment, manage_store, get_merchant_profile, get_user_profile. 2. Check scope of this user, requested scope cannot be greater than user scope in our system.
    UnAuthorizedClient: The client is not authorized to request this method. Use other client to request this method.
    UnSupportedGrantType: Unsupported grant type Currently we only support grant types of Client Credentials, Authorization Code and Refresh Token.
    UnSupportedResponseType: The authorization server does not support obtaining an authorization code using this method. Use responseType=code in request URI query string and try again.
    AccessDenied: The resource owner or authorization server denied the request User is inactivated in our system, please try again.
    InternalError: The authorization server encountered an unexpected condition that prevented it from fulfilling the request Should this condition presists, please contact our customer support.
    TemporaryUnAvailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server Should this condition presists, please contact our customer support.

    Error Codes

    Code Description Error Message
    AlipayChinaNotActive: Alipay China is not active. Please contact Revenue Monster to activate merchant for alipay ALIPAY_CHINA_NOT_ACTIVE
    AccessTokenReadFail: Cannot read access token file
    AccountFrozen: Your account has been frozen. Please contact support. ACCOUNT_FROZEN
    AccountInactive: User account is inactive ACCOUNT_INACTIVE
    AccountNotFound: Account does not exist ACCOUNT_NOT_FOUND
    AccountSuspended: This account is temporarily locked ACCOUNT_SUSPENDED
    AgreementAlreadySigned: Agreement already signed AGREEMENT_ALREADY_SIGNED
    AgreementNotFound: Agreement not found AGREEMENT_NOT_FOUND
    AgreementNotSigned: Agreement not signed AGREMENT_NOT_SIGNED
    AccessTokenFail: Fail to request access token ACCESS_TOKEN_FAIL
    AliPayClientDuplicate: Alipay client duplicate ALIPAY_CLIENT_DUPLICATE
    AlreadyMasterMerchant: Already master merchant ALREADY_MASTER_MERCHANT
    APIEndpointNotFound: The api endpoint does not exist API_ENDPOINT_NOT_FOUND
    APIInactive: This API version is no longer active. Please migrate to API v3 API_INACTIVE
    AuthCodeExpired: Customer code expired. Please scan again. AUTH_CODE_EXPIRED
    AuthCodeInvalid: Customer code expired. Please scan again. AUTH_CODE_INVALID
    AuthCodeMisMatch: Invalid Customer Code AUTH_CODE_MIS_MATCH
    AuthCodeUsed: Customer code already been used. Please refresh for another transaction. AUTH_CODE_USED
    AuthorizationHeaderNotAllowed: Authorization header is not allowed AUTHORIZATION_HEADER_NOT_ALLOWED
    BankError: Bank system error BANK_ERROR
    BoostMalaysiaNotActive: Boost Malaysia is not active. Please contact Revenue Monster to activate merchant for boost BOOST_MALAYSIA_NOT_ACTIVE
    BusinessCategoryNotFound: Business category not found BUSINESS_CATEGORY_NOT_FOUND
    BuyerAccountError: Customer account error BUYER_ACCOUNT_ERROR
    BuyerAccountInActive: Customer account is inactive BUYER_ACCOUNT_IN_ACTIVE
    CampaignNotFound: Campaign not found CAMPAIGN_NOT_FOUND
    CannotUpdateSamePhoneNumber: Cannot update the same phone number CANNOT_UPDATE_SAME_PHONE_NUMBER
    ChopStampNotActive: Chop stamp not active CHOP_STAMP_NOT_ACTIVE
    ChopStampNotFound: Chop stamp not found CHOP_STAMP_NOT_FOUND
    ChopStampQuantityExceed: Reached exceed number of chop stamp card CHOP_STAMP_QUANTITY_EXCEED
    ClientInvalid: Invalid client CLIENT_INVALID
    ClientNoPermission: Developer application does not have permission to access CLIENT_NO_PERMISSION
    ClientNotAuthorizeStore: Developer application not authorize user store CLIENT_NOT_AUTHORIZE_STORE
    ClientNotFound: Developer application client not found CLIENT_NOT_FOUND
    ClientNotSetPublicKey: Developer application does not set public key CLIENT_NOT_SET_PUBLIC_KEY
    ClientProductNotSetup: Developer application product not setup CLIENT_PRODUCT_NOT_SETUP
    ClientProductSubscribed: Developer application already subscribed to product CLIENT_PRODUCT_SUBSCRIBED
    CompanyTypeNotFound: Company type not found COMPANY_TYPE_NOT_FOUND
    CustomerReachedTransactionLimit: Customer reached transaction limit CUSTOMER_REACHED_TRANSACTION_LIMIT
    DailyPaymentExceeded: Daily payment limit exceeded DAILY_PAYMENT_EXCEEDED
    DailyReceiveExceeded: Daily payment limit exceeded DAILY_RECEIVED_EXCEEDED
    DefaultStoreDeleteNotAllowed: Default store not allowed to delete DEFAULT_STORE_DELETE_NOT_ALLOWED
    DoesNotAllowMultipleBatchProcessing: Does not allow multiple batch processing DOES_NOT_ALLOW_MULTIPLE_BATCH_PROCESSING
    DoesNotHaveActiveWallet: Does not have active wallet. Please contact Revenue Monster to activate wallet DOES_NOT_HAVE_ACTIVE_WALLET
    EmailDuplicate: Email address already exists EMAIL_DUPLICATE
    EmailNotFound: Email address not found EMAIL_NOT_FOUND
    ExceededLimit: Rate limit exceeded EXCEEDED_LIMIT
    ExceedTimeForReverseTransaction: Exceed time for transaction to reverse EXCEED_TIME_FOR_REVERSE_TRANSACTION
    ExpiryInvalid: Invalid expiry type EXPIRY_INVALID
    ExpiryMin: Min expiry day EXPIRY_MIN
    FailedToReverseOrder: Failed to reverse order FAILED_TO_REVERSE_ORDER
    FileNotFound: File not found FILE_NOT_FOUND
    GenericTemplateInvalid: Invalid generic template GENERIC_TEMPLATE_INVALID
    GrabPayMalaysiaMerchantIDNotSet: GrabPay Malaysia is not active. Please contact Revenue Monster to activate merchant for GrabPay GRABPAY_MALAYSIA_MERCHANT_ID_NOT_SET
    GrabPayMalaysiaNotActive: GrabPay Malaysia is not active. Please contact Revenue Monster to activate merchant for GrabPay GRABPAY_MALAYSIA_NOT_ACTIVE
    GrantTypeInvalid: Invalid grant type GRANT_TYPE_INVALID
    InSufficientCardBalance: Insufficient customer balance INSUFFICIENT_CARD_BALANCE
    InSufficientLoyaltyBalance: Insuffience loyalty balance INSUFFICIENT_LOYALTY_BALANCE
    InSufficientMerchantBalance: Insufficient merchant balance INSUFFICIENT_MERCHANT_BALANCE
    InSufficientPermissionLevel: Insufficient Permission INSUFFICIENT_PERMISSION_LEVEL
    InSufficientRefundAmount: Insufficient refund amount INSUFFICIENT_REFUND_AMOUNT
    InternalError: Internal error INTERNAL_ERROR
    InvalidAgreementVersion: Invalid Agreement Version INVALID_AGREEMENT_VERSION
    InvalidAppID: Invalid parameters INVALID_APP_ID
    InvalidCharset: Invalid format INVALID_CHARSET
    InvalidClient: Invalid client INVALID_CLIENT
    InvalidEncryption: Invalid encryption INVALID_ENCRYPTION
    InvalidFile: Invalid file INVALID_FILE
    InvalidFormat: Invalid format INVALID_FORMAT
    InvalidHTTPMethod: Invalid HTTP Method INVALID_HTTP_METHOD
    InvalidID: Invalid id INVALID_ID
    InvalidImageDimension: Invalid Image Dimension INVALID_IMAGE_DIMENSION
    InvalidLoyaltyCreditCode: Invalid loyalty credit code INVALID_LOYALTY_CREDIT_CODE
    InvalidOTPCode: Invalid otp code INVALID_OTP_CODE
    InvalidParameter: Invalid parameters INVALID_PARAMETER
    InvalidParameterID: Invalid parameter id INVALID_PARAMETER_ID
    InvalidPaymentSubscriptionMethod: Invalid payment subscription method INVALID_PAYMENT_SUBSCRIPTION_METHOD
    InvalidPrivateKey: Invalid private key INVALID_PRIVATE_KEY
    InvalidPublicKey: Invalid public key INVALID_PUBLIC_KEY
    InvalidRequest: Invalid request INVALID_REQUEST
    InvalidRequestSignature: The request signature is invalid INVALID_REQUEST_SIGNATURE
    InvalidScope: Invalid scope INVALID_SCOPE
    InvalidSignature: Invalid signature INVALID_SIGNATURE
    InvalidTerminalToken: Invalid terminal token
    InvalidTimestamp: Could not authenticate - Timestamp INVALID_TIMESTAMP
    KeywordDuplicate: Duplicate keyword KEYWORD_DUPLICATE
    KeywordKeyInvalid: Invalid keyword key KEYWORD_KEY_INVALID
    KeywordNotFound: Keyword not found KEYWORD_NOT_FOUND
    ListTemplateInvalid: Invalid list template LIST_TEMPLATE_INVALID
    LoyaltyBatchAlreadyGenerateCSV: Loyalty batch already generate csv LOYALTY_BATCH_ALREADY_GENERATE_CSV
    LoyaltyBatchAlreadyZip: Loyalty batch already zip LOYALTY_BATCH_ALREADY_ZIP
    LoyaltyBirthdayFieldNotRequired: Birth date field not required LOYALTY_BIRTHDAY_FIELD_NOT_REQUIRED
    LoyaltyCreditNotEnabled: Loyalty credit not enable LOYALTY_CREDIT_NOT_ENABLED
    LoyaltyExpired: Loyalty point expired LOYALTY_EXPIRED
    LoyaltyGenerateError: Error in generating loyalty point LOYALTY_GENERATE_ERROR
    LoyaltyInsufficient: Insufficient point LOYALTY_INSUFFICIENT
    LoyaltyMemberRegistrationTooMany: length of entity too large LOYALTY_MEMBER_REGISTRATION_TOO_MANY
    LoyaltyNotCorrectFormat: Loyalty not correct format LOYALTY_NOT_CORRECT_FORMAT
    LoyaltyNotFound: Loyalty not found LOYALTY_NOT_FOUND
    LoyaltyNotMerchant: Loyalty not belongs to merchant LOYALTY_NOT_MERCHANT
    LoyaltyNotSubscribed: Not subscribed to loyalty LOYALTY_NOT_SUBSCRIBED
    LoyaltyPointAlreadyRedeemed: Loyalty point already redeemed LOYALTY_POINT_ALREADY_REDEEMED
    LoyaltyPointIsProcessing: Loyalty point is proccessing LOYALTY_POINT_IS_PROCESSING
    LoyaltyPointMissing: Loyalty point missing for certain custom id LOYALTY_POINT_MISSING
    LoyaltyQuantityMax: Exceeded maximum quantity LOYALTY_QUANTITY_MAX
    LoyaltySpendingNotAllowed: Loyalty spending not allowed LOYALTY_SPENDING_NOT_ALLOWED
    LoyaltySpendingNotFound: Loyalty spending not found LOYALTY_SPENDING_NOT_FOUND
    LoyaltySseError: Error in SSE LOYALTY_SSE_ERROR
    LoyaltyStatusError: Error in updating status LOYALTY_STATUS_ERROR
    MarketPlaceVoucherAlreadyRequested: Marketplace voucher already requested MARKET_PLACE_VOUCHER_ALREADY_REQUESTED
    MarketPlaceVoucherExceedQuantity: Marketplace voucher exceed quantity MARKET_PLACE_VOUCHER_EXCEED_QUANTITY
    MarketPlaceVoucherNotFound: Marketplace voucher not found MARKET_PLACE_VOUCHER_NOT_FOUND
    MasterMerchantCannotSameMerchant: Master merchant cannot be your own MASTER_MERCHANT_CANNOT_SAME_MERCHANT
    MasterMerchantNotSubscribe: Master Merchant not subscribed to this product MASTER_MERCHANT_NOT_SUBSCRIBE
    MasterMerchantSubscriptionExpired: Master Merchant subscription expired MASTER_MERCHANT_SUBSCRIPTION_EXPIRED
    MasterMerchantSubscriptionNotActive: Master merchant subscription not active MASTER_MERCHANT_SUBSCRIPTION_NOT_ACTIVE
    MaxValue: Account update failed: value is too long (maximum is n characters) MAX_VALUE
    MaxValueMemberTier: Reach maximum limit for member tier MAX_VALUE_MEMBER_TIER
    MaxValueRole: Reach maximum limit for creating Role MAX_VALUE_ROLE
    MaybankFailToCancelled: Maybank fail to cancelled MAYBANK_FAIL_TO_CANCELLED
    MaybankKeyExpired: Maybank key expired MAYBANK_KEY_EXPIRED
    MaybankKeyNotFound: Maybank key not found MAYBANK_KEY_NOT_FOUND
    MaybankMalaysiaMerchantIDNotSet: Maybank Malaysia is not active. Please contact Revenue Monster to activate merchant for maybank MAYBANKA_MALAYSIA_MERCHANT_ID_NOT_SET
    MaybankMalaysiaNotActive: Maybank Malaysia is not active. Please contact Revenue Monster to activate merchant for maybank MAYBANK_MALAYSIA_NOT_ACTIVE
    MemberNotFound: Member not found MEMBER_NOT_FOUND
    MemberNotMerchant: Member not belongs to merchant MEMBER_NOT_MERCHANT
    MemberParentInvalid: Invalid member parent MEMBER_PARENT_INVALID
    MemberRegistered: Member already registered MEMBER_REGISTERED
    MemberTierMax: Reached max member tier MEMBER_TIER_MAX
    MemberTierNotFound: Member Tier not found MEMBER_TIER_NOT_FOUND
    MenuInvalid: Invalid Menu MENU_INVALID
    MerchantChopStampExpired: Merchant chop stamp event is expired MERCHANT_CHOP_STAMP_EXPIRED
    MerchantChopStampNotFound: Merchant chop stamp event not found MERCHANT_CHOP_STAMP_NOT_FOUND
    MerchantChopStampNotStarted: Merchant chop stamp event not started MERCHANT_CHOP_STAMP_NOT_STARTED
    MerchantGalleryNotFound: Merchant gallery not found MERCHANT_GALLERY_NOT_FOUND
    MerchantIDInvalid: Invalid merchant id MERCHANT_ID_INVALID
    MerchantInactive: Merchant account is inactive MERCHANT_INACTIVE
    MerchantKeyInvalid: Invalid merchant key MERCHANT_KEY_INVALID
    MerchantMDRNotSet: Merchant mdr not set. Please contact Revenue Monster to set. MERCHANT_MDR_NOT_SET
    MerchantNotActive: Merchant not active MERCHANT_NOT_ACTIVE
    MerchantNotFound: Merchant not found MERCHANT_NOT_FOUND
    MerchantNotHaveMasterMerchant: Merchant not have master merchant MERCHANT_NOT_HAVE_MASTER_MERCHANT
    MerchantNotHavePartner: Merchant does not have partner MERCHANT_NOT_HAVE_PARTNER
    MerchantNotSame: Merchant not same MERCHANT_NOT_SAME
    MerchantNotSetup: Merchant not setup MERCHANT_NOT_SETUP
    MerchantRequestedJoin: Merchant already requested for join as sub merchant MERCHANT_REQUESTED_JOIN
    MerchantRequestedJoinNotFound: Merchant join request not found MERCHANT_REQUESTED_JOIN_NOT_FOUND
    MerchantSuspended: Merchant suspended MERCHANT_SUSPENDED
    MerchantVerified: Merchant profile is verified MERCHANT_VERIFIED
    MessageTypeNotFound: Message type not found MESSAGE_TYPE_NOT_FUND
    MessengerAccountExists: Messenger account already exist MESSENGER_ACCOUNT_EXISTS
    MessengerCodeExpired: Messenger code expired MESSENGER_CODE_EXPIRED
    MessengerInvalidToken: Invalid messenger token MESSENGER_INVALID_TOKEN
    MessengerMemberDuplicate: Messenger member registered MESSENGER_MEMBER_DUPLICATE
    MessengerOwnerAllowConnect: Only messenger owner allowed to connect MESSENGER_OWNER_ALLOW_CONNECT
    MessengerOwnerInvalid: Invalid messenger owner MESSENGER_OWNER_INVALID
    MessengerPageDuplicate: Duplicate messenger page MESSENGER_PAGE_DUPLICATE
    MessengerPageNotFound: Messenger page not found MESSENGER_PAGE_NOT_FOUND
    MethodNotAllowed: Method not allowed METHOD_NOT_ALLOWED
    MinimumAmountRequired: Minimum amount should be 10sen MINIMUM_AMOUNT_REQUIRED
    MinPtsDuplicate: Min point exists in member tier Min_PTS_DUPLICATE
    MoneyPacketExpired: Money packet is expired MONEY_PACKET_EXPIRED
    MoneyPacketNotFound: Money packet not found MONEY_PACKET_NOT_FOUND
    MoneyPacketRedeemed: Money packet redeemed MONEY_PACKET_NOT_REDEEMED
    NineGridMerchantNotAllowPayment: Nine grid not allow to make payment NINE_GRID_MERCHANT_NOT_ALLOW_PAYMENT
    NoAccess: This application is not allowed to access NO_ACCESS
    NoAppID: Missing parameter NO_APP_ID
    NoMerchantID: Missing parameter NO_MERCHANT_ID
    NoMethod: Missing parameter NO_METHOD
    NotAllowDeleteApprovedJoinRequest: Not allow delete join request NOT_ALLOW_DELETE_APPROVED_JOIN_REQUEST
    NotAllowLinkProduction: Not allow link for production NOT_ALLOW_LINK_PRODUCTION
    NotAllowRefund: Refunded not allowed NOT_ALLOW_REFUND
    NotAuth: Could not authenticate NOT_AUTH
    NotAuthorizeUserStore: Not authorize user store NOT_AUTHORIZE_USER_STORE
    NotMasterMerchant: Not a master merchant NOT_MASTER_MERCHANT
    NotMasterMerchantAccount: Not a master merchant account NOT_MASTER_MERCHANT_ACCOUNT
    NotNineGridMerchant: Not a nine grid merchant NOT_NINER_GRID_MERCHANT
    NotPartnerAccount: Not a partner account NOT_PARTNER_ACCOUNT
    NotPermitted: Not permitted to perform this action. NOT_PERMITTED
    NotSubscribe: Merchant not subscribed to this product NOT_SUBSCRIBE
    NotTerminalTransaction: Transaction not allowed for different using different terminal NOT_TERMNAL_TRANSACTION
    NotUserStore: Not user store NOT_USER_STORE
    OldPwInvalid: Invalid old password OLD_PW_INVALID
    OnlyFreeTierPlugin: Only free tier plugin ONLY_FREE_TIER_PLUGIN
    OnlyOwnerAllowForEAgreement: Only owner allow see e agreement ONLY_OWNER_ALLOW_FOR_E_AGREEMENT
    OpenIDFail: Fail to request open ID OPEN_FAIL
    OrderCancelled: Order error ORDDR_CANCELLED
    OrderClosed: Order error ORDER_CLOSED
    OrderIDDuplicate: Order id duplicate ORDER_ID_DUPLICATE
    OrderNotExist: Order error ORDER_NOT_EXIST
    OrderNotPaid: Order not paid ORDER_NOT_PAID
    OrderPaid: Order is paid ORDER_PAID
    OriginInvalid: Invalid origin type ORIGIN_INVALID
    Overload: Over capacity OVERLOAD
    OwnerNotAllowedCreate: Create owner not allowed OWNER_NOT_ALLOWED_CREATE
    OwnerNotAllowedDelete: Delete owner is not allowed OWNER_NOT_ALLOWED_DELETE
    OwnerNotAllowedUpdate: Update owner is not allowed OWNER_NOT_ALLOWED_UPDATE
    PageNotFound: Sorry
    PartnerMDRNotSet: Partner mdr is not set. Please contact Revenue Monster to set the partner mdr PARTNER_MDR_NOT_SET
    PartnerNotFound: Partner not found PARTNER_NOT_FOUND
    PartnerNotSame: Partner not same PARTNER_NOT_SAME
    PasswordInvalid: Email address or password is wrong PASSWORD_IVALID
    PasswordNotStrength: Password not strength PASSWORD_NOT_STRENGTH
    PasswordRequired: Pending customer password PASSWORD_REQUIRED
    PaymentAmtInvalid: Invalid amount format PAYMENT_AMT_INVALID
    PaymentCurrencyInvalid: Payment currency is invalid PAYMENT_CURRENCY_INVALID
    PaymentDecimalInvalid: Invalid decimal PAYMENT_DECIMAL_INVALID
    PaymentExceedAmountLimitPerTransaction: Transaction amount is over the limit PAYMENT_EXCEED_AMOUNT_LIMIT_PER_TRANSACTION
    PaymentExceedAmountPerDay: Payment exceed amount for per day PAYMENT_EXCEED_AMOUNT_PER_DAY
    PaymentExceedAmountPerMonth: Payment exceed amount for per month PAYMENT_EXCEED_AMOUNT_PER_MONTH
    PaymentExceedNoTransactionPerDay: Reached exceed number of daily transaction PAYMENT_EXCEED_NO_TRANSACTION_PER_DAY
    PaymentExceedNoTransactionPerMonth: Reached exceed number of monthly transaction PAYMENT_EXCEED_AMOUNT_LIMIT_PER_MONTH
    PaymentFullyRefunded: Payment already refunded PAYMENT_FULLY_REFUNDED
    PaymentLimitNotSet: Payment limit not set. Please contact Revenue Monster to set the limit PAYMENT_LIMIT_NOT_SET
    PaymentParamInvalid: Invalid payment params PAYMENT_PARAM_INVALID
    PaymentRedirect: Merchant ID and redirect URL not found PAYMENT_REDIRECT
    PaymentRefundAmountExceedPerDay: Refund amount transaction exceed then sales amount of the day PAYMENT_REFUND_AMOUNT_EXCEED_PER_DAY
    PaymentRefunding: Payment still refunding process PAYMENT_REFUNDING
    PaymentScanInvalid: Invalid platform scan PAYMENT_SCAN_INVALID
    PaymentSubscriptionMethodActive: Payment method is active PAYMENT_SUBSCRIPTION_METHOD_ACTIVE
    PaymentTimeout: Payment timeout PAYMENT_TIMEOUT
    PaymentUnsupportedCurrencyType: Unsupported currency type PAYMENT_UNSUPPORTED_CURRENCY_TYPE
    PhoneDuplicate: Phone number already exists PHONE_DUPLICATE
    PinInvalid: Pin is invalid PIN_INVALID
    PlatformNotFound: Platform not found PLATFORM_NOT_FOUND
    PluginAlreadyInstalled: Plugin already installed PLUGIN_ALREADY_INSTALLED
    PluginNotAllowToUpdatePricing: Plugin not allow to update pricing PLUGIN_NOT_ALLOW_TO_UPDATE_PRICING
    PluginNotFound: Plugin not found PLUGIN_NOT_FOUND
    PluginNotInstalled: Plugin not installed PLUGIN_NOT_INSTALLED
    PluginNotVerified: Plugin not verified PLUGIN_NOT_VERIFIED
    PluginShouldGreaterThanPreviousVersion: Plugin version should greater than previous version PLUGIN_SHOULD_GREATE_THAN_PREVIOUS_VERSION
    PrestoMalaysiaNotActive: Presto Malaysia is not active. Please contact Revenue Monster to activate merchant for presto PRESTRO_MALAYSIA_NOT_ACTIVE
    PrestoMDRNotSet: Presto mdr not set. Please contact Revenue Monster to set. PRESTO_MDR_NOT_SET
    PrestoMerchantIDNotSet: Presto merchant id not set. Please contact Revenue Monster to set the merchant id PRESTO_MERCHANT_ID_NOT_SET
    PrivateKeyReadFile: Cannot read private key PRIVATE_KEY_READ_FILE
    ProductSubscriptionActive: Product subscription is active PRODUCT_SUBSCRIPTION_ACTIVE
    QRInvalid: Invalid QR code QR_INVALID
    QRRedeemed: QR code redeemed QR_REDEEMED
    QuickPayNotRegistered: User is not registered with Quick Pay QUICK_PAY_NOT_REGISTERED
    ReconciliationNotFound: Reconciliation record not found RECONCILIATION_NOT_FOUND
    RedemptionMerchantInvalid: Invalid redemption rule merchant REDEMPTION_MERCHANT_INVALID
    RedemptionParentInvalid: Invalid redemption rule parent key REDEMTION_PARENT_INVALID
    RedemptionRuleKeyInvalid: Invalid redemption rule key REDEMPTION_RULE_KEY_FOUND
    RedemptionRuleLimitReached: Reached the voucher limit per member REDEMPTION_RULE_LIMIT_REACHED
    RedemptionRuleNotFound: Redemption rule not found REDEMPTION_RULE_NOT_FOUND
    RefundAmtNotSameAsTotalAmount: Refund amount not same as total amount REFUND_AMT_NOT_SAME_AS_TOTAL_AMOUNT
    RefundAmtNotSameAsTransaction: Refund amount not same as transaction amount REFUND_AMT_NOT_SAME_AS_TRANSACTION
    RefundPaymentNotFound: Refund payment not found REFUND_PAYMENT_NOT_FOUND
    RefundPinInvalid: Wrong pin number REFUND_PIN_INVALID
    RefundUserNotFound: Refund user not found REFUND_USER_NOT_FOUND
    ReportNotFound: Report does not exist REPORT_NOT_FOUND
    ResetKeyInvalid: Invalid password reset key RESET_KEY_INVALID
    ResetLinkExpired: Password reset link expired RESET_LINK_EXPIRED
    ResourceGone: Resource no longer exists RESOURCE_GONE
    RoleKeyInvalid: Invalid role key ROLE_KEY_INVALID
    RoleNotFound: Role not found ROLE_NOT_FOUND
    ScopeNotFound: Scope not found SCOPE_NOT_FOUND
    ShouldHaveIndexFile: Should have index.html file SHOULD_HAVE_INDEX_FILE
    SignatureInvalid: Invalid signature SIGNATURE_INVALID
    SmsFail: Failed to send SMS SMS_FAIL
    SPAM: Suspicious activity SPAM
    SpendingDuplicate: Spending loyalty set SPENDING_DUPLICATE
    SpendingNotFound: No spending loyalty SPENDING_NOT_FOUND
    SSLRequired: SSL is required SSL_REQUIRED
    StoreHasUser: The store has user STORE_NOT_USER
    StoreIDInvalid: Invalid store ID STORE_ID_INVALID
    StoreInvalidFormat: Store format invalid STORE_INVALID_FORMAT
    StoreKeyInvalid: Invalid store key STORE_KEY_INVALID
    StoreMaximum: Maximum store allowed to create is 10 STORE_MAXIMUM
    StoreNotFound: Store not found STORE_NOT_FOUND
    StoreNotSet: Store not set STORE_NOT_SET
    SubMerchantDoesNotAllowedLoyalty: Sub merchant not allowed to access loyalty SUB_MERCHANT_DOES_NOT_ALLOWED_LOYALTY
    SubscriptionExists: Merchant already subscribed to this product. SUBSCRIPTION_EXISTS
    SubscriptionExpired: Merchant subscription expired SUBSCRIPTION_EXPIRED
    SubscriptionNotActive: You have not subscribed to this product SUBSCRIPTION_NOT_ACTIVE
    SubscriptionNotFound: Subscription not found SUBSCRIPTION_NOT_FOUND
    SystemError: System timed out SYSTEM_ERROR
    TacInvalid: Invalid TAC code TAC_INVALID
    TacLimit: TAC code limit has reached TAC_LIMIT
    TacRequired: User TAC code is required TAC_REQUIRED
    TacSent: TAC code has sent TAC_SENT
    TemplateBodyInvalid: Invalid template body TEMPLATE_BODY_INVALID
    TemplateKeyInvalid: Invalid template key TEMPLATE_KEY_INVALID
    TemplateKeywordDuplicate: Invalid template keyword TEMPLATE_KEYWORD_DUPLICATE
    TemplateMessageDraft: Draft template message TEMPLATE_MESSAGE_DRAFT
    TemplateMessageDuplicate: Invalid template message TEMPLATE_MESSAGE_DUPLICATE
    TemplateNotFound: Template not found TEMPLATE_NOT_FOUND
    TerminalAlreadyRegistered: Terminal already registered TERMINAL_ALREADY_REGISTERED
    TerminalInActive: Terminal is not active TERMINAL_INACTIVE
    TerminalNoPermission: Terminal does not have permission to access TERMINAL_NO_PERMISSION
    TerminalNotFound: Terminal not found TERMINAL_NOT_FOUND
    TerminalRefundTokenInvalid: Terminal refund token invalid TERMINAL_REFUND_TOKEN_INVALID
    TerminalSerialAlreadyExist: Terminal serial already exist TERMINAL_SERIAL_ALREADY_EXIST
    TerminalSerialNotFound: Terminal serial not found TERMINAL_SERIAL_NOT_FOUND
    TNGMalaysiaNotActive: TNG Malaysia is not active. Please contact Revenue Monster to activate merchant for tng TNG_MALAYSIA_NOT_ACTIVE
    TokenExpired: Invalid or expired token TOKEN_EXPIRED
    TokenInvalid: Unable to verify your credentials TOKEN_INVALID
    TokenSuspended: Access token suspended TOKEN_SUSPENDED
    TransactionDuplicate: Duplicate order number TRANSACTION_DUPLICATE
    TransactionExpired: Transaction is expired TRANSACTION_EXPIRED
    TransactionNotFound: No payment transaction TRANSACTION_NOT_FOUND
    TransactionPaid: Transaction already paid TRANSACTION_PAID
    TransactionQRCodeNotFound: Transaction qr code not found TRANSACTION_QR_CODE_NOT_FOUND
    TransactionStatusFailed: Payment transaction status failed TRANSACTION_STATUS_FAILED
    TransactionStatusNotInProccess: Transaction status not in process TRANSACTION_STATUS_NOT_IN_PROCCESS
    TransactionStatusNotSuccess: Transaction status not success TRANSACTIN_STATUS_NOT_SUCCESS
    Unauthorized: Unauthorized UNAUTHORIZED
    UniqueCodeDuplicate: Duplicate unique code UNIQUE_CODE_DUPLICATE
    UniqueCodeEmpty: Empty unique code UNIQUE_CODE_EMPTY
    UniqueCodeInvalid: Invalid unique code UNIQUE_CODE_INVALID
    UnSupportedJSAPIMethod: Unsupported method for jsapi UNSUPPORTED_JSAPI_METHOD
    UnSupportedJSAPIRegion: Unsupported region for jsapi UNSUPPORTED_JSAPI_REGION
    UnSupportedMethodPaymentRefund: Unsupported method payment refund UNSUPPORTED_METHOD_PAYMENT_REFUND
    UnSupportedMethodReverse: Unsupported method for reverse UNSUPPORTED_METHOD_REVERSE
    UserAlreadyRegistered: User already registered USER_ALREADY_REGISTERED
    UserCannotUpdateOwnAccount: User cannot update own account USER_CANNOT_UPDATE_OWN_ACCOUNT
    UserCreateFail: Unauthorized to create user USER_CREATE_FAIL
    UserDeleteFail: Unauthorized to delete user USER_DELETE_FAIL
    UserDeviceNotFound: User device not found USER_DEVICE_NOT_FOUND
    UserDuplicate: User account already exist USER_DUPLICATE
    UserKeyInvalid: Invalid user key USER_KEY_INVALID
    UserNoPermission: User does not have permission to access USER_NO_PERMISSION
    UserNotActive: User not active USR_NOT_ACTIVE
    UserNotCreateAccount: User not create account USER_NOT_CREATE_ACCOUNT
    UserNotFound: User not found USER_NOT_FOUND
    UserPinCodeInvalid: Invalid user pin code USER_PIN_CODE_INVALID
    UserProfileNotFound: User login profile not found USER_PROFILE_NOT_FOUND
    UserSuspended: User has been suspended USER_SUSPENDED
    ValidationError: Validations error VALIDATION_ERROR
    VEmailNotFound: User verification email not found V_EMAIL_NOT_FOUND
    VerificationCodeAlreadyRequested: Verification code already requested VERIFICATION_CODE_ALREADY_REQUESTED
    VerificationCodeInvalid: Verification code invalid VERIFICATION_CODE_INVALID
    VerificationCodeReachDailyLimit: Verification code request reach daily limit VERIFICATION_CODE_REACH_DAILY_LIMIT
    VerificationTokenInvalid: Invalid verification token VERIFICATION_TOKEN_INVALID
    VerificationTypeNotFound: Verification code type not found VERIFICATION_TYPE_NOT_FOUND
    VLinkExpired: Verification link is expired V_LINK_EXPIRED
    VoucherBatchExpired: Voucher batch expired VOUCHER_BATCH_EXPIRED
    VoucherBatchKeyInvalid: Voucher batch key is invalid VOUCHER_BATCH_KEY_INVALID
    VoucherBatchNotEnoughQuantity: Voucher batch not enough quantity VOUCHER_BATCH_NOT_ENOUGH_QUANTITY
    VoucherBatchNotFound: Voucher batch not found VOUCHER_BATCH_NOT_FOUND
    VoucherComboExpired: Voucher combo expired VOUCHER_COMBO_EXPIRED
    VoucherComboNotEnoughQuantity: Voucher combo not enough quantity VOUCHER_COMBO_NOT_ENOUGH_QUANTITY
    VoucherComboNotFound: Voucher combo not found VOUCHER_COMBO_NOT_FOUND
    VoucherInsufficient: Insufficient voucher batch VOUCHER_INSUFFICIENT
    VoucherNotAllowVoid: Voucher not allow to void VOUCHER_NOT_ALLOW_VOID
    VoucherNotFound: Voucher not found VOUCHER_NOT_FOUND
    VoucherNotMerchant: Voucher is not belongs to merchant VOUCHER__NOT_MERCHANT
    VoucherNotMinimumAmount: Voucher does not meet minimum amount VOUCHER__NOT_MINIMUM_AMOUNT
    VoucherNotRedeemed: Voucher is not redeemed VOUCHER_NOT_REDEMMED
    VoucherOwnerInvalid: Voucher not owned VOUCHER_OWNER_INVALID
    VoucherRedeemed: Voucher redeemed VOUCHER_REDEEMED
    VoucherRedeemedInvalid: Invalid direct redeem VOUCHER_REDEEMED_INVALID
    VoucherRedeemMax: Max redeem voucher VOUCHER_REDEEM_MAX
    VoucherSoldOut: Voucher sold out VOUCHER_SOLD_OUT
    WeChatAccountDuplicate: WeChat account already exists WECHAT_ACCOUNT_DUPLICATE
    WeChatPageDuplicate: Duplicate wechat page WECHAT_PAGE_DUPLICATE
    WeChatPageInvalid: Invalid wechat page WECHAT_PAGE_INVALID
    WeChatPageNotFound: Wechat page not found WECHAT_PAGE_NOT_FOUND
    WeChatPayChinaMDRNotSet: WeChatPay China mdr not set. Please contact Revenue Monster to set. WECHATPAY_CHINA_MDR_NOT_SET
    WeChatPayChinaMerchantIDNotSet: WeChatPay China merchant id not set. Please contact Revenue Monster to set the merchant id WECHATPAY_CHINA_MERCHANT_ID_NOT_SET
    WeChatPayChinaNotActive: WeChatPay China is not active. Please contact Revenue Monster to activate merchant for wechat pay WECHATPAY_CHINA_NOT_ACTIVE
    WeChatPayClientDuplicate: Wechat pay client duplicate WECHATPAY_CLIENT_DUPLICATE
    WeChatPayClientNotFound: Wechat pay client not found WECHATPAY_CLIENT_NOT_FOUND
    WeChatPayMalaysiaMDRNotSet: WeChatPay Malaysia mdr not set. Please contact Revenue Monster to set. WECHATPAY_MALAYSIA_MDR_NOT_SET
    WeChatPayMalaysiaMerchantIDNotSet: WeChatPay Malaysia merchant id not set. Please contact Revenue Monster to set the merchant id WECHATPAY_MALAYSIA_MERCHANT_ID_NOT_SET
    WeChatPayMalaysiaNotActive: WeChatPay Malaysia is not active. Please contact Revenue Monster to activate merchant for wechat pay WECHATPAY_MALAYSIA_NOT_ACTIVE
    WeChatPhoneInvalid: Invalid wechat phone number WECHAT_PHONE_INVALID
    WeChatTemplateMessageFailed: WeChat template message failed WECHAT_TEMPLATE_MESSAGE_FAILED
    TooManyRequestPerSecond: Reached maximum request limit per second TOO_MANY_REQUEST_PER_SECOND

    Appedix: Version Control

    SDK Beta

    The following language SDK(s) and documentations are available.

    *Note: Not all SDK(s) fully implement non-payment functions. Pull requests are welcome.

    WeChat OA (Beta)

    Get Send Merchant WeChatPage Template Message

    Method GET

    https://sb-open.revenuemonster.my/v3/socialmedia/wechat/template-message

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/socialmedia/wechat/template-message" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"redirectUrl\": \"http://google.com\",
        \"scope\": \"snsapi_userinfo\"
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Get Send Merchant WeChatPage Access Token

    Method GET

    https://sb-open.revenuemonster.my/v3/socialmedia/wechat/access-token

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/socialmedia/wechat/access-token" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Body

    Post RM OA WeChat User Information By Code

    Method POST

    https://sb-open.revenuemonster.my/v3/socialmedia/rm/wechat-oauth/code

    Example Request

    curl --location --request POST "https://sb-open.revenuemonster.my/v3/socialmedia/rm/wechat-oauth/code" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
        \"code\": \"071r7hig1Z4gOr0v4glg1emZhg1r7hie\"
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
      "item": {
        "userId": "o74f0wjjzv9eKRu1fccrZswVFnOQ",
        "avatarUrl": "http://thirdwx.qlogo.cn/mmopen/vi_32/b03tNAU6hcuxA7ibcdribpkZgLzOLn8vZZX6IDibyDEOYTOyzcE71iae8ZiaPPMw5cdqiba6qric3OUMlXicibPIy2EnaCg/132",
        "name": "yussuf",
        "gender": "MALE",
        "city": "Petaling",
        "state": "Selangor",
        "country": "Malaysia",
        "language": "en"
      },
      "code": "SUCCESS"
    }
    

    Body

    Social Media

    Get Messenger Follower By UserID

    Method GET

    https://sb-open.revenuemonster.my/v3/socialmedia/messenger/follower/1276194035819892

    Example Request

    curl --location --request GET "https://sb-open.revenuemonster.my/v3/socialmedia/messenger/follower/1276194035819892" \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1NywiaXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw" \
      --header "X-Signature: sha256 Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==" \
      --header "X-Nonce-Str: VYNknZohxwicZMaWbNdBKUrnrxDtaRhN" \
      --header "X-Timestamp: 1528450585" \
      --data "{
    
    }"
    

    Headers

    Content-Type application/json
    Authorization Bearer
    eyJhbGciOiJSUzI1NiIsImtpZCI6IjIwMTgtMDMtMTMiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOlsiKiJdLCJleHAiOjE1MjE2MjkyNTYsImlhdCI6MTUyMTYyMjA1Nywi
    aXNzIjoiaHR0cHM6Ly9zYi1vYXV0aC5yZXZlbnVlbW9uc3Rlci5teSIsImp0aSI6IkVod0tFRTlCZFhSb1FXTmpaWE56Vkc5clpXNFF5cmYza3EzTDY4QnoiLCJuYmYiOjE1MjE2MjIwNTcsInN1YiI6IkVoUUtDRTFsY21Ob1
    lXNTBFSlhWemQzd3JhcVRPUklRQ2dSVmMyVnlFSXlKcUl6dnlNUFZjUSJ9.
    dJknY9MZHLNrKx1p7gZxS0_oA3uXLWplDU1r1dpwxIbmdB6yw4tQBTXKlWArDfKLlBDn6v22_gT5Px7sdCMj7e5M9eRoJoMnoPnslgYpmJJ5kjqAbKU7dUxKb1OzFLrvmtSK9r-FRLVtMFHioWYpwgSvSPBgZ6lAYkUyDzH7aKadFYtQcBuJR0hlq2CXtP0mzbHOeu2q6giONf3E5-XqS8lLRtuHPAbJ7_YFwo0Oe2zc6h05IOocmx_NvBVPfDBnuygTU063h70Q987MYeGDV_Os4N6N_I4b-GoHprEPtmntB1RJPrFrY28hvvoUfDHXHZVXT1GlrsozrkWV4EjbTw
    X-Signature sha256
    Sty3LNcKA8+WlMHtAgIY+y1xbwnzKsN0UdyKaW+yYIgcTkBAtF7G5Lx251qQITURJ4wiXPDODxhs1nFVmBBing==
    X-Nonce-Str VYNknZohxwicZMaWbNdBKUrnrxDtaRhN
    X-Timestamp 1528450585

    Example Respond

    {
      "item": {
        "key": "EhQKCE1lcmNoYW50EJXVzd3wraqTORIYCg1NZXNzZW5nZXJQYWdlEPGM2cyW38ICEhwKEU1lc3NlbmdlckZvbGxvd2VyEPTKraGRlqIC",
        "messengerId": 1276194035819892,
        "messengerPageKey": "EhgKDU1lc3NlbmdlclBhZ2UQ8YzZzJbfwgI",
        "firstName": "Junny",
        "lastName": "Lai",
        "profileImageUrl": "https://scontent.xx.fbcdn.net/v/t1.0-1/20882032_1531510183582448_2931528019550823604_n.jpg?oh=1c50d713d81205d37b12bf5120d109ac&oe=5B3881E7",
        "gender": "MALE",
        "status": "ACTIVE",
        "subscribedAt": "2018-03-08T02:16:12Z",
        "createdAt": "2018-03-08T02:16:12Z",
        "updatedAt": "2018-03-08T02:16:12Z"
      },
      "code": "SUCCESS"
    }
    

    Body