Payment
QRIS

QRIS Integration & Testing

14min

 use in and originates from ShopeePay. However, ShopeePay also can receive from other Partners, such as OVO, DANA, LinkAja, and Mobile Banking that support QR .



Integration Steps and API Used


  1. Perform Order Registration .
  2. Receive callback and push .
  3. Perform Inquiry Status .
  4. Optional: perform Cancel to cancel .



Credential for Testing QRIS



QRIS Name

Description

ShopeePay

ShopeePay application for on Development Environment -> link



Credential on development environment jump app:

  • Username: nicepaytest Password: Nicepay123 OTP: 123456 ShopeePay PIN: 159159



QRIS Testing Guide



QRIS Name

Test Step

Rules and Condition

ShopeePay

  1. Use real iMid or Sandbox with iMid = IONPAYTEST.
  2. Download a specific ShopeePay application for on Development Environment or real Shopee application for on Staging/Production Environment.
  3. Scan QR code and perform authentication.
  4. Collect and until successful.

For QR code:

  • Default time limit rules for paymentExpTm = 5 minutes.
  • Time period setting for paymentExpTm start from 5 minutes to 20 minutes.



For cancellation conditions, which are:

  • Cancellation before will show expired or invalid with 5.
  • Off-Us transactions can performs online refund for up to 365 days since the is created.
  • On-Us only performs online refund before reached 1 day. After 1 day, will turn into a Manual Refund. After 1 week, will turn into Blocked.



Failed Transaction Possible Reason


  1. Scan wrong QR code on ShopeePay application.
  2. Order doesnot match.
  3. Transaction already expired.



Integration Checklist & Test Case



Implement inquiry after receiving callback.

Implement inquiry after receiving inside dbProcessUrl.

Review log.

Review firewall setting (eg. cloudflare for dbprocessUrl setting).

Check merchantToken implementation.

Execute test scenarios in Development Environment.

Execute test scenarios in Production Environment. Get Sample Scenario

Review Error Handling (Timeout, Failed, Negative Case).



Best Practice


  • For , can use iMid = IONPAYTEST and set shopId = NICEPAY .
  • Support for fully cancellation can use cancelType link code.
  • When is received on your dbProcessUrl, strongly recommend to verify using Inquiry .
  • Notification Handling is helpful to minimalize Fraud actions, strongly recommends to verify Notification Handling.



See also

 QRIS Payment Flow to find out during with .

 QRIS Type to find out type used on .

 QRIS Glossary to find out particular term used on .

 QRIS FAQ if you want to find out frequently asked questions related to .