Skip to content
Get a quote Call +66 93 004 4098

E-commerce

How to accept PromptPay on WooCommerce, with a manual QR or a payment gateway

A static PromptPay QR costs nothing but needs slip checks; a gateway QR costs a fee but confirms orders itself. Here is how to choose.

Cover image for this guide: WooCommerce

How do you accept PromptPay on WooCommerce?

WooCommerce can accept PromptPay in two ways: a free static QR code with manual slip checks, or a payment gateway plugin that creates a QR code for each order and updates the order by itself.

The free way is a static QR code for your PromptPay ID shown at checkout: the customer pays, uploads a transfer slip, and someone on your team checks the bank account before shipping. The automatic way is a payment gateway plugin that creates a fresh QR code for each order with the exact amount, then marks the order paid by itself when the money arrives.

The first costs nothing per order but costs staff time and carries fake-slip risk. The second charges a fee per transaction and removes the manual checking.

For a shop doing a handful of orders a day, the static QR can be fine for a while. Once orders arrive at night, on weekends or in batches during a sale, most owners move to a gateway.

PromptPay in one paragraph

PromptPay is Thailand's national instant payment scheme, overseen by the Bank of Thailand. A business or person links a PromptPay ID (a phone number, national ID or tax ID) to a bank account, and anyone can pay it instantly from any Thai banking app by scanning a Thai QR code. For Thai shoppers it is often the default way to pay online, which is why it belongs on almost every store selling to local customers.

Two ways to take PromptPay on WooCommerce

The table sets the two routes side by side. Neither is wrong; they suit different volumes and different tolerance for manual work.

Static QR with slip uploadDynamic QR through a gateway
Cost per orderNo gateway feeGateway fee per transaction (see the provider's pricing page)
Amount in the QRCustomer types it, errors happenExact order amount built into the QR
Order confirmationStaff check the bank app, then update the orderAutomatic, through a webhook from the gateway
Fake slip riskReal, needs checkingNot applicable, payment is confirmed by the provider
Works at 2 a.m.Order waits until someone checksYes
SetupSimple bank transfer settings or a small pluginMerchant account, API keys, webhook, testing
Best forVery low volume, testing the marketRegular daily orders, sales campaigns

Option 1: static QR and slip checks

WooCommerce includes a "Direct bank transfer" payment method out of the box. You can add your PromptPay QR image and instructions to it, and a small upload field (via a plugin or a few lines of custom code) lets customers attach their transfer slip. The order sits "on hold" until someone confirms the money has arrived.

When it is enough

  • You are testing a new product line and expect a few orders a week.
  • Someone already checks the business bank account several times a day.
  • Your products are made to order, so a short delay before confirmation does not hurt.

The risks

Fake or edited transfer slips are a known problem in Thai online selling. A slip image proves nothing on its own; only the incoming transaction in your bank account does. Customers also mistype amounts, pay twice, or pay for an order they then abandon. Every one of these becomes a manual task.

If you stay with this route, set rules: never ship on a slip alone, match each payment by amount and time in the banking app, and ask customers to include the order number in the transfer note where their bank app allows it. Some services offer slip verification that reads the QR on the slip and checks it against bank records; they reduce the checking load but do not remove it, and they add their own fees.

Option 2: dynamic QR through a gateway

With a gateway, the customer chooses PromptPay at checkout and WooCommerce asks the provider for a one-time QR code tied to that order and amount. The customer scans it, the provider sees the payment land, and it sends a notification (a webhook) back to your site. WooCommerce then moves the order to "processing", reduces stock and sends the confirmation email. Nobody on your team touches it.

Which WordPress payment gateways offer PromptPay

At the time of writing, Omise (for a time branded Opn Payments) publishes a WooCommerce plugin on WordPress.org that includes PromptPay, and 2C2P documents WooCommerce integration with Thai QR among its methods. Banks also offer their own QR APIs; if you bank with SCB and want the bank-direct route, our guide to the SCB payment gateway covers onboarding and integration. Check each provider's documentation for current WooCommerce support before you sign, as plugins and supported methods change.

For a wider comparison of fees, payout times and supported methods across providers, see our overview of payment gateways in Thailand.

Fees

Every gateway charges per transaction, and PromptPay is usually priced differently from cards. We do not quote rates here because they change and some are negotiated. Read the current numbers on the provider's own pricing page, and ask whether there are setup fees, monthly minimums or payout fees on top.

Setting it up

Setting up a gateway PromptPay option on WooCommerce follows the same five steps whichever provider you pick. Approval of your merchant account is usually the slowest part, so start it first.

  1. Step 1

    Open a merchant account

    Apply with the provider, supply business documents and your bank account for payouts, and wait for approval.

  2. Step 2

    Install the plugin

    Use the provider's official plugin, keep WooCommerce and WordPress up to date, and avoid unmaintained copies.

  3. Step 3

    Add test keys

    Paste the test API keys into the plugin settings and enable PromptPay as a method.

  4. Step 4

    Register the webhook

    Give the provider your site's webhook address so it can tell WooCommerce when a payment succeeds, fails or expires.

  5. Step 5

    Run test orders, then go live

    Place paid, expired and refunded test orders, check order statuses and emails, then switch to live keys.

Making QR payment work on a phone

Here is the awkward part. Most Thai shoppers browse and buy on their phone, and you cannot scan a QR code that is on the same screen you are holding. A checkout designed only for desktop quietly loses these buyers, one of the leaks covered in our guide to ecommerce checkout optimization.

What a good mobile flow looks like

  • A "save QR image" button right under the code, so the customer can save it to their photos.
  • Clear short instructions: open your banking app, choose scan, pick the saved image from your gallery. Most Thai banking apps support scanning from a saved image.
  • A visible countdown if the QR expires, so nobody pays an expired code.
  • A page that updates on its own when payment is confirmed, so the customer returning from their bank app sees "Thank you, order received" without refreshing.
  • Thai and English text if you sell to both audiences, because a confused buyer at the payment step rarely comes back.

Test this on real phones, both iPhone and Android, with at least two different banking apps. It is the step most often skipped, and the one that shows up as abandoned orders in your reports.

Refunds and reconciliation

PromptPay is a push payment: the customer sends money to you, and there is no card-style chargeback. That makes refunds a deliberate action on your side.

With a static QR

You refund by making a new transfer to the customer, usually to their PromptPay ID or bank account, which you must ask them for. Record the refund in WooCommerce manually so stock and reports stay correct. Keep a simple log: order number, amount, date, and the reference from your banking app.

With a gateway

Some providers let you trigger PromptPay refunds from their dashboard or even from inside WooCommerce; others handle PromptPay refunds differently from cards. Ask before you sign, and write the steps down for whoever handles customer service.

Matching money to orders

Gateways pay out in batches, net of fees, a few days after the sale. Your accountant will want to match each payout to a list of orders. Make sure the gateway's transaction ID is saved on every WooCommerce order, and export a payout report each week. If you issue e-Tax invoices, the invoice should follow the order total, with gateway fees handled as a separate business expense.

PromptPay next to cards and COD

PromptPay should rarely be the only option. A typical Thai store checkout offers three or four methods, and the order you list them in nudges buyers.

  • PromptPay QR first for a Thai audience: familiar, instant and cheap for you.
  • Cards second, essential for tourists, expats and corporate buyers paying on a company card.
  • Cash on delivery where your customers expect it, with its own rules for couriers and failed deliveries; our guide to cash on delivery for WooCommerce covers the settings and the risks.
  • Wallets if your buyers use them heavily; see our notes on accepting TrueMoney Wallet on your website.

Hide methods that do not suit an order, for example COD above a certain value or for remote areas. If you are still choosing a platform, keep in mind that Shopify handles payments through approved providers only, so the options differ; our comparison of Shopify vs Shopify Plus touches on what each plan allows. And if you are at the very beginning, our guide to starting an online store in Thailand puts payments in order with products, shipping and tax.

We build stores on WordPress WooCommerce with PromptPay, cards, COD and Thai couriers set up and tested, plus e-Tax invoice setup and staff training. The E-commerce package starts from THB 50,000 as an indicative one-time price; the guide to what shapes a WooCommerce website price explains what moves the final quote.

About this guide

Litesh Dhir, co-founder of Website Development Bangkok
Litesh Dhir, Co-founder, SEO and web development

Who builds your site

Litesh Dhir

Builds and ranks the websites: the systems behind the 17 client sites whose Search Console numbers we publish.

More about us

More on e-commerce payments

Sources

Litesh Dhir, co-founder of Website Development Bangkok
Reviewed by Litesh DhirCo-founder, SEO and web development

More about us

Common questions

Can WooCommerce accept PromptPay without a payment gateway?

Yes. You can show a static PromptPay QR code in WooCommerce's built-in direct bank transfer method and ask customers to upload a transfer slip. There is no gateway fee, but each order waits on hold until someone confirms the money in your bank account. It suits low order volumes. As orders grow, the manual checking and the fake-slip risk usually make a gateway worth its fee.

How do I stop customers sending fake transfer slips?

Never ship on a slip image alone. Confirm every payment against the incoming transaction in your business bank account, matching amount and time. Slip verification services can read the QR on a slip and check it with bank records, which cuts the workload. The most reliable fix is a gateway with dynamic QR codes, because the provider confirms the payment and there is no slip to fake.

Do PromptPay payments update WooCommerce orders automatically?

Only when you use a payment gateway. The gateway creates a QR code for the exact order amount and, once the customer pays, sends a webhook to your site. WooCommerce then marks the order as processing, reduces stock and emails the customer. With a static QR there is no link between the bank and your store, so someone must update each order by hand.

How do PromptPay refunds work?

PromptPay has no chargeback, so a refund is a new transfer from you to the customer. With a static QR you send the refund from your banking app and record the refund in WooCommerce yourself. With a gateway, some providers let you refund from their dashboard or from inside WooCommerce, while others treat PromptPay refunds differently from card refunds. Confirm the process with your provider before launch.

Which WordPress payment gateways support PromptPay?

At the time of writing, Omise offers a WooCommerce plugin with PromptPay, and 2C2P documents WooCommerce integration including Thai QR. Some banks, such as SCB, provide QR payment APIs a developer can connect. Supported methods and plugins change, so check each provider's current documentation and pricing page, and confirm the plugin is maintained for the latest WooCommerce version before you choose.

Tell us about your website

Send a few lines on WhatsApp or through the quote form. You get a written quote with the scope, timeline and price for your project.

Or WhatsApp or call +66 93 004 4098, every day, 10:00 to 19:00 ICT. service@websitedevelopmentbangkok.com

WhatsApp Call