Two interactive demos showing what happens when an Indian player deposits ₹499 — the mobile Intent flow that hands off to PhonePe / Google Pay / Paytm / BHIM, and the desktop QR flow that scans through any UPI app. Both end at the same state: your server receives a signed webhook.
On a phone, the merchant opens a upi://pay?... deep link. Android/iOS shows the user every UPI app installed on their device. The user picks one; the app launches with merchant VPA, amount, and order ID pre-filled. The user just approves with their UPI PIN — no typing, no copy-paste.
On a laptop, the merchant displays a QR containing the same upi://pay?... string. The user scans it with any UPI app on their phone, approves, and the desktop page polls the merchant backend until it sees payment.succeeded and flips to the success state.
Payment request
Approving sends a 4/6-digit UPI PIN prompt. This demo skips the PIN.
/v1/payments/{id} every 2-3s and listens for the payment.succeeded webhook.payment.succeeded delivered to merchant endpointOpen any UPI app on your phone and scan the QR on the left.
QR payment request
upi:// link actually open the UPI app?On a phone with at least one UPI app installed, yes. The OS presents an app chooser if multiple are installed. On desktop, the link has no handler — which is why desktop checkouts render a QR encoding the same string.
upi://pay URL?The parameters are standard NPCI spec: pa (merchant VPA), pn (payee name), am (amount), cu (currency, always INR), tn (transaction note / order ref). Some flows add tr for a unique transaction reference so the merchant can match the collect request.
Two signals, either of which is authoritative: (1) the merchant polls GET /v1/payments/{id} every 2-3 seconds, and (2) the UPI provider POSTs a signed webhook to the merchant endpoint when the bank confirms the debit. Polling fills the UX gap while the webhook is in flight.
No typing. The intent URL / QR carries all fields. That's the entire UX advantage of UPI Intent over "enter your VPA" flows — fewer fields means higher success rates, especially on mobile.
Nothing debits; the collect request expires (typically 5 minutes). The merchant page shows a timeout state and offers a retry. Always treat the webhook — not the redirect — as truth for payment status.
FalconPay gives you UPI Intent, QR collect, and webhook infrastructure — with 98.5% success rates for high-risk iGaming, fantasy sports, and forex merchants in India.
Talk to Our Team →