QR Payments
Let your users pay any merchant QR, inside your app.
A user scans a merchant QR, reviews the amount, and pays through your app's native PaymentSheet. Zennopay validates the QR, runs the Payment Intent, and settles on the local rail.
Three steps, all inside your app.
Scan
The mobile SDK reads the merchant QR and validates it against the national standard before anything else happens. A malformed or unsupported code is rejected on the device.
Confirm
PaymentSheet shows the merchant, the local amount and the locked rate in your app's own look. The user approves once. Nothing moves until they do.
Settle
The Payment Intent completes on the local rail, the merchant sees a domestic payment, and a signed webhook tells your backend the same thing at the same moment.
What you get
Native PaymentSheet
iOS and Android SDKs that render the approval sheet in your brand. No redirects, no web views, no handoff to another app.
Payment Intent lifecycle
Create, confirm and resolve every payment through one object. Read the API for the authoritative state at any point.
Merchant QR validation
VietQR, PromptPay and QR Ph payloads are parsed and checked before money moves, so a bad code fails early and clearly.
Payment webhooks
Signed events for every state change, so your ledger and your user see the same outcome without polling.
Live today
QR Payments settles on these rails now. More markets activate through the year.
See every market, including the roadmap β
Built for
Travel apps
Travelers pay on the QR networks local merchants already accept, FX handled inline.
Neo-banks
Let account holders pay merchant QR codes across Asia from the app they already bank with.
Wallets
Give wallet users merchant QR acceptance across Asia without a per-country integration.
Cash apps
Turn a stored balance into something users can spend at any local QR merchant.


