By Lee, founder of leodesign
Short answer: If your clients already pay with WeChat Pay, Alipay, DuitNow or PayNow, the simplest invoice is one that prints your own payment details and QR code right under the amount due, so the client scans and pays you directly. You don't need a payment processor for that. Use a processor (Stripe, HitPay, Airwallex and similar) only when clients need to pay by card, from abroad, or when you want payment confirmed automatically, and check its fees first.
Why the QR belongs on the invoice
Every extra step between "the client decides to pay" and "the money arrives" adds delay. In much of Asia the payment step is a QR scan in a banking or wallet app. A Singapore founder put it plainly on r/smeSingapore: "PayNow is how people pay here, and it's not always treated that way by the software." Many invoice tools are built around card checkout, so local-wallet users end up pasting account numbers into a chat message after the invoice.
Two ways to get paid
1. Your own details on the invoice (no processor). You show your bank account, DuitNow ID or QR, PayNow mobile/UEN or QR, WeChat Pay or Alipay QR, or PayPal. The client pays you directly; the invoice tool never touches the money and takes no cut. You mark the invoice as paid when it arrives.
- Good for: local clients, bank transfers, wallets the client already uses.
- Trade-off: no automatic payment confirmation; you check your account.
2. A payment processor. The invoice links to a checkout run by a processor, which can take cards and some wallets and confirm payment automatically.
- Good for: card payers, overseas clients, automatic reconciliation.
- Trade-off: per-transaction fees and an onboarding check. Fees vary by method and country, so read the processor's own pricing page before you choose.
Many designers combine them: a local QR for local clients, and a processor link only for the ones who insist on card.
What to put on the invoice
- The amount due for this stage: the deposit invoice and the balance invoice separately, so the client knows exactly what to pay now.
- Currency (MYR, SGD, HKD, CNY, USD) and, for RMB, the amount in Chinese words if your client expects it.
- Each method you accept, with the QR image and the name the client will see on the transfer, so they can recognise you.
- A reference to quote (invoice or order number) and the due date.
- In Malaysia, check whether e-invoicing (MyInvois) applies to your business; an invoice tool that only shows payment details does not submit e-invoices for you.
A sample payment section
Here is how the bottom of a balance invoice can read for a client in Kuala Lumpur:
Balance due: RM 2,640 (60%, on delivery) Due by 20 November. Please quote INV-015 as the reference. DuitNow: scan the QR below or pay to DuitNow ID [your mobile number or ID], name shown: [your name or studio]. Bank transfer: [bank], [account name], [account number]. Final files are released once the balance is received.
For a Singapore client, swap in PayNow (mobile or UEN) and SGD. For a mainland China client, show your WeChat Pay or Alipay receiving QR and the RMB amount, with the amount in Chinese words if they expect it. For Hong Kong, show your FPS ID or QR and HKD. Keep one currency per invoice so the client never has to convert in their head.
Common mistakes
- One QR for the whole project. Clients pay the deposit, then forget the balance. Separate deposit and balance invoices make the outstanding amount obvious.
- Payment details only in chat. Messages scroll away. Put the details on the document the client signs and keeps.
- A personal QR with an unrecognisable name. If the name in the client's banking app doesn't match the name on your invoice, they hesitate. Say on the invoice which name will appear.
- Releasing final files before the balance. Say in the contract that final files follow payment of the balance, and stick to it.
Doing it with Leostu
Leostu was built for exactly this case. When you create an order, the invoice shows your own payment details and QR codes: bank, WeChat Pay, Alipay, DuitNow, PayNow, PayPal and a few more. Deposit and balance are separate, each order can use one of 14 currencies, and the client opens one link with an access code on their phone, signs the contract and sees how to pay. Money never passes through Leostu. When the balance comes in, you tap "Got paid" and the order leaves the outstanding list. If it doesn't come in, Leostu gives you a pre-written reminder with the link and code to copy and send.
Limits, honestly: Leostu doesn't take card payments, doesn't confirm payments automatically and doesn't submit tax e-invoices. If you need those, pair it with a processor or your accounting software, or choose a tool with built-in payments. See who Leostu is and isn't for.
To try it without an account, use the free designer invoice generator. Region guides: Malaysia (DuitNow), Singapore (PayNow), Hong Kong (FPS). Pricing is on the home page.