UPI Autopay
Collect a fixed amount from a customer every month, automatically — set up a Razorpay UPI Autopay mandate, and every debit lands in the khata and settles the oldest invoices first.
UPI Autopay turns a long udhaar into a monthly instalment that collects itself. You set the amount and the number of months, the customer approves once in their UPI app, and from then on the money arrives on its own — each debit is written to their khata and put against their oldest unpaid invoices.
It uses your own Razorpay account, so the money reaches your bank account directly and Razorpay's usual charges apply. Kapda Stock takes nothing.
Before you start#
You need two things:
- Razorpay keys saved in Kapda Stock — Settings → Razorpay keys (your customer payments). Without them, setting up a mandate is refused with "Connect Razorpay in Settings → Payment gateways first".
- Webhook events enabled on your Razorpay dashboard — see Enabling the webhook events below. Skip this and debits will still be collected by Razorpay, but they will not appear in the khata until someone presses Sync.
The customer needs a valid +91 mobile number on their profile — that is where the approval link goes.
Who can do what#
| Role | Can |
|---|---|
| Owner, Admin | Set up, re-send, cancel and sync mandates |
| Manager | See mandates and their status |
| Cashier, Salesman | Nothing — the Autopay tab is hidden |
Setting up a mandate#
- Open the customer, choose the Autopay tab, then Set up Autopay.
- Fill in:
- Amount per month (₹) — capped at ₹15,000 per debit. This is an NPCI limit on UPI Autopay, not ours; for a larger total, spread it over more months.
- Number of months — 1 to 120.
- First debit date (optional) — leave blank to start as soon as the customer approves.
- Note (optional) — for example Eid order instalment.
- The summary line shows what the customer is agreeing to: ₹500 × 6 months = ₹3,000.
- Send approval link.
The link is sent to the customer over WhatsApp and SMS, and shown on screen with a Copy link button so you can also hand it over in person or paste it into another chat.
What the customer sees#
They get a message naming your shop, the monthly amount, the number of months and the total, with the link. Opening it shows a Razorpay page where they choose UPI Autopay, pick their UPI app, and approve the mandate once. After that their bank debits the agreed amount every month without asking again — exactly like a SIP or an EMI.
The approval link is valid for 7 days. If it lapses, the mandate shows Link expired after a Sync and you set up a new one.
Following a mandate#
The Autopay tab on the customer, and the Customers → Autopay page for the whole shop, show every mandate:
| Status | Means |
|---|---|
| Awaiting approval | The link has been sent; the customer has not approved yet |
| Approved | Approved, first debit not taken yet |
| Active | Running normally |
| Debit failed — retrying | A debit bounced; Razorpay will try again |
| Stopped | Debits failed repeatedly; Razorpay has stopped the mandate |
| Paused | Paused at Razorpay |
| Cancelled | Cancelled by you |
| Completed | All the agreed months have been collected |
| Link expired | The approval link lapsed before the customer approved |
Each row shows debits taken (for example 2/6) and the next debit date in DD/MM/YYYY.
Row actions:
- Resend link — only while approval is pending; sends the same link again.
- Sync — asks Razorpay for the current state. Use it if you suspect a webhook did not arrive.
- Cancel — see below.
What happens on each successful debit#
- The money is recorded as a payment against the customer, method Razorpay.
- It settles the customer's oldest unpaid invoices first, exactly like cash taken at the counter.
- A DEBIT line appears in the khata reading UPI Autopay mandate debit 2/6.
- The customer gets a WhatsApp receipt with the amount and their new balance.
If the customer owes nothing at that moment, the debit is still recorded — it becomes an advance, and their khata goes into credit, which is then used up by their next purchase.
A debit is never recorded twice, even if Razorpay sends the same notification more than once.
What happens on a failed debit#
Usually the customer's account did not have the money.
- Razorpay retries, and the mandate shows Debit failed — retrying.
- After repeated failures Razorpay stops the mandate: Stopped.
Either way you are told — a notification on your device and an email to the business address: "Autopay for <customer> failed." Nothing is written to the khata, because no money moved. Talk to the customer; if the mandate has been stopped, set up a new one.
Cancelling#
Cancel offers two choices:
- Cancel now — stops it immediately. Nothing further is debited.
- After current cycle — the debit already scheduled goes through, then it stops. The mandate keeps showing as active with ends after this cycle until Razorpay confirms.
A mandate the customer has not approved yet is always cancelled immediately — there is no cycle to finish.
Cancelling never removes anything: the mandate and every debit it collected stay on record.
Enabling the webhook events#
This is how Razorpay tells Kapda Stock that a debit went through. Do it once, in your Razorpay dashboard, under Settings → Webhooks.
The exact webhook URL for your business is shown in Kapda Stock under Settings → Razorpay keys. Use the same webhook secret you saved there.
Tick these events:
subscription.authenticatedsubscription.activatedsubscription.chargedsubscription.pendingsubscription.haltedsubscription.cancelledsubscription.completedsubscription.pausedsubscription.resumed
Without them nothing is lost — Razorpay still collects the money — but the khata only catches up when someone presses Sync.
Common questions#
Can I change the amount later? No. The amount and the number of months are fixed when the customer approves. To change either, cancel and set up a new mandate.
What if the customer pays in cash one month? Record it as a normal payment. The Autopay debit still comes; it will settle whatever is then outstanding, or sit as an advance.
Does this work without a smartphone? No — the customer approves in a UPI app. For customers without one, keep using payment reminders.
Last updated 21/09/2026