Skip to content
Kapda StockDocs

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:

  1. Razorpay keys saved in Kapda StockSettings → Razorpay keys (your customer payments). Without them, setting up a mandate is refused with "Connect Razorpay in Settings → Payment gateways first".
  2. 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#

RoleCan
Owner, AdminSet up, re-send, cancel and sync mandates
ManagerSee mandates and their status
Cashier, SalesmanNothing — the Autopay tab is hidden

Setting up a mandate#

  1. Open the customer, choose the Autopay tab, then Set up Autopay.
  2. 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.
  3. The summary line shows what the customer is agreeing to: ₹500 × 6 months = ₹3,000.
  4. 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:

StatusMeans
Awaiting approvalThe link has been sent; the customer has not approved yet
ApprovedApproved, first debit not taken yet
ActiveRunning normally
Debit failed — retryingA debit bounced; Razorpay will try again
StoppedDebits failed repeatedly; Razorpay has stopped the mandate
PausedPaused at Razorpay
CancelledCancelled by you
CompletedAll the agreed months have been collected
Link expiredThe 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#

  1. The money is recorded as a payment against the customer, method Razorpay.
  2. It settles the customer's oldest unpaid invoices first, exactly like cash taken at the counter.
  3. A DEBIT line appears in the khata reading UPI Autopay mandate debit 2/6.
  4. 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.authenticated
  • subscription.activated
  • subscription.charged
  • subscription.pending
  • subscription.halted
  • subscription.cancelled
  • subscription.completed
  • subscription.paused
  • subscription.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