How does a QPay payment work?
The merchant creates an invoice for each order through QPay’s Merchant V2 API. The API returns a QR code and deeplinks into bank apps. On a desktop the shopper scans the QR code with any bank app or e-wallet, and the amount fills in automatically. On a phone the shopper sees a list of bank apps and e-wallets, picks one, signs in there and confirms the payment with their own transaction password. No card number or account number is typed.
When the payment succeeds, QPay sends a notification to the merchant’s callback URL. The merchant then confirms the result with a payment check call. QPay’s documentation forbids polling payment status with a cron job, so the callback is the trigger. Each merchant invoice number must be unique, and an unpaid invoice can be cancelled.
QPay grew out of a 2016 agreement with Khan Bank. It says it introduced Mongolia’s first QR e-payment solution in 2017, launched API 2.0 for QR invoices in 2018, connected to UnionPay International in 2020 and formed a partnership with WeChat Pay in 2022. Since 2024 it has worked with GLN International of South Korea on cross-border QR payments.
Why does QPay matter for merchants?
Mongolian money moves between bank accounts in real time. The Bank of Mongolia’s real-time low-value system processed 452.9 million interbank payments in 2025, 91.7% of all interbank transactions. QPay lets a merchant reach that money through one QR code instead of separate integrations with each bank.
For the shopper, QPay feels like their own bank app. QPay says customers pay no extra fee. It lists a merchant fee of 1% of the payment, shared between the sending bank, the receiving bank and QPay, and a one-time fee of 300,000 MNT for the first connection of an app or website.
QPay also handles e-receipts. Its API can issue an e-barimt, Mongolia’s electronic receipt, after a successful payment and cancel it when the payment is refunded, once QPay has turned the setting on for the merchant.
What can go wrong?
Most failures happen in the flow, not in the bank. A shopper on a phone may pick a bank app that is not installed, or close the app before confirming. A merchant that releases orders on the redirect alone, without the callback and payment check, risks shipping unpaid orders.
Refunds need care. QPay’s API notes its cancel and refund calls as applying to card transactions, so a merchant should confirm with QPay or its provider how a refund to a bank account or e-wallet is handled. Each refund also needs the matching e-receipt cancelled. QPay is domestic and in MNT, so shoppers without a Mongolian bank app or e-wallet cannot use it, and it is a pay-in method only.
How would Omno handle QPay?
Omno would treat QPay as its own route. The hosted checkout would create a QPay invoice for each order, show the QR code on desktop and the list of bank apps on mobile, and wait for the callback. A payment check would confirm the result before a webhook tells the merchant’s system that the order is paid. Rules set by the merchant could show QPay first to Mongolian shoppers, next to SocialPay and cards. Routing rules would choose the provider for each payment. If a provider is unavailable or rejects the request, the payment moves to the next provider in the rule until one accepts. The routing-decision log would record which provider handled each payment.