If your business sends out a lot of invoices, you need to know which invoice each incoming payment belongs to. A plain PromptPay QR only tells you that money arrived and how much. A bill payment QR carries reference numbers with the payment, so you can match it to the right bill and customer. You can make one for free on QRnaka.
Bill payment QR vs PromptPay QR
Both follow the Bank of Thailand's Thai QR Payment standard and scan in the same banking apps, but they do different jobs:
| PromptPay QR | Bill payment QR | |
|---|---|---|
| Pays into | The account linked to a PromptPay ID | The business's bill payment service |
| Identified by | Mobile, 13-digit ID or e-Wallet | A 15-digit Biller ID |
| References | None | Ref1 and Ref2 |
| Best for | Shops and individuals | Matching payments to bills |
If you only need money in the company account, without matching it to bills, a PromptPay code using the company's tax ID is simpler: see PromptPay ID types.
What is a Biller ID?
The Biller ID is a 15-digit number identifying your business's bill payment service. Your bank assigns it when you sign up for bill payment, so never guess it.
The example in the page's box shows its shape: the business's 13-digit tax ID plus two more digits. The page checks the tax ID's check digit. If it does not add up, you get a warning to check with the bank, but the code is still made, because the bank assigned the number. Re-check what you typed and ask your bank if in doubt.
What are Ref1 and Ref2?
Ref1 and Ref2 are reference numbers that tell you what a payment is for. The page's examples use Ref1 for an invoice number and Ref2 for a customer code, but what each field means, and how payments are reported to you, is agreed with your bank. Settle that first.
The rules on the bill payment QR page:
- Ref1 is required; Ref2 is optional.
- Only A-Z and 0-9, up to 20 characters. Lower-case letters are turned into capitals.
- There is also an optional Ref3 (up to 25 characters). Use it only if your bank tells you to.
With an amount or without?
- With an amount: one code per invoice. The banking app fills in the total.
- Without an amount: the customer types it. This suits a code carrying a customer code, reused every month, if your bank agreement allows it.
Making one, step by step
- Open the bill payment QR page.
- Enter the "Biller ID (15 digits)" your bank gave you.
- Enter "Reference 1 (Ref1)", for example the invoice number.
- Enter "Reference 2 (Ref2)" if you use one, for example the customer code.
- Enter the "Amount (THB)", or leave it empty.
- Check the summary under the code (Biller ID, references, amount) and look for the "Scans" badge.
- Download PNG, SVG, PDF, JPG or WebP and add it to the invoice, or send it to the customer.
The code is made in your browser. If you are not signed in, what you typed is not sent anywhere; if you are signed in, the codes you use are kept in your account history. The customer's money goes straight to your business; QRnaka never receives or holds it.
Test before customers use it
- Scan the code with a banking app: the confirmation screen should show your business as the payee and the right amount. Then cancel.
- Open the file on the Read QR page to see the Biller ID, Ref1, Ref2 and amount inside. It reads on your device and uploads nothing.
- Before sending codes to many customers, make one small real payment and confirm it reaches you with the references your system expects.
Customers should still compare the payee's name before confirming, as with any payment code: see checking a PromptPay QR before paying.
Bill payment barcodes for counters
If customers can also pay over the counter, the barcode page has "Thai bill payment (BOT)": a Code 128 barcode in the Bank of Thailand format with the Biller ID, references and amount, for counter scanners at banks and convenience stores. One invoice can carry both the QR and the barcode.
Which counters accept your bills depends on the channels your business has arranged, so ask your bank or service provider. Other barcode types are covered in choosing a barcode type.
FAQ
Can a small shop use bill payment QR?
Only with a Biller ID, which comes from signing up for bill payment with a bank. Without one, use a PromptPay QR instead.
Can Ref1 contain Thai letters, dashes or spaces?
No. Only A-Z and 0-9, up to 20 characters. If your invoice numbers contain dashes, ask your bank how to send them.
Do I need a QRnaka account?
No. A bill payment QR is a regular QR code: free, no sign-up, no ads.
Once your bank has given you a Biller ID, open the bill payment QR page, enter the references you agreed with the bank, test once, and add the code to your invoices.