What DuitNow QR is
DuitNow QR is the interoperable standard that replaced a fragmented set of wallet-specific codes: one code accepts payment from any participating Malaysian bank app or e-wallet — Maybank, CIMB, Public Bank, Touch ’n Go eWallet, GrabPay, Boost, ShopeePay and dozens more — with funds arriving in your account rather than in a wallet balance you then have to withdraw.
It follows the EMVCo QR specification, which is why it looks like the payment codes used in Singapore, Thailand and Indonesia, and why cross-border acceptance is possible where PayNet has established a link with the other country’s operator.
Personal versus merchant codes
A personal DuitNow QR lives inside your own banking app under a heading like “Receive” or “My QR”. It is free, instant, and intended for transfers between individuals — splitting a bill, paying a friend. It is not intended for trade, and using one to run a business creates problems at reconciliation time and with your bank’s terms.
A merchant DuitNow QR is issued by your bank or acquirer after a merchant application, settles to a business account, and comes with the transaction reporting a business actually needs. Most Malaysian banks issue one free to small businesses, and the application is usually handled inside the business banking app or portal.
Can a QR generator create one?
Not from scratch. The payload has to carry a merchant identifier that only an issuer can allocate, so any tool offering to build a DuitNow QR from your name and phone number is producing something that will not work — or worse, something that scans and points at nothing.
What a general-purpose generator is legitimately for: re-encoding a payload your bank has already given you at a higher resolution for a large print run, and making the non-payment codes that sit alongside it. A counter card carrying the bank-issued payment QR plus a self-made QR for your menu or Google review page covers what most small businesses need.
Printing and display
Print at least 8 × 8 cm for a counter code and considerably larger for anything scanned from a distance. Keep dark modules on a white background — inverted or low-contrast codes fail on older phone cameras — and leave the quiet zone, the blank margin around the pattern, completely clear. Crowding it with a border or a logo is the most common reason a technically valid code will not scan.
Laminate or use a matte finish: glare from overhead lighting on a glossy card is the second most common failure. Show the DuitNow logo so customers recognise what they are scanning, and test with at least two different bank apps before committing to a print run.
Watch for sticker replacement
Pasting a different QR over a merchant’s code is a well-documented fraud across every market that uses payment QRs, and it costs the merchant the sale as well as the customer the money. The defence on the customer side is simply reading the payee name the app displays before confirming — it comes from the code, and it will be wrong if the sticker was swapped.
On the merchant side, check the code on your counter periodically against your own, and prefer a fixed, tamper-evident mounting to a loose card that can be covered in a moment.
Need a general-purpose code instead? Use the free QR code generator — it runs entirely in your browser.