Skip to content
Guide · Engineering

Yash Suthar, founder of StackWiseUpdated 6 min read

Short answer

Choose Razorpay if most of your customers pay in rupees: it supports UPI AutoPay, card e-mandates and bank mandates, which matter for recurring payments in India. Choose Stripe if most customers are abroad: its subscription billing, global card coverage and developer tooling are mature and well documented. Some SaaS products use both, routing each customer by billing country.

Key takeaways

  • Recurring card payments in India need an RBI-compliant e-mandate, with pre-debit notifications and extra authentication above a threshold.
  • UPI AutoPay lets Indian customers approve a subscription mandate once in their UPI app.
  • Stripe is usually the stronger fit for international customers and complex billing; Razorpay for Indian payment methods.
  • Whichever you pick, drive subscription state from signed webhooks, not from the checkout redirect.

Stripe vs Razorpay at a glance

Stripe vs Razorpay for a SaaS product selling from India
AreaStripeRazorpay
Strongest marketInternational customers, many currenciesIndian customers paying in rupees
Indian payment methodsIndian cards; check current support for other local methodsCards, UPI, net banking, wallets and more
Recurring payments in IndiaE-mandates for Indian cardsCard e-mandates, UPI AutoPay and bank mandates (eNACH)
Subscription billingMature: trials, proration, usage-based pricing, customer portal, retriesPlans, subscriptions, add-ons and payment links; simpler billing logic
Tax and invoicingInvoicing, plus a tax product covering many countriesInvoicing with GST details for Indian businesses
Developer experienceExtensive docs, typed SDKs, a CLI for local webhook testingGood docs, SDKs for major server languages, test mode
Onboarding for Indian businessesHas at times been limited or invite-only; check current statusBuilt for Indian businesses; KYC needed to go live
FeesCheck the current pricing pageCheck the current pricing page

How recurring payments work in India

The Reserve Bank of India (RBI) sets specific rules for recurring payments to protect customers from unauthorized charges. They apply to any subscription product that collects money from Indian customers, whichever gateway you use.

  • Card e-mandates. The customer registers a mandate on the first payment with additional authentication, such as an OTP. The card issuer sends a pre-debit notification before each charge, and the customer can view or cancel the mandate. Charges above an RBI-set threshold need fresh authentication each time.
  • Issuer support varies. Not every Indian card supports e-mandates, so some customers will fail at sign-up. Offer another method.
  • UPI AutoPay. The customer approves a recurring mandate in their UPI app with their UPI PIN. Later debits run automatically after a pre-debit notification, and the customer can pause or revoke the mandate in the app. Debits above a set limit need the PIN again.
  • Bank mandates (eNACH). Authorized through net banking or a debit card, suited to larger or B2B amounts. Registration takes longer than cards or UPI.
  • No stored card numbers. Under RBI rules, merchants cannot store full card details. Saved cards work through tokens managed by the gateway and card networks.

Expect some renewals to fail that would succeed elsewhere. Build retries, reminder emails and an easy way to update the payment method. Thresholds and rules have changed over time, so confirm the current details with your gateway before launch.

International customers and currencies

If you sell to customers in the US, UK, Europe, Australia or the Middle East, Stripe is usually the easier fit. It handles many currencies, international cards and wallets, 3D Secure where required, and the self-serve billing international buyers expect, such as plan changes and downloadable invoices.

Razorpay can accept international cards once that is enabled on your account, but its strengths are Indian payment methods. Either way, an Indian business receiving money from abroad has foreign exchange documentation to handle; ask your gateway and your accountant what they need.

Some products use both: Razorpay for customers paying in rupees, Stripe for everyone else, selected by billing country at checkout. That doubles the integration and testing work, so do it only when both customer groups matter to revenue.

Tax and invoicing

Both platforms generate invoices and receipts. Stripe offers invoicing and a tax product that calculates sales tax, VAT and GST in many countries; check that it covers your obligations. Razorpay's invoicing supports GST details for Indian businesses. Neither replaces an accountant: confirm that invoice formats, tax registration numbers and place-of-supply rules match what you owe, and keep your own record of every invoice in your database.

Developer experience and webhooks

Stripe's documentation, typed SDKs and CLI are mature. The CLI forwards test events to your local machine, which speeds up subscription work. Razorpay has solid documentation, SDKs for the major server languages and a test mode with test cards and UPI flows.

With either provider, webhooks are the source of truth for subscription state. A browser redirect after checkout can be closed or faked; a webhook is signed by the provider.

  • Verify signatures. Stripe signs events in the Stripe-Signature header, Razorpay in X-Razorpay-Signature. Verify against the raw request body with your webhook secret before parsing.
  • Make handlers idempotent. Both providers retry failed deliveries, so store processed event IDs and skip repeats.
  • Expect any order. Events can arrive out of order; fetch the current subscription from the API when in doubt.
  • Respond quickly. Return a 2xx status fast and do slow work in a background queue.
  • Map events to access. Stripe's invoice.paid and customer.subscription.updated, or Razorpay's subscription.charged and subscription.halted, should update the plan and limits in your database.

How StackWise integrates either

Every StackWise Product Build includes Stripe or Razorpay payments and subscriptions; starting prices are on the pricing page. The integration has the same shape with either provider:

  1. 1Hosted checkout or the provider's payment fields, so card data never touches your servers and PCI DSS scope stays small.
  2. 2Customer and subscription IDs stored on the account or tenant record, never card details.
  3. 3Signed, idempotent webhook handlers that update plans, seats and limits.
  4. 4A billing page for upgrades, downgrades, cancellations and payment-method updates.
  5. 5Test-mode runs of renewals, failed payments and cancellations before launch.

If your product has organizations or teams, billing should attach to the tenant; the multi-tenant SaaS architecture guide explains why. See SaaS development for the rest of the build.

Want a number for your project?

Answer a few questions and get a starting price straight away, then a written quote.

Questions people also ask

Something else? Ask in the chat and get an answer straight away.

  • Yes, for Indian cards Stripe supports recurring payments through RBI-compliant e-mandates, with customer authentication at setup and pre-debit notifications. If you need UPI AutoPay or bank mandates, check Stripe's current support, since India-focused gateways such as Razorpay offer them. Stripe's onboarding for Indian businesses has also changed over time, so confirm availability first.

Free consultation

Have a project in mind?

Tell us what you're building. We'll suggest the simplest way to ship it, and tell you honestly if we're not the right fit.

Email us
  1. 1

    Tell us about the project

    A few quick questions in the chat, or an email.

  2. 2

    Reply within 24–48 hours

    With questions, a rough scope and a starting price.

  3. 3

    Free call, then a written quote

    No commitment until you're happy with it.