21 September, 2026

Create a Payment QR Code for Your Website with Automatic Order Reconciliation

create a QR code to receive money for a website with automatic order reconciliation

Customers who come to MONA for a sales website often ask the same question: how do I make it so customers just scan a code and are done, without typing a long account number and remembering to write the transfer content. We once saw a shop receive money by mistake because two customers transferred at the same time, with the same amount of 500,000 VND, and neither wrote the order code. Creating a QR code to receive money for your website solves exactly this: each order gets its own QR code with the amount and reconciliation code already embedded, and scanning it matches in 2 seconds. Nothing extra to type.

Why manual reconciliation is still a shop owner's nightmare

MONA's online sales customers often end up in this situation: they receive dozens to hundreds of orders a day, yet accounting still has to open the bank app and check balance changes line by line to find who paid, and some months up to 2,000 orders pile into exactly 30 days. Customers forget the order code or misspell it, so staff must message each person to ask again, and some days it takes up to 3 hours just to confirm all the morning's orders. The more sales channels feed into the same account number, the messier it gets to look for names in the transfer content, because each customer abbreviates differently. A single delay means a lost order. We heard one shop owner say that during a sale, customers cancelled orders in bulk because they waited more than 6 hours for payment confirmation, while competitors confirmed receipt within seconds. Losing an order in the middle of sale season hurts far more than on a normal day. The more orders arrive at once, the easier it is to miss some when checking by eye, especially at evening peak hours when customers like to check out. Fanpage staff also get pulled in to confirm in place of accounting, so both jobs slow down.

How a dynamic QR code differs from a pre-printed static one

A static QR code holds only the shop's original account number, so after scanning, customers still have to type the amount and remember to write the correct order code in the required format. One wrong character and the reconciliation work falls on the accountant. A dynamic QR code is different: the system generates a separate QR code for each order on the website the moment the customer clicks pay, with the amount and order code locked into the code in 2 seconds. The customer just scans and taps confirm. Nothing extra to type. MONA customers who sell on several marketplaces often use this to give each channel its own code, which makes it easy to split revenue by source. The VietQR standard operated by NAPAS lets this code work on 36 domestic banks, and anyone can scan it with their familiar app without installing anything else. This is also why we chose this standard as the foundation for the whole MONA Pay system instead of building our own standard.

create a QR code to receive money for a website with automatic order reconciliation

The difference between static and dynamic codes is clearest when you watch a customer scan. The video below shows a dynamic code with the amount and order code already filled in, so the customer only has to tap transfer.

Watch the full guide: creating a payment QR code for a store

What we ran into when a bank sent data outside the standard

Bank systems don't always send data exactly as the technical documentation describes. Once a bank sent a transaction notification with the header shifted to the wrong position, and our standard system immediately returned a 422 error and dropped that transaction in just 2 seconds. The bank could not fix this on request within 1 week or 1 month. If it can't be fixed, we fix it ourselves. We had to write our own intermediate data-reading layer to reshape the structure correctly, then replay the dropped transactions of the day so customers' orders were credited the exact amount, with no customer waiting until the next day. Incidents like this come with no warning, so the monitoring system has to detect them through abnormal error rates instead of waiting for customers to report. The lesson we always pass on is not to trust that incoming data is always in the standard, and to always keep a mechanism to detect and resend for abnormal cases.

Under 20 to 30 orders a day, you don't need integration code yet

If your shop sells under 20 to 30 orders a day, our honest advice is that there's no need to bother connecting an API or hiring a developer to write a custom webhook. A payment page set up with a Telegram or Zalo notification bot is enough, and it takes about 10 minutes to set up. Just try it first. The money you don't spend on a developer, put into ads, works far better, and that's what we say plainly to new customers asking about a solution. When order volume grows to several hundred a day, or you need an automated scenario like shipping out stock the moment money arrives, then connecting the webhook is really worth the effort.

create a QR code to receive money for a website with automatic order reconciliation

A webhook notifies you the moment money arrives, no screen watching needed

As soon as a customer scans the code and the transfer succeeds, the system signs the packet with HMAC-SHA256 and sends it to the website's server through a webhook, all in about 2 seconds from the bank's confirmation. The order changes status immediately, with no need for anyone to confirm by hand. In MONA's webinar events, attendees transfer money with their phone number in the content to hold a seat, and the system matches by phone number and amount because the transaction code on the bank app receipt differs from the code the bank sends back. We can't match by the usual code. Whoever transfers first is placed first. This is the kind of problem we handle daily for many high-volume websites, and each case has its own matching specifics rather than one formula for everyone.

Costs and the banks that currently support dynamic QR codes

The free plan handles 500 transactions a month. Beyond that, a fixed plan starts at 99,000 VND a month for 2,000 transactions, and no plan takes a percentage of the amount. No percentage fees. PayPal charges about 4.4% plus a fixed fee per transaction, so the gap is significant once a shop has a few thousand orders a month. ACB Bank is officially live with real-time payment notifications. Other banks are still being connected, so we won't promise specific dates. We don't promise dates for banks that aren't running yet. You can see the full bank status table at monapay.vn/ngan-hang, and we update it regularly instead of building it and leaving it to rot.

Integrating dynamic QR codes into a WooCommerce or WordPress website

Websites running WooCommerce or a plain WordPress install payment tool comes with a sandbox test mode and takes about 10 minutes to set up without any coding. For custom-built systems, we provide full API documentation so developers can plug it into the existing checkout flow, usually within 1 working day. You can sign up for a trial right now at my.monapay.vn with no approval wait, and you can test in the sandbox before linking a real bank account. Within a few minutes you can see what the admin interface looks like before deciding to use it for real. No more guessing. The numbers we measured across many deployed websites show similar results. For any technical question, call 1900 636 648 and we'll connect you the same day.

A manifesto for growing together

Why does MONA offer this for free?

MONA is a software, digital transformation and AI transformation company, but above all, MONA is a B2B service company that benefits directly from this: the more successful Vietnamese businesses are, the more MONA benefits. A slow, shrinking market with weak technology is exactly what would kill MONA's future business.

So more than anyone, MONA wants you to succeed, and MONA genuinely gets involved in helping you get there.

And AI transformation is the key to that success for all of us.

FAQ

What happens if the bank is under maintenance while a customer is scanning the QR code? The transaction will be held or return an error from the bank. The QR code on the website remains valid for the period you configure, and the customer can come back and scan later or choose another bank. The system only updates the order when the money has actually arrived.

Can small individual businesses use a personal account? Yes. MONA Pay supports both business accounts and personal accounts. As long as the bank supports the VietQR standard, you can create dynamic QR codes and receive automatic payment notifications right away, with no separate legal entity registration. Many market traders and livestream sellers already use exactly this method.

Does the system detect customers who deliberately underpay? Yes. The webhook reads the exact amount received within 2 seconds, and if it is less than the order value, the order is marked as partially paid and the system does not switch to a success status on its own. Staff still need to contact the customer to ask for the missing amount before shipping. The machine only reports the correct figures, and the final decision stays with the seller.

Does integrating dynamic QR codes into a website take a lot of time? With WooCommerce or WordPress you only need to install a plugin, in about 10 minutes. It doesn't take long. For a custom-built system, developers read the API documentation and test on the sandbox, usually finishing within 1 working session.

MONA has a podcast: listen instead of readingEpisodes on AI, automation & SEO for Vietnamese businesses
Nghe ngay
About the author

CEO & Founder · The MONA

The founder of The MONA built a service company of 60+ staff with 14,000+ projects delivered. Khánh Hùng shares his thinking on building self-running systems, automating a business, and the real lessons behind MONA's projects.

Views 309
Rate this article 4,8/5 · 20 ratings

Professional website
design services

Own a website with a beautiful, 100% exclusive design and a lifetime warranty, with the ability
to expand features flexibly as your business grows, starting today!

Contact Mona

    MONA có riêng một Người "Bạn Thân" cho bạn - Người Account sẽ đồng hành, hỗ trợ, hướng dẫn, đặt đồ ăn cho bạn mãi mãi, từ đây về sau!
    MONA will never sell your information or send you spam
    Đội MONA tư vấn hệ thống quản lý giáo dục trực tuyến
    Hỏi đáp giáo dục 4.0
    Tạo cuộc hẹn miễn phí với MONA để giải đáp và tư vấn mọi thắc mắc về giải pháp số hoá ngành giáo dục
    Thời lượng cuộc hẹn
    45 Phút
    Ngày và giờ
    Thứ 2, ngày 25 tháng 12, 2023
    [9:30 - 10:15]

      Chọn ngày và giờ
      Khung giờ
      Back
      Hãy cho MONA biết bạn là ai
      0:00