How DuitNow Works โ Complete Guide to Malaysian Payments
Everything about Malaysia's instant payment system: DuitNow IDs, EMV QR format, phone normalization, ASEAN cross-border connections and supported banks.
What is DuitNow?
DuitNow is Malaysia's national instant payment system, developed and operated by PayNet (Payments Network Malaysia) โ a joint venture owned by Bank Negara Malaysia (BNM) and eleven major Malaysian financial institutions. Launched in 2018, DuitNow replaced the older, slower Interbank GIRO (IBG) system and unified all Malaysian banks under a single real-time payment infrastructure. The name 'DuitNow' combines the Malay word for money (duit) with 'Now' โ reflecting its core promise of instant transfers. Unlike traditional bank transfers that require knowing a recipient's account number and bank routing code, DuitNow allows payments using a simple proxy identifier: a mobile phone number, MyKad IC number, passport number, or business registration number. DuitNow has grown into the backbone of Malaysian digital payments. As of 2025, it connects over 30 million registered users across all licensed Malaysian banks and major e-wallets. Payments process in seconds, available 24 hours a day, 7 days a week โ including public holidays. DuitNow is free for personal transfers up to RM 5,000. DuitNow QR โ the QR code payment component of the DuitNow ecosystem โ is based on the EMV Merchant Presented Mode (MPM) standard, the same technical foundation used by QRIS (Indonesia), PromptPay (Thailand), and PayNow (Singapore). The DuitNow QR Application Identifier (AID) is A000000693010011, embedded in EMV tag ID 26 of every DuitNow QR code.
How DuitNow Works โ Step by Step
- 1
Merchant displays DuitNow QR code
Static codes (open amount) are printed and displayed at the counter. Dynamic codes with a preset amount are generated per transaction.
- 2
Customer opens any DuitNow-enabled app
Maybank2u, CIMB Clicks, RHB Now, Hong Leong Connect, Touch 'n Go eWallet, Boost, GrabPay Malaysia โ all fully interoperable through PayNet's infrastructure.
- 3
Customer scans the DuitNow QR code
The code can be scanned from a printed sticker, phone screen, PDF invoice or any display surface.
- 4
Payment details pre-fill automatically
Merchant name, DuitNow proxy type, and amount (if embedded) are parsed from the EMV payload. For static QR, the customer enters the amount.
- 5
Customer authenticates the payment
Authentication is done through the banking app (PIN, password, or biometrics). No sensitive credentials stored in the QR code.
- 6
PayNet routes and settles in real time
PayNet's national switching infrastructure processes and settles the transaction instantly โ 24/7, including weekends and public holidays.
- 7
Both parties receive instant confirmation
Payer gets transaction success notification with reference number. Merchant's account is credited immediately with SMS and in-app notification.
DuitNow ID Types Explained
DuitNow uses proxy identifiers โ human-readable addresses that map to bank accounts in PayNet's registry. Instead of sharing your account number, you share your DuitNow proxy. Mobile Number (tag 01) uses the Malaysian format 60123456789 and is the most common for personal P2P payments. MyKad IC Number (tag 02) uses the YYMMDD-PB-###G format for Malaysian citizens and permanent residents. Passport Number (tag 03) is used by foreign nationals with Malaysian bank accounts. Business Registration / ROC / ROB (tag 04) is used by incorporated companies and registered businesses. Others (tag 05) covers government agencies and special-purpose entities. The proxy type is encoded in EMV tag ID 26 of the DuitNow QR payload.
| Type | Tag | Format | Example | Use Case |
|---|---|---|---|---|
| Mobile Number | 01 | 60123456789 | 0123456789 โ 60123456789 | Personal P2P payments, most common for individuals |
| MyKad IC Number | 02 | YYMMDD-PB-###G | 900101-14-5678 โ 900101145678 | Malaysian citizens and permanent residents |
| Passport Number | 03 | As on passport | A12345678 | Foreign nationals with Malaysian bank accounts |
| Business Registration (ROC/ROB) | 04 | XXXXXXXXXX (ROC) / XXXXXXXX (ROB) | 202301234567 or 1234567-A | Incorporated companies and registered businesses |
| Others | 05 | Varies | Special identifiers | Government agencies and special-purpose entities |
The DuitNow QR Payload โ EMV Format
A DuitNow QR code encodes a sequence of TLV (Tag-Length-Value) fields as a single ASCII string. The format follows the EMV Merchant Presented Mode (MPM) specification, with the DuitNow-specific Application Identifier (AID) A000000693010011 embedded in tag ID 26. Tag 26 is the critical DuitNow identifier: sub-tag 00 contains the AID, followed by the proxy type sub-tag (01 = mobile) and the normalized proxy value. Tag 63 contains the CRC16-CCITT checksum (4-digit hex). The transaction currency is Malaysian Ringgit (MYR, ISO 4217 code 458). Country code is MY (ISO 3166-1 alpha-2). Point of Initiation 11 = static, 12 = dynamic with preset amount.
000201 010211 2966 0016A000000693010011 011560123456789 52040000 5303458 5802MY 5913Ahmad Grocery 6011Kuala Lumpur 630412AB
| Tag ID | Field Name | Example Value | Required | Description |
|---|---|---|---|---|
| 00 | Payload Format Indicator | 01 | Required | Always "01" โ EMV Merchant Presented Mode version |
| 01 | Point of Initiation Method | 11 or 12 | Required | 11 = static (payer enters amount), 12 = dynamic (amount in QR) |
| 26 | Merchant Account โ DuitNow | AID + DuitNow ID | Required | AID: A000000693010011, followed by proxy type tag and value |
| 52 | Merchant Category Code | 0000 | Required | ISO 18245 MCC โ business category (0000 = not assigned) |
| 53 | Transaction Currency | 458 | Required | ISO 4217 numeric code for Malaysian Ringgit (MYR) |
| 54 | Transaction Amount | 10.50 | Optional | Present in dynamic QR only; omitted in static codes |
| 58 | Country Code | MY | Required | ISO 3166-1 alpha-2 โ Malaysia |
| 59 | Merchant Name | Ahmad Grocery | Required | Name shown to payer on confirmation screen, max 25 characters |
| 60 | Merchant City | Kuala Lumpur | Required | City of the merchant |
| 62 | Additional Data Field | bill / reference | Optional | Optional bill number, terminal ID, or payment reference |
| 63 | CRC | 4-digit hex | Required | CRC16-CCITT checksum of the entire payload including "6304" |
Phone Number Normalization
Malaysian mobile numbers must be normalized to the international format before being embedded in a DuitNow QR payload. The rule is straightforward: remove the leading zero and prepend country code 60. Input 0123456789 becomes 60123456789. Input +60123456789 becomes 60123456789 (remove the plus sign). Input 60123456789 stays 60123456789 (already normalized). MyKad IC numbers (12 digits) and business registration numbers are used as-is without transformation.
0123456789โ60123456789+60123456789โ6012345678960123456789โ60123456789function normalizeMalaysianMobile(input: string): string {
const digits = input.replace(/\D/g, '');
if (digits.startsWith('60')) return digits;
if (digits.startsWith('0')) return '6' + digits;
return '60' + digits;
}The ASEAN Network
PayNet has established bilateral QR payment linkages with several ASEAN neighbors, enabling Malaysians to pay abroad and foreign visitors to pay at Malaysian merchants โ all without cash or currency exchange. The infrastructure converts between currencies at the prevailing real-time exchange rate. The Malaysia-Singapore PayNow-DuitNow linkage (since 2021) is the most mature and heavily used corridor, reflecting the strong trade and tourism ties between both countries. Additional connections include Thailand (PromptPay, since 2022), Indonesia (QRIS, since 2022), and the Philippines (QR Ph, since 2023). Singapore residents can scan a DuitNow QR code in Malaysia using their PayNow app, paying in SGD while the merchant receives MYR โ all settled in seconds.
Singapore
Since 2021PayNow ยท Most active corridor; SGDโMYR
Thailand
Since 2022PromptPay ยท THBโMYR real-time conversion
Indonesia
Since 2022QRIS ยท IDRโMYR for ASEAN travel
Philippines
Since 2023QR Ph ยท PHPโMYR bilateral linkage
Supported Banks & E-Wallets
All licensed Malaysian banks and major e-wallets participate in the DuitNow ecosystem. Every app is fully interoperable โ a payment from Maybank2u arrives instantly in a Boost e-wallet, and vice versa. PayNet operates the central switching infrastructure that connects all participants. Major banks include Maybank, CIMB, Public Bank, RHB, Hong Leong, AmBank, Affin Bank, Alliance Bank, Bank Islam, Bank Muamalat, and BSN. E-wallets include Touch 'n Go (Malaysia's most popular, 18M+ users), Boost, GrabPay, and ShopeePay MY.
DuitNow vs. IBG โ What Changed?
Before DuitNow, Malaysian interbank transfers relied on IBG (Interbank GIRO) โ a batch processing system that was slow, limited to business hours, and charged fees. DuitNow replaced IBG as the primary interbank transfer method, delivering a dramatically better user experience. IBG processed in batches (next business day); DuitNow settles in real time in seconds. IBG was only available during business hours; DuitNow runs 24/7/365. IBG charged RM 0.10โRM 2.00 per transaction; DuitNow is free up to RM 5,000. IBG required bank account number and routing code; DuitNow uses phone, IC, or business registration as proxy. The transition was phased in over several years, with IBG officially discontinued for most use cases by 2023.
| Feature | IBG (legacy) | DuitNow (current) |
|---|---|---|
| Processing | Batch (next business day) | Real-time (seconds) |
| Availability | Business hours only | 24/7/365 |
| Cost (personal) | RM 0.10 โ RM 2.00 per txn | Free up to RM 5,000 |
| Limit | Varies by bank | RM 50,000 standard |
| Identifier | Bank account + routing code | Phone / IC / business reg. |
| Merchant QR | Not supported | Native DuitNow QR support |
| Status | Discontinued / legacy | Current standard |
Ready to generate your DuitNow QR Code?
Free, instant, works with Maybank, CIMB, Touch 'n Go, Boost and all DuitNow apps.