Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
OverviewAccept a paymentUpgrade your integration
Online payments
OverviewFind your use case
Use Payment Links
Use a prebuilt checkout page
Build a custom integration with Elements
Build an in-app integration
Use Managed Payments
Recurring payments
In-person payments
Terminal
Payment methods
Add payment methods
    Overview
    Payment method integration options
    Manage default payment methods in the Dashboard
    Payment method types
    Cards
    Pay with Stripe balance
    Stablecoin payments
    Bank debits
    Bank redirects
    Bank transfers
    Credit transfers (Sources)
    Buy now, pay later
    Real-time payments
      Bizum
      Pay by Bank
      PayNow
      PayTo
      Pix
      PromptPay
      Swish
      UPI
        Accept a payment
        Set up future payments
        UPI AutoPay
    Vouchers
    Wallets
    Enable local payment methods by country
    Custom payment methods
Manage payment methods
Faster checkout with Link
Payment operations
Analytics
Balances and settlement time
Compliance and security
Currencies
Declines
Disputes
Radar fraud protection
Payouts
ReceiptsRefunds and cancellations
Advanced integrations
Custom payment flows
Flexible acquiring
Off-Session Payments
Multiprocessor orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Machine payments
Financial Connections
Climate
Verify identities
United States
English (United States)
  1. Home/
  2. Payments/
  3. Add payment methods/
  4. Real-time payments/
  5. UPI

UPI payments

Use the Payment Intents and Payment Methods APIs to accept UPI payments, a common payment method in India.

Caution

Stripe can automatically present the relevant payment methods to your customers by evaluating currency, payment method restrictions, and other parameters.

  • Follow the Accept a payment guide to build a Checkout integration that uses dynamic payment methods.
  • If you don’t want to use dynamic payment methods, follow the steps below to manually configure the payment methods in your Checkout integration.

Customers pay with UPI by authenticating on their mobile, and accepting to send you a payment or to charge them for future use.

For one-off payments, you get an immediate notification on whether the payment succeeded or failed. For off-session or recurring payments, or those where you attempt to save the buyer payment method for future use, you get a delayed notification.

Determine compatibility

Supported business locations: US

Supported currencies: inr

Presentment currencies: inr

Payment mode: Yes

Setup mode: Yes

Subscription mode: Yes

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.

This guides you through enabling UPI and shows the differences between accepting payments using dynamic payment methods and manually configuring payment methods.

Enable UPI as a payment method

When creating a new Checkout Session, you need to:

  1. Add upi to the list of payment_method_types.
  2. Make sure all your line_items use the inr currency.
Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][currency]"=inr \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=20000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ -d "payment_method_types[0]"=card \ -d "payment_method_types[1]"=upi \ --data-urlencode success_url="https://example.com/success"

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.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Chat with Stripe developers on Discord.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc