Skip to main content
Let customers pay by scanning a QR code with any banking or e-wallet app in Indonesia. One QR code, every app — that’s the power of the national QRIS standard.

What is QRIS?

QRIS (Quick Response Code Indonesian Standard) is a unified QR payment standard regulated by Bank Indonesia. Any QRIS-certified app can scan and pay any QRIS code — meaning a QR generated by SingaPay works for customers using BCA Mobile, Mandiri, GoPay, OVO, DANA, ShopeePay, and dozens of others, with no extra configuration on your end. SingaPay generates MPM Dynamic QRIS — Merchant Presented Mode, Dynamic. Each QR code is generated fresh per transaction and encodes the exact payment amount, eliminating any risk of customer input errors.

Transaction limits


Why use QRIS?

✓ Works with every QRIS-certified app — one code covers every customer regardless of bank or wallet. ✓ Payment amount is fixed inside the QR — no manual entry, no room for mistakes. ✓ Real-time payment confirmation the moment the customer’s app confirms. ✓ Flexible display: in-person screens, printed receipts, invoices, or in-app.

How it works

1

Generate a QR code

Your system calls the SingaPay API with the transaction amount. A raw qr_string is returned.
2

Render and display

Convert the qr_string into a scannable image using any standard QR library and display it to your customer.
3

Customer scans and confirms

The customer opens their preferred app, scans the QR, reviews the amount, and confirms payment in a few seconds.
4

Payment confirmed, QR consumed

SingaPay confirms the payment, credits your balance, fires a webhook, and marks the QR as used. It cannot be reused.
Each dynamic QRIS code is single-use. Once a customer pays or the code expires, it becomes invalid. Always generate a new qr_string for each transaction.