PromptPay
Thailand’s national real-time payment system. Government-backed, like Venmo/Zelle but with better penetration.
Key Statistics (2025)
Adoption: 81M users (out of 72M population – includes business accounts)
Transaction fees: 0.8-1.5% (vs 3%+ for credit cards, 2-2.5% for international payment gateways)
Volume: ฿47.42 trillion processed in 2023, growing 35% YoY
Market share: 67% of mobile banking transactions use PromptPay
Why It Matters for GolfOkay
Local preference: Thai customers expect PromptPay as payment option. Not offering it = friction.
Lower fees: Save ~1.5-2% per transaction vs credit cards. On ฿100K package = ฿1,500-2,000 saved.
Fast checkout: Scan QR code, pay from any Thai bank app. No card entry, no declined payments.
No chargebacks: Direct bank transfer (not credit), can’t be reversed. Lower fraud risk.
Instant settlement: Money arrives in business account within seconds, not 3-5 days like cards.
How It Works (Customer Flow)
- Customer confirms booking: ฿100,000 package
- Platform generates PromptPay QR code with amount + ref ID
- Customer receives QR via LINE message
- Customer opens their bank app (any Thai bank)
- Scans QR code
- Confirms payment with PIN/biometric
- Payment completes in <10 seconds
- Platform receives webhook notification
- System releases e-voucher
No manual verification needed. Webhook confirms payment automatically.
Integration (Technical)
Payment gateway options:
- 2C2P (local Thai gateway, supports PromptPay)
- Omise (popular for startups, good documentation)
- Stripe (supports PromptPay via Thailand Local Payment Methods)
API flow:
POST /create-payment
{
"amount": 100000,
"currency": "THB",
"payment_method": "promptpay",
"metadata": {
"booking_id": "12345"
}
}
Response:
{
"qr_code_url": "https://...",
"payment_id": "pay_xxx",
"expires_at": "2025-10-06T10:30:00Z"
}
Webhook on payment success:
{
"event": "payment.succeeded",
"payment_id": "pay_xxx",
"amount": 100000,
"metadata": { "booking_id": "12345" }
}
QR code expires: 10-15 minutes (configurable). After expiry, customer must request new code.
Fee Structure
PromptPay QR:
- Consumer → Business: 0.8-1.5% (depends on gateway provider)
- No fee to customer (bank absorbs cost)
Credit cards (comparison):
- Thai cards: 2.5-3%
- International cards: 3-3.5%
- Amex: 3.5-4%
Cost savings example:
- Package value: ฿100,000
- PromptPay fee (1.2%): ฿1,200
- Credit card fee (3%): ฿3,000
- Savings: ฿1,800 per package
At 75 packages/month: ฿135,000/month savings (~$4,000)
Limitations
Thai-only: Only works with Thai bank accounts. International tourists need credit card option.
No installments: PromptPay is one-time payment. Can’t do “pay 50% now, 50% later.”
Bank app required: Customer must have Thai mobile banking set up (rare for short-term tourists).
GolfOkay Payment Strategy
Priority 1: PromptPay (for Thai customers, expats with Thai bank accounts)
- 60-70% of transactions expected to use PromptPay
- Lowest fees, instant settlement
- Primary method for domestic market
Priority 2: Credit cards (for international tourists)
- 25-35% of transactions
- Higher fees but necessary for inbound golf tourists
- Support Visa, Mastercard, Amex
Priority 3: Bank transfer (for corporate bookings)
- Manual invoice + transfer for high-value group bookings
- No payment gateway fees, but manual verification needed
Competitive Advantage
Competitors still using credit cards primarily:
- Golfasian: Email invoices, bank transfer or card on arrival
- Club Thailand Card: Manual card entry on website (no PromptPay)
- Golfsavers: Credit card focused, PromptPay recently added
GolfOkay differentiation:
- PromptPay QR in LINE bot (scan & pay in-app)
- No need to leave messaging flow
- Lower prices possible due to lower payment processing costs
Technical Requirements
Gateway integration: 2-3 weeks development
Webhook handling: Must process payment confirmations reliably (retry logic, idempotency)
QR code delivery: Via LINE message API (can embed QR image directly)
Expiry handling: Regenerate QR if customer takes too long (send new message)
See Also
- unit_economics - How payment fees impact per-package margins
- e_vouchers - Payment status shown in e-voucher (paid/pending/refunded)
- manual_desk - Payment confirmation workflow for manual bookings