5.13 MPAY

Developed by Macau Pass, MPay is Macao’s first mobile payment e-wallet that allows its users to link various bank accounts or credit cards to their e-wallet account. MPay’s features include online and offline payment, P2P transfer, telecom and utility bills payment, online ticketing, MPark, transport QR Code for bus ride, etc. Users may experience a brand new smart-city lifestyle through the versatile and convenient MPay.

ScenarioCategoryPayment methodPayment productIntegration typeAuthenticationRedirect TypeCode TypePre-authPartial RefundCancellation supported
ONLINEEwalletMPAYCASHIER_PAYMENTAPI-In-appOrder code-YESYES
OFFLINEEwalletMPAYORDER_CODEAPI, POS--Order code-YESYES
OFFLINEEwalletMPAYPAYMENT_CODEAPI, POS--Payment code-YESYES
OFFLINEEwalletMPAYENTRY_CODEEMVCO_QR--Static code-YESYES

Payment ProductDescription
CASHIER_PAYMENTPayment product. Use this product to get the cashier page address. After getting the cashier page address, you can redirect the user to the cashier page to make a payment or display the online order code for the user to scan.
ORDER_CODEMerchant-Presented Mode Payment product. One code value can only be used for one transaction. For example, the order code displayed on the merchant's terminal screen or printed on the cashier's receipt. After the user scans the code, the user usually does not need to enter the transaction amount to initiate the payment.
PAYMENT_CODEUser-Presented Mode Payment product. The merchant uses a code scanning device to scan the payment code and complete the deduction.
ENTRY_CODEMerchant-Presented Mode Payment product. With the Entry Code Payment product, users can scan the entry code generated by the merchant and enter the payment amount to complete the payment. Merchants do not need to apply an updated QR code or purchase any equipment for collecting payment if merchants join the UPAS network.

Experience and integration process

CapabilitiesAPIsDescription
Initiate a paymentPAY
Refund a paymentREFUND
Cancel a paymentCANCELOnly a full cancellation is allowed. The cancellation period: Before 23:59:59 within the payment date.
Inquiry transaction resultDETAIL
Notify transaction resultNOTIFICATION

Initiate a payment

Field Description Required

paymentMethod

Must be "MPAY"

M

product

For CASHIER_PAYMENT, it must be "CASHIER_PAYMENT";
For ORDER_CODE, it must be "ORDER_CODE";
For PAYMENT_CODE, it must be "PAYMENT_CODE";
ENTRY_CODE is only used in "EMVCO_QR";

M

expireAt

The format is "yyyy-mm-dd hh:mm:ss", and it must be less than 72 hours after the payment request is sent.
It's required when the product is "CASHIER_PAYMENT" or "ORDER_CODE"

C

payCodeValue

It's required when the product is "PAYMENT_CODE"

C

goods.description

It's required when paymentMethod is KAKAOPAY

M

riskData.Device.os

It's required when the product is in "CASHIER_PAYMENT", "ORDER_CODE", "PAYMENT_CODE"

M

Handle the payment result To complete the payment:

  • CASHIER_PAYMENT
  1. present the QR code image(payAction, "type": "QRCODE", "redirectUrl") to the shopper for scanning.
  2. Or redirect shopper(payAction, "type": "REDIRECT", "Url") to open an app when the target app is installed.
  3. Use the data.status from the PAY response to present the payment result to your shopper. You can also wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • ORDER_CODE
  1. Present the QR code image(payAction, "type": "QRCODE", "redirectUrl") to the shopper for scanning.
  2. After the shopper completes the payment, wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • PAYMENT_CODE
  1. Use the data.status from the PAY response to present the payment result to your shopper. You can also wait the NOTIFICATION or submit a DETAIL request for the payment result.
  • ENTRY_CODE
  1. After the shopper completes the payment, wait the NOTIFICATION for the payment result.