How to Accept Recurring Payments via eSewa and Khalti in Nepal
If you're running a subscription business in Nepal — a gym, a SaaS product, a coaching center, an ISP — at some point you've asked the same question: how do I actually collect recurring payments digitally? eSewa and Khalti are everywhere. Your customers use them daily. Surely it's straightforward to charge them automatically every month?
The honest answer is: it's more involved than it looks. This guide explains exactly what eSewa and Khalti support, what you'd need to build yourself, and what most businesses in Nepal actually do.
What eSewa and Khalti actually offer
Both eSewa and Khalti are payment platforms — they let customers make digital payments from their wallets or linked bank accounts. Both offer merchant APIs that let businesses accept payments programmatically.
What they don't offer is a subscription layer. There is no built-in mechanism to say "charge this customer NPR 2,000 on the 1st of every month." That logic — the recurring part — doesn't exist in either platform's API. What exists is the ability to initiate a payment transaction. The subscription management on top of it is entirely your responsibility.
This is the key distinction that trips up most businesses: eSewa and Khalti are payment tools, not subscription tools. Getting a recurring billing system out of them requires building the subscription layer yourself.
What "building it yourself" actually involves
If you want to collect recurring payments via eSewa or Khalti without using a platform like SUQO, here's what you'd need to build and maintain:
Merchant API access
First, you need a merchant account with eSewa or Khalti. The process involves business registration verification, a compliance review, and approval from the payment provider — which can take time and isn't guaranteed for all business types. Once approved, you get API credentials to initiate payment requests.
Subscriber database
You need somewhere to store subscriber records — who has subscribed, to which plan, when their billing cycle started, and when it renews. This is a database you design and maintain. Every subscriber you add, pause, cancel, or upgrade needs to be reflected here accurately.
Renewal date logic
You need a scheduled process that runs daily and checks which subscribers are due for renewal. This is typically a cron job or background task that queries your subscriber database and identifies who to bill next. Edge cases — grace periods, failed payments, paused subscriptions — all need to be handled explicitly.
Payment link generation
Since auto-debit isn't yet available in Nepal, you can't pull payment automatically. Instead, you generate a payment link for each subscriber at renewal time and send it to them. The subscriber clicks the link and completes the payment in their eSewa or Khalti app. You need to handle the callback that confirms payment went through and update your subscriber record accordingly.
Reminder system
If you want subscribers to actually renew, they need to be reminded. You need to integrate with an SMS provider, build message templates, and schedule outgoing reminders — typically a few days before the renewal date and again after if they haven't paid. This is a separate system from the payment flow.
Status tracking and reporting
You need to track who's active, who's in a grace period, who's overdue, and who's cancelled — and surface that information in a way that's useful for running the business. Without this, you're flying blind.
None of this is impossible. But it adds up. Most founders who have done it estimate 2–4 weeks of development time for a basic implementation, plus ongoing maintenance every time eSewa or Khalti change their API, every time you add a new plan, and every time an edge case comes up that your initial build didn't cover.
What most businesses actually do
The shortcut that an increasing number of subscription businesses in Nepal use is a platform that handles the subscription layer for them — so they get eSewa and Khalti collection, automated reminders, and subscriber tracking without building any of it.
This is exactly what SUQO does. Instead of getting your own merchant API, building renewal logic, and wiring up an SMS provider, you create a plan on SUQO, share a payment link with your subscribers, and SUQO handles the rest — renewal tracking, automated SMS reminders, payment collection via eSewa, Khalti, and ConnectIPS, and a live dashboard showing who's active, who's due, and who's overdue.
For technical teams who do want to build on top of it, SUQO also offers a full REST API — so you can create subscribers, manage plans, and trigger renewals programmatically, without building the payment gateway integration or the subscription logic from scratch.
What about auto-debit?
Auto-debit — the ability to pull a payment from a subscriber's wallet or bank account automatically at renewal, without them needing to click a link — is not yet widely available in Nepal. NRB has been moving the regulatory framework in this direction, and it's expected to arrive in the near term.
When it does, it will fundamentally change subscription billing in Nepal. Renewal rates will increase significantly because payment becomes frictionless. Businesses that already have structured subscriber records and digital billing in place will be able to enable auto-debit immediately. Businesses still on spreadsheets will need to migrate everything first.
The practical implication: the best time to set up proper recurring payment infrastructure is now, before auto-debit arrives — not after.
Quick reference: your options
Use SUQO's payment links
Create a plan, share the link with customers, and SUQO handles renewal reminders and payment collection via eSewa and Khalti. No code, no merchant API, no maintenance. Operational in under 10 minutes.
Use the SUQO API
Wire SUQO into your product via the REST API. Create subscribers, trigger renewals, and sync billing state programmatically — without building the payment gateway integration or subscription logic yourself. Free API access from day one.
Apply directly for eSewa / Khalti merchant API
Get merchant API access from eSewa and Khalti, build your own subscriber database, write renewal logic, wire up an SMS provider for reminders, and maintain all of it as the APIs change. Estimated build time: 2–4 weeks minimum, ongoing maintenance indefinitely. This is the path most teams start down before realising how much of it isn't core product work.
Start collecting recurring payments today
Create a plan, share the link with customers, and SUQO handles renewal reminders and payment collection via eSewa and Khalti.
Start managing subscriptions