You’re losing sales if your Philippine e-commerce site doesn’t accept QR PH payments. Nearly 70% of Filipino consumers now prefer scanning QR codes over typing card details, yet many online stores still haven’t integrated this payment method.
QR PH is transforming how Filipinos pay online, and understanding how to implement it correctly is a key part of our wider guide on Payment Gateway Integration API for Philippine E-Commerce Sites 2025. This article dives deep into the technical and practical aspects of implementing QR code for payment systems specifically designed for the Philippine market.
What Is QR PH and How Does It Work?
QR PH is a standardized QR code payment system developed by the Bangko Sentral ng Pilipinas (BSP) that allows customers to pay merchants by scanning a single QR code compatible with multiple e-wallets and banking apps. Instead of integrating separately with GCash, PayMaya, and other payment providers, merchants can display one QR PH code that works across all participating platforms.
The system works through a unified specification called EMVCo QR Code, which ensures interoperability between different payment service providers. When a customer scans your QR PH code using their preferred e-wallet app, the transaction details automatically populate, and they simply confirm the payment.
Here’s what happens behind the scenes:
- Your payment gateway generates a unique QR PH code containing encrypted merchant and transaction data
- The customer opens any QR PH-compatible app (GCash, Maya, bank apps)
- They scan the code, verify the amount, and authorize payment
- Funds transfer instantly, and both parties receive confirmation
QR Pay Meaning: Understanding the Technology
The term “QR pay” refers to any payment transaction initiated by scanning a Quick Response (QR) code. In the Philippine context, QR pay specifically means using the standardized QR PH format that BSP mandates for interoperability.
Unlike proprietary QR codes (like GCash-only or PayMaya-only codes), QR PH follows a universal standard. This matters because it reduces friction at checkout. Your customers don’t need to ask “Do you accept GCash?” or “Can I use my BPI app?” If you display a QR PH code, the answer is automatically yes to all participating providers.
The technology uses dynamic QR codes that contain:
- Merchant identification number
- Transaction amount
- Currency code (PHP)
- Expiration timestamp
- Security checksums
QR PH Accepted: Who Can Use This Payment Method?
QR PH Partners and Participating Institutions
As of 2025, QR PH is accepted by virtually every major financial institution and e-wallet in the Philippines. The QR PH partners network includes:
E-Wallet Providers:
- GCash (the largest with 80M+ users)
- Maya (formerly PayMaya)
- ShopeePay
- GrabPay
- Coins.ph
Banking Apps:
- BDO
- BPI
- UnionBank
- Metrobank
- Security Bank
- RCBC
- And 40+ other banks
This universal acceptance is why QR PH payment method adoption has exploded. Your customers can use whatever payment app they already have installed, rather than being forced to download a specific app just to shop with you.
Where QR PH Payment Works Best
QR PH excels in these e-commerce scenarios:
- Mobile-first checkouts where customers shop on smartphones
- High-volume, low-value transactions (under ₱5,000)
- Businesses targeting unbanked or underbanked Filipinos who rely on e-wallets
- Subscription services that need recurring payment authorization
If you’re deciding between different business models, understanding payment method compatibility is crucial. Check out our guide on e-commerce platform vs marketplace to see how QR PH fits into different selling strategies.
QR PH API Integration: Technical Implementation
Choosing Between PayMongo QR PH and Xendit QR PH
The two dominant payment gateway providers offering QR PH API access in the Philippines are PayMongo and Xendit. Both provide robust APIs, but their implementation approaches differ.
PayMongo QR PH API focuses on simplicity:
- RESTful API with straightforward endpoints
- Webhook support for real-time payment notifications
- Built-in test mode with sandbox QR codes
- Comprehensive PHP, Node.js, and Python SDKs
Xendit API offers more granular control:
- Separate endpoints for QR code generation and status checking
- Advanced reconciliation features
- Multi-currency support (useful if you expand beyond PH)
- More detailed transaction metadata
We’ve written an in-depth comparison in our PayMongo vs Xendit article that examines the technical and financial trade-offs between these providers.
QR PH Code Generation: Step-by-Step
Here’s how to generate a QR PH code using the PayMongo API:
Step 1: Create a Payment Intent
POST https://api.paymongo.com/v1/payment_intents
Include the amount, currency (PHP), and payment method types (qrph).
Step 2: Retrieve the QR Code
The API returns a next_action object containing:
- A base64-encoded QR code image
- A redirect URL for mobile users
- An expiration timestamp (typically 30 minutes)
Step 3: Display to Customer
Show the QR code image on your checkout page with clear instructions: “Scan this code using any QR PH-compatible app.”
Step 4: Listen for Webhooks
Configure your webhook endpoint to receive payment confirmation events. The webhook payload includes transaction status, reference number, and customer details.
Xendit API Integration Approach
Xendit’s QR PH implementation follows a similar pattern but uses different endpoint structures:
Create QR Code:
POST https://api.xendit.co/qr_codes
Key differences:
- Xendit returns a qr_string that you must convert to an image yourself (or use their hosted page)
- Status checking requires polling their GET endpoint if you don’t use webhooks
- More detailed error codes for troubleshooting failed transactions
For WordPress or Shopify users, we’ve created a practical guide on PayMongo payment gateway setup that walks through the entire process without writing code.
Multiple Payment Gateway Integration: Why You Need More Than QR PH
While QR PH is essential for the Philippine market, relying on a single payment method limits your conversion potential. Smart e-commerce sites implement multiple payment gateway integration strategies.
The Optimal Payment Mix for Philippine E-Commerce
Based on 2025 transaction data, the highest-converting Philippine e-commerce sites offer:
- QR PH payment (captures 35-40% of transactions)
- Credit/debit cards (25-30% of transactions)
- E-wallet direct payments like QR PH GCash-specific options (15-20%)
- Bank transfers (10-15%)
- Cash on delivery (5-10%, declining)
By integrating a payment gateway integration API that supports all these methods, you eliminate checkout abandonment due to payment preference mismatches.
PayMongo API vs Xendit API: Multi-Method Support
Both providers support multiple payment methods beyond QR PH:
PayMongo API supports:
- Cards (Visa, Mastercard, JCB)
- GCash direct
- GrabPay
- PayMaya wallet
- Online banking (BPI, UnionBank, etc.)
Xendit API supports:
- All major cards
- E-wallets (GCash, PayMaya, ShopeePay)
- Virtual accounts
- Retail outlet payments (7-Eleven, Cebuana, etc.)
- Direct debit
The key is choosing a provider whose API architecture makes it easy to add payment methods without rewriting your checkout logic.
QR PH GCash: The Dominant Use Case
When we talk about QR PH payment in practice, we’re often really talking about QR PH GCash transactions. GCash commands approximately 65% of all QR PH scans in the Philippines due to its massive user base.
Why GCash Dominates QR PH Transactions
GCash’s dominance stems from:
- User base size: 80M+ registered users (nearly 75% of Filipino adults)
- Feature completeness: Bills payment, remittances, investments all in one app
- Merchant incentives: Cashback and rewards programs drive usage
- Government integration: Used for social welfare disbursements
For your e-commerce site, this means optimizing your QR PH implementation specifically for GCash users:
- Display the GCash logo prominently near your QR code
- Include instructions like “Open GCash > Scan QR > Pay”
- Ensure your QR codes work flawlessly in the GCash app (test regularly)
- Consider offering GCash-specific promotions
Direct GCash Integration vs QR PH
You might wonder: should I integrate directly with GCash instead of using QR PH?
Use direct GCash integration when:
- 90%+ of your customers specifically request GCash
- You want access to GCash-specific features (installment payments, etc.)
- You’re building a mobile app with deep GCash SDK integration
Use QR PH when:
- You want to accept all e-wallets with one integration
- You’re building for web (not native mobile)
- You want to future-proof against e-wallet market shifts
Most e-commerce sites benefit from offering both: QR PH as the universal option, plus direct GCash for customers who prefer it.
Implementation Best Practices for QR PH Payment Method
User Experience Optimization
Your QR code implementation can make or break conversion rates. Follow these UX principles:
Mobile-First Design:
- On mobile devices, offer a “Pay with App” button that deep-links to installed e-wallet apps
- Only show the scannable QR code on desktop browsers
- Auto-detect device type and adjust the interface accordingly
Clear Instructions:
- Use visual step-by-step guides (icons + text)
- Show logos of all accepted QR PH partners
- Display the exact amount to be paid above the QR code
- Include a countdown timer showing QR code expiration
Error Handling:
- If payment fails, generate a new QR code automatically
- Provide a manual refresh button
- Show clear error messages (“QR code expired – generating new code…”)
Security Considerations
QR PH codes contain sensitive transaction data. Protect your implementation:
- Never reuse QR codes – generate a unique code for each transaction
- Implement expiration – 15-30 minutes maximum
- Validate webhook signatures – ensure payment confirmations actually come from your gateway
- Use HTTPS exclusively – never serve QR codes over unencrypted connections
- Log all transactions – maintain audit trails for dispute resolution
Testing Your QR PH Integration
Before going live, thoroughly test using sandbox environments:
- Test with multiple e-wallets – Don’t just test with GCash; try Maya, bank apps, etc.
- Test edge cases – Expired codes, duplicate payments, network timeouts
- Test webhook reliability – Simulate delayed webhooks, missed webhooks
- Load test – Can your system handle 100 simultaneous QR code generations?
Both PayMongo and Xendit provide test credentials and sandbox environments specifically for QR PH testing.
Real-World QR PH Integration Challenges
Challenge 1: QR Code Not Scanning
Common causes:
- Image resolution too low (minimum 300×300 pixels recommended)
- Incorrect QR code format (must be EMVCo-compliant)
- Display contrast issues (ensure black-on-white, not colored)
Solution: Use the base64 image provided directly by your payment gateway API without modification.
Challenge 2: Payment Confirmation Delays
The problem: Customer pays, but your system doesn’t receive confirmation for 2-3 minutes.
Solution: Implement a polling mechanism as a backup to webhooks. Check payment status every 5 seconds for the first minute after QR code generation.
Challenge 3: Customer Confusion
The problem: Customers don’t understand how to use QR PH, especially older demographics.
Solution: Provide a fallback payment method (cards or bank transfer) and include a short video tutorial on your checkout page.
If you’re building for industries with diverse customer demographics, like food service, our restaurant web development guide covers payment method selection strategies for different audience types.
The Future of QR PH Payment in Philippine E-Commerce
QR PH adoption will continue accelerating through 2025 and beyond. BSP is pushing for universal QR PH acceptance at all merchant touchpoints, both online and offline.
Emerging trends to watch:
- Biometric authentication – Face/fingerprint verification before QR payment
- Installment payments via QR – Buy now, pay later through QR codes
- Cross-border QR payments – QR PH codes that work in other ASEAN countries
- Smart contract integration – Blockchain-based QR payment verification
For e-commerce developers, the message is clear: QR PH integration isn’t optional anymore. It’s a baseline requirement for competing in the Philippine market.
FAQ SECTION
What is QR PH and how is it different from regular QR codes?
QR PH is a standardized payment QR code system mandated by Bangko Sentral ng Pilipinas that works across all participating e-wallets and banking apps in the Philippines. Unlike proprietary QR codes that only work with one provider (like GCash-only codes), QR PH codes follow the EMVCo universal standard, allowing customers to pay using any compatible app they prefer.
Can I use PayMongo or Xendit for QR PH integration?
Yes, both PayMongo and Xendit offer QR PH API integration for Philippine e-commerce sites. PayMongo provides a simpler REST API with comprehensive SDKs, while Xendit offers more granular control and advanced reconciliation features. Both are BSP-compliant and support all major QR PH partners including GCash, Maya, and bank apps.
How long does a QR PH code remain valid?
QR PH codes typically expire after 15-30 minutes depending on your payment gateway configuration. This expiration is a security feature to prevent unauthorized reuse of QR codes. If a code expires before payment, your system should automatically generate a new code for the customer.
Do I need separate integrations for GCash and other e-wallets?
No, that’s the primary benefit of QR PH. A single QR PH integration allows customers to pay using GCash, Maya, BPI, BDO, UnionBank, and 40+ other participating institutions. You don’t need separate API integrations for each e-wallet or bank, which dramatically simplifies your payment gateway integration.
What happens if a customer scans the QR code but doesn’t complete payment?
If a customer scans your QR PH code but abandons the transaction in their e-wallet app, no payment is processed and no funds are transferred. The QR code will eventually expire (typically after 15-30 minutes), and you can generate a new code if the customer returns. Your webhook endpoint will only receive confirmation for completed, successful payments.