Why India Payment Methods Matter
UPI Dominance
UPI processes more than 20 billion transactions a month, and many Indian customers don’t have an international card.
Low-Value Payments
UPI accepts payments from ₹5, which suits high-volume, lower-value transactions.
Subscription Support
Unlike most alternative payment methods, UPI and Indian-issued cards, including Visa, Mastercard, and RuPay, support recurring payments through RBI mandates.
Supported Methods
The table lists each method, whether it supports subscriptions, and its minimum amount:
*Subscriptions require RBI-compliant mandates with special processing rules. The 48-hour processing delay applies to recurring charges on all Indian-issued cards, UPI, and Apple Pay.
A payment billed in INR must be at least ₹5, for both one-time payments and subscriptions.
Configuration
API Method Types
Pass these values inallowed_payment_method_types:
Example: India-Focused Checkout
This session offers UPI, cards, and Apple Pay to a customer in India, billed in INR:Requirements for UPI
UPI appears at checkout only when all of these are true:- The billing country is India (
IN). - The billing currency is INR.
- For subscriptions from merchants outside India, Adaptive Currency is enabled. One-time checkouts don’t need it if the product is priced in INR.
Subscriptions with RBI Mandates
Subscriptions paid with UPI or Indian-issued cards run on RBI (Reserve Bank of India) mandates, which add rules that other payment methods don’t have.How RBI Mandates Work
The customer authorizes a mandate when they subscribe. Each renewal charge then waits 48 hours after a pre-debit notification before the bank debits the funds:Mandate Types
The mandate type depends on how the subscription amount compares with the mandate floor:
The amount registered with the customer’s bank is
max(mandate_floor, billing_amount). When the billing amount is below the floor, the floor becomes the customer-facing authorization ceiling.
Plan changes: If an upgrade produces a charge above the existing mandate limit, the charge fails and the customer must authorize again.
Configurable Mandate Floor
Set the mandate floor for INR e-mandates with themandate_min_amount_inr_paise field, in INR paise (₹1 = 100 paise).
You can override the system default of ₹15,000 at three levels:
Dodo Payments uses the first value that’s set: the per-request override, then the merchant setting, then the system default.
To set the floor, pass
mandate_min_amount_inr_paise in the request body when you create a checkout session. The deprecated Create Subscription endpoint accepts the same field.
A higher floor lets you make larger one-off charges later, such as plan upgrades or usage-based overages, without asking customers to authorize again. A lower floor keeps the customer’s authorization closer to the actual billing amount, but leaves less room for future variable charges.
The 48-Hour Processing Delay
A renewal charge on an Indian card or UPI completes about 48 hours after the renewal date. This is the most important difference from international card payments:1
Charge Initiated (Day 0)
On the scheduled renewal date, Dodo Payments initiates the charge with the bank.
2
Pre-Debit Notification
The customer’s bank notifies them about the upcoming debit.
3
48-Hour Window
During this period, the customer can cancel the mandate in their banking app.
4
Debit Completed (~48-51 Hours)
After 48 hours, plus up to 3 more hours for bank processing, the bank debits the funds.
5
Webhook Sent
Dodo Payments sends the
payment.succeeded webhook after the actual debit, not when the charge is initiated.Handling the 48-Hour Window
Grant access from the payment webhook, not from the renewal date:Webhook Events for Indian Subscriptions
Handle these events for subscriptions paid with UPI or Indian-issued cards:Testing
UPI Test IDs
In test mode, enter these UPI IDs to simulate each outcome:Indian Card Test Numbers
Use these Indian-issued test cards:Best Practices
Plan for the 48-hour delay
Plan for the 48-hour delay
Build your application to handle the gap between charge initiation and the actual payment. Consider:
- Grace periods for subscription access
- Clear communication to customers about processing time
- Webhook-driven fulfillment, not date-driven fulfillment
Handle mandate cancellations
Handle mandate cancellations
Customers can cancel mandates in their banking apps at any time. Monitor
subscription.on_hold webhooks, and prompt customers to subscribe again or update their payment method.Set appropriate mandate amounts
Set appropriate mandate amounts
For variable pricing, such as usage-based billing, check whether an on-demand mandate at the mandate floor (₹15,000 by default) covers your largest charge. If charges might exceed it, raise the floor with
mandate_min_amount_inr_paise. Otherwise, customers must authorize a new mandate.Offer UPI prominently
Offer UPI prominently
For Indian customers, make UPI the primary payment option. Many prefer it to cards because it’s familiar and has less friction.
Troubleshooting
UPI not appearing at checkout
UPI not appearing at checkout
Check:
- Is the billing country set to
IN? - Is the billing currency set to
INR? - If you’re a merchant outside India, is Adaptive Currency enabled?
- Is
upi_intentincluded inallowed_payment_method_types?
country: "IN" in the billing address and billing_currency: "INR". If Adaptive Currency is disabled, the API ignores billing_currency, so price the product in INR instead.Subscription charge failed after upgrade
Subscription charge failed after upgrade
Cause: The new charge amount exceeds the existing mandate limit: the mandate floor (₹15,000 by default), or the subscription amount if that’s higher.Solution: The customer must update their payment method to set up a new mandate with the correct limit.
Subscription on hold but customer claims they didn't cancel
Subscription on hold but customer claims they didn't cancel
Cause: The customer may have cancelled the mandate during the 48-hour window, or their bank declined the debit.Solution: The customer needs to authorize the mandate again or update their payment method.
Payment deduction delayed beyond 48 hours
Payment deduction delayed beyond 48 hours
Cause: Bank API delays can extend processing by 2–3 hours.Solution: This is expected. Build your system to handle delays of up to about 51 hours in total.
Mandate cancelled but subscription still active
Mandate cancelled but subscription still active
Cause: An edge case in RBI regulations: cancelling a mandate during the processing window doesn’t cancel the subscription right away.Solution: The next charge fails, and the subscription moves to
on_hold. Monitor webhooks for payment.failed.Related Pages
Payment Methods Overview
See all supported payment methods.
Subscriptions
Complete subscription documentation including RBI mandates.
Webhooks
Webhook handling for payment events.
Testing Process
All test data including UPI IDs and Indian cards.