How PromptPay works
You register a proxy — most commonly your Thai mobile number or your national ID number — against a bank account. A PromptPay QR encodes that proxy in an EMVCo payload, and anyone with a Thai banking app can scan it and transfer instantly, with the funds arriving in seconds rather than clearing later.
Because the code names a proxy rather than an account, you can move the underlying account without invalidating codes already printed or shared. That is the same design PayNow uses, and it is a meaningful practical advantage over encoding account numbers directly.
Getting your code
Individuals: register your mobile number or ID with your Thai bank, then use the bank app’s “My QR” screen to display or download the code. There is no charge and it is available immediately.
Merchants: apply through your bank for a shop code. Merchant setups can issue dynamic codes carrying a fixed amount per bill, which removes the customer-typing step and gives you a reference on each transaction for reconciliation.
What tourists can and cannot do
Paying: visitors from countries whose payment operator has an active link with Thailand — arrangements exist with Singapore, Malaysia and others — can often scan a PromptPay code directly in their home banking app, with the currency conversion handled between the two schemes. This depends on the specific link and on your bank participating, so confirm before travelling rather than assuming.
Receiving: not possible without local registration. A PromptPay proxy must be linked to a Thai bank account or a licensed Thai e-wallet, so a visitor cannot set themselves up to receive PromptPay payments, and no generator changes that.
Re-encoding an existing payload
Because the static payload format is a published EMVCo standard, re-encoding a payload your bank has already issued you — to print it larger, or to place it in a design — is legitimate and works, provided the payload string is copied exactly. A single altered character invalidates the checksum at the end of the payload and the code stops resolving.
Building one from scratch is a different matter: the proxy has to be genuinely registered for the code to resolve to anything, so verify with a small real payment before printing at volume. A code that looks correct and pays nobody is an expensive thing to discover after the standees arrive.
Printing and safety
Print large, keep dark modules on white, leave the quiet zone clear, and prefer matte to glossy so the code survives overhead lighting. Test on more than one phone before a print run.
Read the payee name before confirming a payment — swapped stickers are the standard fraud in every QR payment market, and the displayed name is what catches them. Merchants should check their own standee regularly.
Need a general-purpose code instead? Use the free QR code generator — it runs entirely in your browser.