Skip to main content

Zalopay QR multi-function

Overview

Zaloay QR multi-function is a payment solution developed by ZaloPay that allows users to make payments through either the ZaloPay app or other banking applications using a single QR code, integrated with VietQR technology.

This solution helps merchants optimize the payment acceptance process, manage transactions more effectively, and reduce operating costs.

For users, this is a convenient, secure, and versatile payment method that can be used for various types of transactions, from retail purchases to transportation services.

Key Benefits

For Businesses:

  • Cost Optimization: No need for multiple management systems for different QR codes, helping reduce infrastructure investment costs.
  • Efficient Management: An integrated management system with automatic transaction notifications, transparent record-keeping, easy refund processing, and reconciliation support.
  • Increased Revenue: The ability to accept diverse payment methods allows merchants to reach more customers and boost sales.
  • Enhanced Customer Experience: Provides a seamless and convenient payment experience.

For Customers:

  • Convenient and Versatile: Make payments with just one QR code across multiple applications.
  • Secure: The payment system complies with ISO/IEC 27001 standards, featuring strong security mechanisms to protect personal and financial information.

Typical Use Cases

ZaloPay QR multi-function is widely adopted across various industries, including retail, food & beverage, e-commerce platforms, and especially transportation and delivery services.

Many businesses have implemented ZaloPay QR multi-function in their nationwide retail and service chains, particularly in shopping and dining brands such as Viettel Store, Mykingdom, Decathlon, Coolmate, Lee & Tee, Sukiya, Tous les Jours, KFC, Pepper Lunch, Papa’s Chicken, Bonchon Chicken, and more.

In the transportation and delivery sector, businesses have applied ZaloPay QR multi-function for Cash-on-Delivery (POD) collection solutions, including Ahamove, BEST Express, and BE.

Deployment Options

1. Offline Business

Stores without POS machines: Merchants do not need any technical integration. Zalopay will provide a Zalopay QR multi-function to be placed at the counter for customers to make payments.

center my-5

Stores with POS machines: Merchants integrate technically through APIs to generate Zalopay QR mulit-funtion and display them directly on the POS machine.

center my-5

2. Online Business

On computers/laptops: Merchants integrate technically through APIs to generate a Zalopay QR multi-function and configure either their own system or the Zalopay Gateway to display the QR code on the screen, allowing users to scan and pay via the Zalopay app or banking applications.

center my-5

On mobile devices: Merchants integrate technically through APIs to generate a Zalopay QR multi-function. Users are redirected to an intermediate page created by Zalopay to continue the payment process via the Zalopay app or banking applications.

center my-5

How it works

Flow diagram:

center my-5

Flow explanation:
Step 1: The customer selects the Zalopay QR multi-function payment method (VietQR).
Step 2: The merchant creates an order through the Zalopay system for the customer to proceed with the payment.
Step 3: After merchant verification, Zalopay returns the payment URL (order_url) and the Universal QR code (qr_code).
Step 4: The merchant may choose one of the following display options for the customer to make the payment:
  • Redirect to the Zalopay Payment Gateway.
  • Display the Zalopay QR multi-function (VietQR).
  • Launch the banking application.
Step 5: The customer proceeds with the payment.
Step 6: The Zalopay system processes the payment, returns the payment result, and redirects the customer back to the merchant’s page.
Step 7: The merchant receives the payment result and displays the payment confirmation to the customer.

Integration guide

This section provides a basic guide for businesses to integrate the Zalopay QR multi-function (VietQR) using the APIs provided by Zalopay. The integration process includes the following key steps:

  • Display the Zalopay QR multi-function (VietQR) payment option on the merchant’s system.
  • Send a request to create an order via Zalopay.
  • Initiate the Zalopay QR multi-function (VietQR) payment for the customer to proceed.
  • Handle the payment result.

1. Display the Zalopay QR multi-function (VietQR) payment option

When a customer proceeds to pay for an order, the checkout interface on the merchant’s system must display format should follow the reference guidelines as shown belo

center my-5

2. Send order creation request

After the customer selects a payment method, the merchant sends a request to create an order using the Create order API provided by the Zalopay system.

Note: For this option, use the parameters bank_code and preferred_payment_method when sending the order creation request, as shown below:

  • "bank_code": ""
  • "embed_data": "{\"preferred_payment_method\": [\"vietqr\"]}"

Below is an example of an order creation request and the corresponding response:

Request

{
"app_id": 123015,
"app_time": "1703664998490,
"app_trans_id": "231227_123015_1703664997117",
"app_user": "demo",
"bank_code": "",
"description": "Test",
"amount": 10000,
"embed_data": "{\"preferred_payment_method\": [\"vietqr\"]}",
"item": "[]",
"mac": "0336b57f74209f3b944c88b8fc8c878ae518d20b7e88763fb2ff9e14e6c3cac5"
}

Response

{
"return_code": 1,
"return_message": "Giao dịch thành công",
"sub_return_code": 1,
"sub_return_message": "Giao dịch thành công",
"zp_trans_token": "AC5TYXNLtPgMkO-IBA2_VoBA",
"order_url": "https://qcgateway.zalopay.vn/openinapp?order=eyJ6cHRyYW5zdG9rZW4iOiJBQzVUWVhOTHRQZ01rTy1JQkEyX1ZvQkEiLCJhcHBpZCI6MjU1M30=",
"order_token": "AC5TYXNLtPgMkO-IBA2_VoBA",
"qr_code": "00020101021226520010vn.zalopay0106180005020300103175672745585088359438620010A00000072701320006970454011899ZP23361O002489830208QRIBFTTA5204739953037045405100005802VN622108175672745585088359463044F20"
}

3. Initiate the Zalopay QR multi-function (VietQR) payment for the customer

3.1 Redirect to the Zalopay Payment Gateway

When the merchant creates an order with the Zalopay system, the response will include an order_url value.

The merchant uses this order_url to redirect the customer to the Zalopay Payment Gateway.

The customer then proceeds with the payment on the Zalopay Payment Gateway.

3.2 Display the Zalopay QR multi-function (VietQR)

Use the qr_code value from the Create Order API response to generate the Zalopay QR multi-function (VietQR) and display it on merchant system (Web/App/POS) for the customer to scan and complete the payment.

Step 1: The merchant retrieves the list of banks that support deeplink using the Get List Bank Deeplinks API provided by ZaloPay.

Below is an example of an get list bank deeplinks creation request and the corresponding response:

Request

{
"app_id":123015,
"bank_codes":"MSB,BIDV,VIB",
"os_type":"ios",
"order_token":"",
"mac":"d4873e011461e9db54db0b132a48dc86d63980cd224249d7fa8a2595732ba793"
}

Response

{
"return_code": 1,
"return_message": "Thành công",
"sub_return_code": 1,
"sub_return_message": "Thành công.",
"data": [
{
"bank_code": "MSB",
"short_name": "MSB",
"full_name": "Ngân hàng Thương mại Cổ phần Hàng Hải Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/MSB.png",
"deep_link": "msbmbank://applink",
"is_auto_fill": true
},
{
"bank_code": "BIDV",
"short_name": "BIDV",
"full_name": "Ngân hàng TMCP Đầu tư và Phát triển Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/BIDV.png",
"deep_link": "bidv.smartbanking.partner://payment",
"is_auto_fill": true
},
{
"bank_code": "VIB",
"short_name": "VIB",
"full_name": "Ngân hàng TMCP Quốc tế Việt Nam",
"logo_url": "https://scdn.zalopay.vn/data/ofp/emvcoqr/banks/VIB.png",
"deep_link": "myvib2://",
"is_auto_fill": false
}
]
}
Step 2: The list of supported banks is then displayed on the merchant’s application. The user selects a banking app and proceeds with the payment.

Bank's deep link data, including:

  • bank_code: Bank identification code of Zalopay system
  • short_name: Bank short name
  • full_name: Bank full name
  • logo_url: Bank log url
  • deep_link: Bank deeplink information
  • is_auto_fill: true (support auto fill); false (not support autofill)

Merchant rely on the above information to display appropriate interfaces on mobile applications.

Zalopay provided Merchant with 02 types of deep link:

  • Not support auto fill: The deeplink will only support the user to init bank app. User need to fill in the transfer information manually.
  • Support auto fill: This deeplink will autofill order information, user just need to process payment without input anything.

4. Processing the payment result

4.1 Handle callbacks from Zalopay Server

After the customer completes the payment steps on the Zalopay Gateway, if the payment is successful, the Zalopay system will return a payment status notification (callback/IPN) to the merchant.

4.2 Query order status

When the user completes a successful payment, the Zalopay system will trigger a callback (IPN) to the merchant. However, the callback may sometimes be missed due to issues such as network errors, service unavailability, etc. To ensure the best user experience, the merchant should actively query the order status using the Order Query API at a frequency of once per minute, until the callback is received or the order payment time limit expires.