UPI payments
Use the Payment Intents and Payment Methods APIs to accept UPI payments, a common payment method in India.
Checkout
Elements
Customers pay with UPI by authenticating on their mobile and approving you to accept a payment or future charges.
For one-off payments and those where you save the payment method for future use, you get an immediate notification on whether the payment succeeded or failed. For off-session or recurring payments where the customer isn’t present, you get a delayed notification.
Determine compatibility
To support UPI in Checkout, prices for all line items must be expressed in Indian rupees (currency code inr). UPI supports one-time payments and recurring subscriptions through e-mandates (UPI AutoPay).
Accept a payment
Note
This guide builds on the foundational accept a payment Checkout integration.
Enable UPI as a payment method
When creating a new Checkout Session, you need to:
- Enable UPI in your Dashboard. Stripe automatically displays UPI to eligible customers using dynamic payment methods . If you currently specify payment _ method _ types , see the migration guide .
- Make sure all your line _ items use the inr currency.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
UPI-specific considerations
UPI QR codes expire 5 minutes after creation. Customers can’t use an expired UPI QR code to complete a payment. As soon as a UPI QR code expires, Stripe sends a payment_intent.payment_failed event.
Fulfill your orders
After accepting a payment, learn how to fulfill orders.
Test your integration
When testing your Checkout integration, select UPI as the payment method and click Pay. A QR code opens, which you can scan to open a Stripe-hosted UPI test payment page. From this page, you can either authorize or expire the test payment.
