India has unique payment infrastructure dominated by UPI (60%+ of digital transactions) and Indian-issued cards (Visa, Mastercard, Rupay, etc.). Dodo Payments supports all of these with full RBI compliance for subscription mandates.Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
Why India Payment Methods Matter
UPI Dominance
UPI processes 10B+ transactions/month. Many Indian customers don’t have international cards.
Low Transaction Costs
UPI has near-zero transaction fees. Excellent for high-volume, lower-value transactions.
Subscription Support
Unlike most alternative payment methods, UPI and all Indian-issued cards (Visa, Mastercard, Rupay, etc.) support recurring payments via RBI mandates.
Supported Methods
| Method | Type | Subscriptions | Min Amount |
|---|---|---|---|
| UPI Collect | QR code / VPA | Yes* | ₹1 |
| Rupay Credit | Card | Yes* | ₹1 |
| Rupay Debit | Card | Yes* | ₹1 |
Configuration
API Method Types
| Type | Description |
|---|---|
upi_collect | UPI via QR code or VPA entry |
credit | Credit cards including Rupay |
debit | Debit cards including Rupay |
Example: India-Focused Checkout
Requirements for UPI
For UPI to appear at checkout:- Billing country must be India (
IN) - Currency must be INR
- For non-Indian merchants: Adaptive Currency must be enabled
Subscriptions with RBI Mandates
Indian payment method subscriptions operate under RBI (Reserve Bank of India) regulations with unique requirements.How RBI Mandates Work
Mandate Types
| Subscription Amount | Mandate Type | Limit |
|---|---|---|
| Below the mandate floor | On-demand mandate | Mandate floor (default ₹15,000) |
| At or above the mandate floor | Fixed-amount mandate | Exact subscription amount |
max(mandate_floor, billing_amount). So the floor is effectively the customer-facing authorization ceiling whenever billing is lower than the floor.
Important for plan changes: If an upgrade results in a charge exceeding the existing mandate limit, the charge will fail and the customer must re-authorize.
Configurable Mandate Floor
The mandate floor for INR e-mandates is configurable via themandate_min_amount_inr_paise field (in INR paise — 1 INR = 100 paise). You can override the system default of ₹15,000 at three levels:
| Level | Where to set | Scope |
|---|---|---|
| Per request | mandate_min_amount_inr_paise on a checkout session, payment, or subscription | One transaction |
| Merchant | Business settings | All your INR subscriptions |
| System | — | ₹15,000 default |
| Field | Type | Validation | Applies to |
|---|---|---|---|
mandate_min_amount_inr_paise | integer (INR paise) | >= 1 | Indian-card INR subscriptions on non-Airwallex connectors |
Setting a higher floor lets you support larger one-off charges later (for example, plan upgrades or usage-based overages) without forcing customers to re-authorize. Setting a lower floor brings the customer’s authorization closer to the actual billing amount but limits headroom for future variable charges.
The 48-Hour Processing Delay
This is the most important difference from international card payments:Debit Completed (~48-51 hours)
After 48 hours (plus up to 3 additional hours for bank processing), funds are debited.
Handling the 48-Hour Window
Webhook Events for Indian Subscriptions
| Event | When | Action |
|---|---|---|
subscription.active | Mandate authorized | Record subscription start |
payment.succeeded | ~48h after charge date | Grant/continue access |
payment.failed | Debit failed | Notify customer, pause access |
subscription.on_hold | Payment failed | Prompt for payment method update |
subscription.active | Reactivated after payment | Restore access |
Testing
UPI Test IDs
| Status | UPI ID |
|---|---|
| Success | success@upi |
| Failure | failure@upi |
Indian Card Test Numbers
| Brand | Scenario | Card Number | Expiry | CVV |
|---|---|---|---|---|
| Visa | Success | 4576238912771450 | 06/32 | 123 |
| Visa | Declined | 4706131211212123 | 06/32 | 123 |
| Mastercard | Success | 5409162669381034 | 06/32 | 123 |
| Mastercard | Declined | 5105105105105100 | 06/32 | 123 |
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 actual payment. Consider:
- Grace periods for subscription access
- Clear communication to customers about processing time
- Webhook-driven fulfillment, not date-driven
Handle mandate cancellations
Handle mandate cancellations
Customers can cancel mandates via their bank apps at any time. Monitor
subscription.on_hold webhooks and prompt customers to re-subscribe or update payment methods.Set appropriate mandate amounts
Set appropriate mandate amounts
For variable pricing (e.g., usage-based), consider whether a Rs 15,000 on-demand mandate is sufficient. If charges might exceed this, customers will need to re-authorize.
Offer UPI prominently
Offer UPI prominently
For Indian customers, UPI should be the primary payment option. Many users prefer it over cards due to familiarity and lower friction.
Troubleshooting
UPI not appearing at checkout
UPI not appearing at checkout
Check:
- Billing country set to
IN? - Currency set to
INR? - If non-Indian merchant: Adaptive Currency enabled?
upi_collectincluded inallowed_payment_method_types?
country: "IN" and billing_currency: "INR".Subscription charge failed after upgrade
Subscription charge failed after upgrade
Cause: New charge amount exceeds existing mandate limit (Rs 15,000 threshold).Solution: Customer must update payment method to establish 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: Customer may have cancelled the mandate during the 48-hour window, or their bank declined the debit.Solution: Customer needs to re-authorize the mandate 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 additional hours.Solution: This is expected. Build your system to handle variable delays up to ~51 hours total.
Mandate cancelled but subscription still active
Mandate cancelled but subscription still active
Cause: Edge case in RBI regulations — mandate cancellation during processing window doesn’t immediately cancel subscription.Solution: The next charge will fail and subscription will move 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.