Business and Financial Tools
PromptPay QR Code Generator with Optional Amount
Create a Thai QR Payment instruction from a registered PromptPay ID and optional THB amount in your browser, with the ID masked in the result.
Share this tool
THAI QR PAYMENT · LOCAL · NO ACCOUNT
Create a PromptPay payment QR on this device
Enter the registered PromptPay ID and optionally fix the THB amount. The recipient name is resolved only by the payer's banking app.
Payment instruction
PromptPay details
Leave blank to let the payer enter the amount. A supplied amount is encoded with two decimal places.
EMV MPM · CRC-16/CCITT
Payment QR result
Enter a PromptPay ID and generate
- ID type
- —
- PromptPay ID
- —
- Amount
- —
- Payment mode
- —
Reveal exact payment payload (contains the ID and amount)
Quick answer
How do I generate a PromptPay QR Code with a fixed amount?
Choose a PromptPay ID type, enter a Thai mobile number, a 13-digit national or tax ID, or a 15-digit e-wallet ID, and optionally supply the THB amount. Generate the PromptPay QR, then scan it in a banking app and verify the registered recipient name and amount before confirming.
How to use this tool
- Choose the PromptPay ID type and enter the exact ID registered for the receiving account
- Enter a THB amount to fix it or leave the amount blank for the payer to enter, then generate the PromptPay QR
- Scan-test in a banking app and verify its recipient name and amount before downloading PNG/SVG or printing
How QR generation works
The tool creates a merchant-presented Thai QR Payment TLV payload. It uses Payload Format 01, Point of Initiation 11 without an amount or 12 with an amount, Tag 29 and AID A000000677010111 for PromptPay Credit Transfer, Tag 53 value 764 for THB, optional Tag 54 for the amount, Tag 58 value TH, and Tag 63 for CRC-16/CCITT-FALSE. A Thai 0XXXXXXXXX mobile number is converted to the standard 13-digit 0066XXXXXXXXX form before the payload is encoded as a QR Code Model 2 with a four-module quiet zone.
Examples
| Example | Input | Expected result |
|---|---|---|
| Mobile number without an amount | |
The ID becomes 0066812345678, Point of Initiation is 11, Tag 54 is omitted, and the payload ends with CRC 5D82 |
| Mobile number with THB 100 | |
Tag 54 is 100.00, Point of Initiation is 12, and the payload is 00020101021229370016A000000677010111011300668123456785802TH53037645406100.006304BB8A |
| National or tax ID | |
The ID is placed in sub-tag 02 of Tag 29 and 1250.50 in Tag 54; the tool does not claim that the ID is registered for PromptPay |
Limitations
- The tool supports PromptPay Credit Transfer Tag 29 for mobile, national or tax ID, and e-wallet ID. It does not support Bill Payment Tag 30, bank-account sub-tag 04, cross-border QR, or customer-presented QR.
- It validates only ID format and length. It does not check a national-ID checksum, existence, registration, ownership, destination account, or PromptPay status.
- Amount must be above 0, at most 9,999,999,999.99 THB, and have no more than two decimal places. Banks and payment providers can apply lower transaction limits.
- A valid CRC shows only that the payload matches its checksum calculation. It does not verify a recipient, safety, authorization, debit, settlement, or received funds.
- Scanning depends on size, resolution, distance, camera, lighting, material, damage, quiet zone, and banking-app support. Test with the actual app before publishing.
- The QR and downloaded file contain the PromptPay ID and may contain the amount in their payload. Anyone who sees the image can decode these even though the on-page result masks the ID.
Frequently asked questions
Can the website see or store my PromptPay ID?
No. JavaScript in the current tab uses the ID, amount, payload, and image only to create the result. There is no submission, server log, cookie, or localStorage use.
Why does the page not show the PromptPay recipient name?
The recipient name is not supplied to this generator. Under the standard, the payer's application uses data looked up from PromptPay, so rely only on the name shown by the banking app before confirming.
Can I enter a mobile number in +66 format?
Yes. The tool accepts 0XXXXXXXXX, 66XXXXXXXXX, or +66XXXXXXXXX for a Thai mobile beginning with 06, 08, or 09, then encodes it as 0066XXXXXXXXX.
Can I leave the amount blank?
Yes. With a blank amount, Tag 54 is omitted and Point of Initiation is 11 so the payer enters an amount. Supplying an amount encodes two decimal places and uses value 12.
Does the QR prove that the ID is registered or that money will arrive?
No. The tool has no bank or PromptPay connection. It cannot verify registration, ownership, the destination account, payment authorization, settlement, or received funds. Verify the banking-app recipient and check account activity separately.
Is the generated QR proof of transfer or a receipt?
No. It is only an instruction for starting a payment, not a transfer slip, receipt, or settlement confirmation.
References
- Bank of Thailand — Thai QR Payment Standard Verified 2026-08-22
- Bank of Thailand — PromptPay Verified 2026-08-22
- EMVCo — Merchant-Presented QR Code specifications Verified 2026-08-22
Content and encoding method last reviewed: