QR Ph
How QR Ph works on PayMongo — the two variants (dynamic API-driven and static in-store), when to use each, and how payments are confirmed.
Overview
QR Ph is the Philippine national QR code standard supervised by the Bangko Sentral ng Pilipinas (BSP). A single QR Ph code lets customers pay from any participating bank or e-wallet app — they scan it using their preferred banking or payment app and the transaction settles via InstaPay.
PayMongo supports two variants of QR Ph:
| Variant | Use case | How the amount is set |
|---|---|---|
| Dynamic QR (online) | Online checkout, payment links | Amount encoded in the QR code |
| Static QR (in-store) | Physical counter, market stall | Customer enters the amount |
Supported banks and e-wallets
| Bank | E-Wallets & Other Issuers |
|---|---|
| Asia United Bank Corporation (AUB) | GCash (G-Xchange, Inc.) |
| Bank of the Philippine Islands (BPI) | Maya Philippines, Inc. |
| BDO Unibank Inc (Available via BDO Pay App only) | ShopeePay Philippines, Inc. |
| Metropolitan Bank and Trust Company (MetroBank) (Available only on Metrobank Bank Online (via web)) | GrabPay (Gpay Network PH, Inc.) |
| Philippine National Bank (PNB) | PPS-PEPP Financial Services Corporation |
| Rizal Commercial Banking Corporation (RCBC) | Starpay Corporation |
| Robinsons Bank Corporation | TayoCash, Inc. |
| Security Bank Corporation | Traxion Pay, Inc. |
| Union Bank of the Philippines (UBP) | USSC Money Services, Inc. |
| China Banking Corporation | Zybi Tech, Inc. |
| Land Bank of the Philippines | CIS Bayad Center, Inc. |
| AllBank (A Thrift Bank), Inc. | DCPAY Philippines, Inc. |
| Queen City Development Bank, Inc. or QueenBank, A Thrift Bank | Home Credit Philippines |
| Sterling Bank of Asia, Inc. (A Savings Bank) | First Digital Finance Corporation (BillEase) |
| Philippine Savings Bank | Salmon Group Ltd. |
| Cebuana Lhuillier Rural Bank, Inc. | |
| Rural Bank of Guinobatan, Inc. | |
| SeaBank Philippines Inc. (A Rural Bank) | |
| GoTyme Bank Corporation |
When to use each variant
Use dynamic QR when you're building an online checkout and you know the exact amount before generating the code. Each code is single-use and expires after 30 minutes by default. See QR Ph API.
Use static QR when you need a reusable code at a physical location. Customers scan the same code repeatedly and enter the amount they owe. See In-Store QR Ph.
How QR Ph attaches to a Payment Intent
Dynamic QR Ph follows the standard Payment Intent workflow:
- Create a Payment Intent with
"qrph"inpayment_method_allowed - Create a Payment Method with
type: "qrph" - Attach the Payment Method — the response contains
next_action.code.image_url, a Base64-encoded QR code image - Display the QR code to the customer
- The customer scans it and completes payment in their banking app
- PayMongo sends
payment.paidwhen the payment is confirmed
Payment confirmation
Confirm QR Ph payments via webhook events:
| Event | Meaning |
|---|---|
payment.paid | Customer successfully paid via QR Ph |
payment.failed | Payment attempt failed |
qrph.expired | QR code was not scanned within 30 minutes |
You can also poll the Payment Intent status, but webhooks are the recommended approach for production.
Updated 7 days ago