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 AutoPay

Learn about e-mandates, regulatory requirements, and payment flows.

UPI supports recurring payments through e-mandates (also known as UPI AutoPay). This lets customers authorize automatic charges for subscriptions and recurring services.

How e-mandates work

When setting up a mandate, customers authorize it in their UPI app during the initial payment flow. After the mandate is created, you can charge customers automatically for future payments within the mandate terms.

The Reserve Bank of India has established several security measures for recurring payments:

  • Additional factor authentication (AFA): Customers must enter their PIN to authorize the mandate during setup.
  • Pre-debit notifications: At least 24 hours before each recurring charge, the customer must receive an SMS or app notification with the exact debit amount and an option to cancel the mandate.
    • If you integrate with Stripe, we send this notification automatically as part of the payment flow, without the need for you to take additional action.
  • High-value transaction authentication: Recurring transactions over 15,000 INR require AFA (PIN entry) each time.

Initial payments

You can charge customers up to 5 minutes after the mandate is set up. Stripe handles this automatically. If you’re using Setup Intents, your customer is still debited and instantly refunded to prevent requiring AFA when you intend to charge them later.

Subsequent payments

When you confirm a PaymentIntent for a recurring payment, Stripe automatically:

  1. Sends the pre-debit notification to the customer
  2. Waits the required 24 hours
  3. Handles any AFA requirements for payments exceeding 15,000 INR
  4. Charges the customer

No additional action is required from you.

Caution

Businesses can only have one pre-debit notification active per customer at a time. Raise a maximum of one charge per customer per day, otherwise previously initiated payments will fail.

Customize an e-mandate

Stripe offers multiple options for you to customize the mandate that you set up for your customer.

You can specify these options using the payment_method_options[upi][mandate_options] hash in the Stripe APIs. The options that you can customize are:

Field nameDescriptionDefault value
descriptionThe description that your customers see in their UPI app when approving the e-mandate.Subscription
amountThe amount that you want to associate with the mandate.In payments, this is set to the payment amount. In Setup Intents and subscriptions with a free trial, it’s set to 15,000 INR, which is the maximum amount that can be charged automatically with UPI AutoPay.
amount_typeSet to maximum to authorize payments under the mandate up to the amount. Set it to fixed to charge that exact amount under the mandate.maximum
end_dateExpiration date for the mandate.30 years from when the subscription starts

If your customer initiates a subscription with Adaptive Pricing, and mandates support the selected currency, Stripe automatically creates an e-mandate in that currency.

To make sure that the mandate is created in the local currency with the correct exchange rate, don’t pass any mandate-specific parameters to the Checkout Session when using Adaptive Pricing. If you pass mandate-specific parameters, then mandates use those values instead of the automatic ones.

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
On this page