---
title: QRIS Integration & Testing
slug: en/qris-integration-and-testing
description: Information about integration and testing of the QRIS payment method with the NICEPAY system
image: https://archbee-image-uploads.s3.amazonaws.com/ZHvSjR5ZrsoxwKbJa3xmo/fE7qJr7VFlNH-lwMj3u6z_microsoftteams-image.png
icon: {"faIcon":"fa-solid fa-book"}
docTags: 
createdAt: 2022-11-11T02:43:37.000Z
---

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



# Integration Steps and API Used&#x20;

***

1. Perform API Order Registration integration.
   - SNAP: [Registration - API QRIS SNAP](docId\:FsuuZk9ZHP7pRzFCi32fm).
   - Redirect: [QRIS - API Checkout](docId\:z_OHu4qeUaCcvTAetXYIh).
2. Receive NICEPAY callback and push notification.
3. Perform API Inquiry Status integration.
   - SNAP: [Check Status Transaction - API QRIS SNAP](docId\:a0i6Lo4dvBo6Ih5Ql6nDA).
   - Redirect: [Status Inquiry - API Checkout](docId\:RhH7PmISd6IHN99yWVJHm).
4. Optional: perform API Cancel integration to cancel transaction.
   - SNAP: [Refund Transaction - API QRIS SNAP](docId\:uZpKssMvaM0skERr1Fn9B).
   - Redirect: [Cancel - API Checkout](docId\:CmiiEW1Oy21QP7qDEcUl-).



# Credential for Testing QRIS

***

| **QRIS Name** | **Description**                                                                                                                                                                                                                                                      |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ShopeePay     | [APK Shopee](https://drive.google.com/file/d/1gGE2-7OpBWXoz_KF7Kl0IThWtnAaQjCe/view) \| [APK ShopeePay](https://drive.google.com/file/d/13cYsNzcmoJwe4fiLjnrmhAT0Uc94w81K/view)<br />Username: nicepaytest01<br />Password: NicepayTest01<br />ShopeePay PIN: 142536 |

:::hint{type="info"}
Merchants must whitelist the IP address of the device used for testing through the ShopeePay or Shopee application.

Please contact the NICEPAY Integration Team for further information.
:::



# QRIS Testing Guide&#x20;

***

| **QRIS Name** | **Test Step**                                                                                                                                                                                                                                                                                                                                                      | **Rules and Condition**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ShopeePay     | 1. Use real `iMid` or Sandbox with `iMid = IONPAYTEST`.
2. Download a specific ShopeePay application for testing on the Development Environment or real Shopee application for testing on the Staging/Production Environment.
3. Scan the QR code and perform payment authentication.
4. Collect information and proceed transaction until transaction successful. | For QR code:<br />* Default time limit rules for `paymentExpTm` = 5 minutes.
* Time period setting for `paymentExpTm` start from 5 minutes to 20 minutes.<br /><br />For transaction cancellation conditions, which are:<br />* Cancellation before the transaction will show expired or invalid with status `5`.
* Online refund can only perform before the transaction reached 365 days since its created.
* Transaction cancellation can't be processed during the time 00:00 - 05:00 WIB.
* Off-Us transaction only performs online refund before the transaction reached 7 days time limit. If the transaction have already passed 7 days but still haven't reached 365 days, will turn into a *Manual Refund*. |

****

# Failed Transaction Possible Reason&#x20;

***

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



# Integration Checklist & Test Case

***

- [ ] Implement inquiry status after receiving the callback.
- [ ] Implement inquiry status after receiving the notification inside `dbProcessUrl`.
- [ ] Review payment log.
- [ ] Review firewall setting (eg. cloudflare for `dbprocessUrl` setting).
- [ ] Check `merchantToken` implementation.
- [ ] Execute test scenarios in Development Environment.
- [ ] Execute test scenarios in Production Environment.&#x20;
  [Get Sample Scenario](https://docs.google.com/spreadsheets/d/e/2PACX-1vQIaIMCM0vZ3L1cA-JkW3YxyIpjsB966fg1wTeT8qpFDowEvulIEWOoY6I4uJPL3A/pub?output=xlsx)
- [ ] Review Error Handling (Timeout, Failed, Negative Case).



# Best Practice

***

- For Merchant testing, can use `iMid = IONPAYTEST` and set `shopId = NICEPAY` parameter.
- Support for fully QRIS cancellation can use `cancelType` link code.
- When notification is received on your `dbProcessUrl`, NICEPAY strongly recommend Merchant to verify the notification using the Inquiry API.
- `Notification Handling` is helpful to minimalize Fraud actions, NICEPAY strongly recommends Merchant to verify the `Notification Handling`.



# See also

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Visit the [QRIS Payment Flow](docId\:trYkCb2K8eXLiKc9SZYTf) page to find out the system process during payment with the QRIS.
:::

:::VerticalSplitItem
Visit the [QRIS Type](docId\:ZHng3V0Aeq3hgYdk-oXO7) page to find out the QRIS type used on NICEPAY.
:::
::::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Visit the [QRIS Glossary](docId:8tS3dAdo7g4xfP48UjVrF) page to find out the particular term used on QRIS .
:::

:::VerticalSplitItem
Visit the [QRIS FAQ](docId\:ZwsBDqmPHGEhfuReEGb7U) page if you want to find out frequently asked questions related to QRIS.
:::
::::

