Interactive Demo · UPI Checkout

How UPI Intent & QR checkout actually works

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.

Flow 1

UPI Intent (Mobile)

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.

Flow 2

UPI QR (Desktop)

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.

FalconPay Checkout

SSL encrypted · 256-bit

UPI · NPCI
Amount to pay
499
One-time payment · No hidden charges
Order WW-2024-8831
PhonePe
PhonePe
UPI · linked account
Google Pay
Google Pay
UPI · Tez enabled
Paytm
Paytm
UPI · wallet linked
BHIM
BHIM
NPCI · all banks
Bank-level security
RBI regulated
Opening UPI app…

Intent handoff

Secure
Opening PhonePe
Your phone is launching the UPI app with payment details pre-filled.
upi://pay?pa=falconpay@demo&pn=FalconPay&am=499&cu=INR&tn=WW-2024-8831
PhonePe

Payment request

FalconPay
falconpay@demo
Verified merchant
Amount
₹499
Will be debited from your UPI-linked bank
Paying toFalconPay
UPI IDfalconpay@demo
NoteOrder WW-2024-8831

Approving sends a 4/6-digit UPI PIN prompt. This demo skips the PIN.

Processing payment

Do not close this screen

Secure
Waiting for confirmation
Verifying your payment of ₹499 with your bank. This screen updates automatically.
Intent dispatched
Pending
User approved in app
Pending
Bank debited account
Pending
Webhook delivered to merchant
Pending
Merchant polls /v1/payments/{id} every 2-3s and listens for the payment.succeeded webhook.
Payment complete

Transaction verified

Verified
₹499
Payment successful
Paid via
PhonePe
UPI VPA
falconpay@demo
Order ID
WW-2024-8831
UPI Txn ID
UPI20243119882
Date & time
Webhook payment.succeeded delivered to merchant endpoint
falconpay.online/checkout/WW-2024-8831
FalconPay · Secure Checkout
You are paying
499
Order IDWW-2024-8831
MerchantFalconPay
UPI VPAfalconpay@demo
CurrencyINR
Waiting for scan…
Scan with any UPI app
QR expires in 04:59
Works with PhonePe Google Pay Paytm BHIM
QR generated & displayed
Pending
QR scanned by UPI app
Pending
User approved on phone
Pending
Bank confirmed · webhook fired
Pending
Your phone

Open any UPI app on your phone and scan the QR on the left.

PhonePe

QR payment request

FalconPay
falconpay@demo
Amount
₹499
OrderWW-2024-8831
CurrencyINR
Payment sent
₹499
Paid to FalconPay
UPI Txn ID
UPI20243119882

Frequently asked

Does clicking a 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.

What's inside the 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.

How does the merchant know the payment succeeded?

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.

Why does the UPI app pre-fill everything? Is the user typing a VPA?

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.

What happens if the user dismisses the UPI app?

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.

Ready to ship UPI checkout on your site?

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 →