How to Accept Recurring Payments on UPI: A Developer's Guide to UPI Autopay and UroPay API

Subscription billing is broken in India if you're building on top of mainstream payment aggregators. You get a hosted checkout that bleeds your brand, ticket-queue support that ignores your edge cases, and a KYC process that assumes you're a company with a GST certificate and three years of business history. Then you discover you want to accept recurring payments via UPI Autopay — the RBI-mandated e-mandate system that lets customers pre-authorize charges — and suddenly you're waiting in review queues or getting rejected outright because your category doesn't fit the aggregator's risk appetite.

The UroPay API exists partly because I spent enough time in those queues myself. Let me walk you through how recurring UPI payments work, why most payment gateways make them harder than they need to be, and how the UroPay API lets you own your recurring checkout and go live in a fraction of the time.

What are UPI Autopay mandates and why do they matter for subscription businesses?

UPI Autopay is the NPCI-mandated e-mandate system that lets a customer authorize a one-time debit instruction through their UPI app — Google Pay, PhonePe, Paytm, BHIM, Amazon Pay — and then collect recurring charges automatically without re-prompting for authentication on every billing cycle. The customer approves the mandate once with their UPI PIN; every subsequent charge within the mandate's limits processes silently.

Over 26 million new UPI Autopay mandates are created every month in India, according to NPCI statistics. For subscription SaaS, memberships, gym apps, newsletter platforms, and any recurring-revenue business, UPI Autopay is the default way Indian customers expect to pay — especially younger, tier-2 and tier-3 audiences who rarely carry credit cards.

But here's the catch: most traditional payment aggregators (Razorpay, Cashfree, PayU) make you jump through full KYC before you can even apply for recurring capabilities. Full identity verification, business registration, bank statements, sometimes a website audit. For early-stage SaaS founders, restricted-category sellers, or anyone in a niche the aggregator hasn't blessed yet, this becomes a vicious cycle — you can't launch until you're approved, and you can't get approved until you've launched.

How UPI Autopay works: the mandate flow and transaction limits

A customer sets up a UPI Autopay mandate in their UPI app by entering the maximum amount you can debit, the frequency (monthly, quarterly, one-time), and an expiry date. Once approved, the mandate sits in the NPCI network. On each billing cycle, you initiate a collect request up to the mandate's limit, and the customer's bank processes it automatically — no OTP, no re-authentication.

The standard transaction limit is ₹15,000 per debit. For insurance, mutual funds, and credit card bills, the RBI allows up to ₹1 Lakh without additional authentication. You're responsible for customer communication (what, how much, when), consent trails, and disputes — if a customer claims they didn't authorize a charge, you need to prove they did.

Settlement is where the trade-off matters. Most aggregators charge roughly 2% + GST per transaction and settle T+2 or T+1 if you're KYC-verified. The UroPay API charges 5% + ₹5 with full KYC (T+3 settlement) or 10% + ₹5 without KYC (T+5 settlement). Yes, that's higher in raw-percentage terms. What justifies it: KYC leniency, category onboarding speed, and direct founder-level support (gaurav@uropay.me, not a ticket queue).

Why most SaaS founders struggle with mainstream payment gateway recurring payments

The pain usually shows up in three places.

Onboarding speed. A traditional aggregator's KYC is painful. You submit PAN, GST, bank statements, business registration, proof of address, and sometimes a website audit. Then you wait 7–14 days (or longer) for approval. If anything is flagged — a misspelled name, a domain mismatch, a cut-off bank statement — you resubmit. For a bootstrapped SaaS founder in a niche category (adult wellness, creator tools, niche software), this can drag on for weeks.

Category gatekeeping. Mainstream aggregators maintain risk policies stricter than the RBI's framework. An app for adult wellness, a freelance platform, niche SaaS for unregulated industries — these may be legal, but the aggregator's team has decided to skip them. You get rejected, appeal, get rejected again. Months pass.

Support access. On a standard plan with Razorpay or Cashfree, you're in a shared queue. Recurring payment issues, UPI Autopay failures, webhook troubleshooting — you log a ticket and wait. For urgent or edge-case problems, this is useless.

The UroPay API flips these. You still audit and sign a contract (regulatory requirement, not a UroPay quirk), but the non-KYC tier lets you go live without identity documents. The audit itself is fast — 2–3 working days — because it checks what you sell and your product pages, not chasing paperwork. Support is direct: gaurav@uropay.me, one founder, every merchant, no tiers. Not infinitely scalable, but predictable and fast.

How UPI Autopay and the UroPay API work together for recurring billing

Here's the integration flow for a SaaS subscription with UroPay API + UPI Autopay:

1. Customer initiates the mandate in your app. Your backend calls the UroPay API/v1/orders endpoint to create a mandate order. You include mandateFrequency: 'MONTHLY' and mandateMaxAmount: 2999. UroPay returns an openUrl.

2. Customer approves in their UPI app. You redirect to the openUrl. They see the mandate terms (amount, frequency, duration) and approve with their UPI PIN in Google Pay, PhonePe, or any UPI app. The NPCI network stores the mandate.

3. You receive a signed webhook. Once approved, a webhook fires with event type MANDATE_ACTIVATED and the mandate ID. You store the mandate ID in your database, linked to the subscription.

4. On each billing cycle, you charge automatically. Your system calls /v1/orders with mandateId: 'mandate-abc123'. UroPay sends a collect request to NPCI. The customer's bank processes it silently (no OTP, no approval).

5. You confirm and unlock the feature. A webhook fires with PAID and the transaction reference. You check the webhook signature (HMAC-SHA256), confirm the amount, and unlock the subscription server-side. If the webhook is late, GET /v1/orders/{orderId} is your source of truth.

6. Settlement lands in your bank. Net amount (gross collection minus commission and ₹5 fee) reaches your account on T+3 if KYC-verified, or T+5 if not.

Comparison: UroPay API vs traditional payment gateways for recurring UPI

AspectUroPay APIRazorpayCashfreePayU
Commission5% + ₹5 (KYC) or 10% + ₹5 (non-KYC)~2% + GST~1.5% + GST~2% + GST
KYC RequiredOptional — non-KYC tier availableYes, full KYC upfrontYes, full KYC upfrontYes, full KYC upfront
Onboarding Speed3–5 working days7–14 days7–14 days5–10 days
Settlement TimeT+3 (KYC) / T+5 (non-KYC)T+1 or T+2T+1 or T+2T+1 or T+2
Who Owns CheckoutYou (your domain, your branding)Hosted by RazorpayHosted by CashfreeHosted by PayU
API Complexity2 endpoints + webhookMore endpoints, more configMore endpoints, more configMore endpoints, more config
Restricted CategoriesAudit-based, fewer rejectionsCategory blocklistCategory blocklistCategory blocklist
SupportDirect founder (gaurav@uropay.me)Ticket queue + tiersTicket queue + tiersTicket queue + tiers
Chargeback LiabilityMerchant (per contract)MerchantMerchantMerchant

Let me be clear: UroPay API's commission is higher. If you only care about fees and settlement speed, a mainstream aggregator wins. But if approval is slow for your category, you're bootstrapped and can't wait 3 weeks for KYC, or you want a human who picks up when things break, UroPay's premium buys speed and support.

Cost worked example: ₹2,500 monthly subscription

A SaaS founder selling ₹2,500/month collects 100 charges per month.

With KYC-verified UroPay API (5% + ₹5):

  • Gross: ₹2,50,000
  • Commission per transaction: (2,500 × 0.05) + 5 = ₹130
  • Total commission: ₹13,000
  • Net: ₹2,37,000
  • Effective rate: 5.2%

With a typical mainstream aggregator (~2.4% all-in):

  • Gross: ₹2,50,000
  • Commission: ₹6,000
  • Net: ₹2,44,000
  • Effective rate: 2.4%

Difference: Mainstream keeps ₹7,000/month more in your pocket. Over a year, that's ₹84,000.

Now add the trade-offs:

  • UroPay got you live in 4–5 working days. Razorpay: 10+ days, maybe flagged your category.
  • Your first customer was niche (e.g., adult wellness SaaS). Razorpay would reject. UroPay's audit passes you through.
  • A webhook failed week 2. Razorpay support: "24–48 hours." Gaurav: WhatsApp in 3 hours, fix identified, you're live.
  • Year 2, you have 1,000 subscribers. Move to Razorpay then if cost matters. For now, UroPay's premium buys speed to market and risk mitigation.

UroPay API costs more. Intentionally. The goal is not to undercut mainstream gateways on price — it's to give you a path forward when the mainstream path is blocked.

Step-by-step: Setting up recurring UPI on the UroPay API

1. Get API keys. Go to dashboard.uropai.in, create an account, fill in business info. You get TEST keys immediately.

2. Build the mandate creation flow. Your backend calls POST https://api.uropai.in/v1/orders with:

{
  "tenantOrderRef": "mandate-user-123-2026-08",
  "amount": 2500,
  "currency": "INR",
  "mandateFrequency": "MONTHLY",
  "mandateMaxAmount": 2500
}

Sign with HMAC-SHA256 and your private TEST key. You get orderId and openUrl back.

3. Redirect to the mandate screen. Send the customer to openUrl. They approve in their UPI app.

4. Listen for the webhook. UroPay sends a signed webhook on MANDATE_ACTIVATED. Verify the signature, extract the mandateId, store it against the subscription.

5. Automate recurring charges. On billing cycle, call /v1/orders with mandateId and amount. You get an order ID back; the charge processes asynchronously.

6. Verify the charge. Check the webhook for PAID, or call GET /v1/orders/{orderId} as your authoritative status check. Unlock the subscription.

7. Ready for production. Once onboarding audit passes (UroPay reviews your website, pricing pages, refund policy, and checks the 44-category prohibited list), you sign the contract and swap TEST keys for PRODUCTION. No code changes.

Full code samples (Node, Python, PHP, cURL) are in the UroPay API docs.

Quick Takeaways

  • UPI Autopay mandates let customers pre-authorize recurring charges via any UPI app, enabling subscriptions without re-authentication on every charge.
  • Mainstream aggregators (Razorpay, Cashfree, PayU) charge ~2%, settle T+1/T+2, but require full KYC upfront and reject restricted categories outright.
  • The UroPay API charges 5% + ₹5 with KYC or 10% + ₹5 without, settles T+3/T+5, goes live in 3–5 working days.
  • The premium on UroPay API (vs cheaper aggregators) buys speed to market, direct founder support, lenient KYC (non-KYC tier), and real onboarding for restricted or edge-case categories.
  • Chargebacks and refunds are your liability on every platform; build handling upfront.
  • You own the checkout on UroPay API — your branding, your order IDs, your customer experience. Hosted options (UroRelay) are free and zero commission but no integration.

FAQ

Q: Can I start on the non-KYC tier and upgrade to KYC later?Yes. The API is identical. Completing KYC changes your rate from 10% + ₹5 to 5% + ₹5 and settlement from T+5 to T+3. No re-integration needed — update the dashboard and keep the same keys.

Q: What happens if a UPI Autopay mandate fails?A failed collect request generates a webhook with FAILED or EXPIRED. Retry or prompt the customer to re-authorize. The UroPay API docs cover retry strategies and idempotent mandate IDs.

Q: Do I need to handle refunds through the UroPay API?No. Refunds are offline — initiate them directly from your bank. The UroPay API doesn't process refunds. Document your policy and honor requests within your stated window.

Q: Can I accept both one-time and recurring on the same API?Yes. The same endpoints and keys handle both. One-time orders have no mandate; recurring orders include mandateFrequency and mandateMaxAmount. Same webhooks, same settlement.

Q: What if my category isn't on the 44-category prohibited list?The audit will flag it if it falls into a prohibited category by spirit of the rules (e.g., breaks Indian law, RBI direction, or TRAI regulation). The list isn't exhaustive. UroPay and the partner reserve the right to decline any merchant who's high-risk or damages reputation. But if you're legal, the bar is lower than mainstream aggregators.

Q: How do I contact support?Email gaurav@uropay.me or WhatsApp. Response typically under 24 hours, often within hours. Direct founder access is the main differentiator.

What's next?

If recurring UPI fits your SaaS, membership, or subscription business, start with the UroPay API and get test keys. Build and verify webhook handling in sandbox, then apply for production keys. Audit takes 3–5 working days, contract is standard, go live within a week.

If you want zero commission and don't need your own checkout, UroRelay offers payment links and buttons free. No integration, no recurring UPI (yet), but genuinely zero commission and no KYC.

Questions? Email gaurav@uropay.me. Happy shipping.