A step-by-step guide to building loan collections and recovery in India. Eight stages, the options at each one, exactly how each step connects to the next, real costs, and what breaks. Written for someone who has not built this before.
Verified September 2026Free · No signupOfficial sources only
BeginnerStart here. No prior knowledge assumed.
How to use this page
This page walks you through building one thing: the system that contacts a borrower who has missed
a payment, and decides what to say, when, and how many times.
Every other product guide on this site regulates a transaction. This one regulates a
conversation. The rules govern the hour you may call, the words you may use, who you may
mention it to, and what evidence you must keep — and they were written for a human agent at a
time when the agent is increasingly a machine.
Watch out
The rulebook was rewritten six weeks ago and it commences on 1 January 2027. After two rounds of consultation — a first draft in February 2026 and a revised draft on 20 May 2026 — the RBI notified the Reserve Bank of India (Commercial Banks — Responsible Business Conduct) Fourth Amendment Directions, 2026 on 6 August 2026, with parallel circulars for NBFCs. Nine circulars, one commencement date: 1 January 2027. Until then the existing instructions continue to apply unchanged. Anything you read describing the February or May drafts is describing a text that was superseded before it took effect.
What you are actually building
Collections is a sequence of decisions, and the regulated part is the contact rather than the
decision. What you are building:
Layer
What it decides
Regulated?
Prioritisation
Which accounts to work, in what order
Indirectly — through the model rules
Treatment
Reminder, call, restructure offer, field visit
Partly
Contact
When, how often, by what channel, in what words
Heavily, and specifically
Settlement
What you will accept and on what terms
By your own board-approved policy
Note
The standing rules, in force today and unchanged until January. The Fair Practices Code restricts contact to 8 AM to 7 PM, across every channel — call, SMS, messaging app, email and visit — and prohibits contacting relatives, employers, neighbours or colleagues to apply pressure. The recovery agents circular of 12 August 2022 reinforced this across regulated entities. And throughout, the lender remains liable for the conduct of anyone recovering on its behalf. Outsourcing the calling does not outsource the answerability.
What this is not:
Not a dialler project. The hard part is deciding who not to call and when to
stop.
Not a place to deploy autonomy. See step 5.
Not device locking. That category shrank sharply in August. Step 7.
The whole journey, in one table
#
Step
In plain words
1
Segment by reason, not by days past due
Forgot, cannot, will not. Three different problems.
2
Build the contact rules as code
Hours, frequency, channel, consent. Not as a policy document.
3
Write what gets said
And what may never be said.
4
Decide the channel
Self-serve first. A call is expensive in more than money.
5
If a machine speaks, constrain it
The step with no settled rulebook.
6
Offer a way out
Restructure, settle, pause. The point of the exercise.
7
Escalate lawfully
Agents, visits, devices — all newly constrained.
8
Record and answer for it
Recordings, complaints, the Ombudsman clock.
Note
Steps 1, 5 and 8 are the ones that get skipped. Steps 2 to 4 are what a collections platform sells you. Nobody sells you the segmentation by reason, the constraint on the machine, or the evidence trail — and those three decide whether the system recovers money or generates complaints.
IntermediateBuild it. Pipelines, tools and working code.
Steps 1 to 3 — segment, gate, script
Step 1 — Segment by reason, not by days past due
Almost every collections system buckets accounts by how late they are. Days past due is a
measure of how long, and tells you nothing about why — which is the only thing
that determines what works.
Reason
What actually works
Forgot — a failed mandate, an expired card, a changed account
A reminder and a one-tap fix. A call here is a cost and an irritation
Cannot — income shock, illness, job loss
A restructure conversation. Pressure produces nothing and costs the relationship
Will not — dispute, dissatisfaction, refusal
Resolution of the dispute, or lawful escalation. Not more reminders
The first bucket is usually the largest and the cheapest to fix, and treating it
with the same intensity as the third is how collections programmes generate complaints while
recovering money they would have recovered anyway.
Step 2 — Contact rules belong in code
A policy document saying we call between 8 and 7 is not a control. The control is a
function that refuses to place the call.
What has to be enforced, not documented: the 8 AM to 7 PM window across every channel,
in the borrower's local time; a frequency cap per day and per week; a rule that a promise to pay
suppresses contact until the promised date; that a registered dispute suppresses collections contact
entirely; and that nobody other than the borrower and a guarantor is contacted about the
debt.
Step 3 — What gets said, and what may never be said
Script the permitted messages, and script them narrowly. More usefully, enumerate the prohibited
ones, because that list is short, specific and the one that generates complaints:
Any threat, including implied — arrest, criminal proceedings, seizure
without an order, damage to a person's standing.
Abusive, obscene or intimidating language.
Disclosing the debt to anyone else, including by leaving a message with a family
member or writing it on a visible envelope.
Misrepresenting who you are or what authority you hold.
Claiming legal consequences that do not exist. For an unsecured loan, no asset is
seized without a court order.
Steps 2 to 5 — the gate, and the machine that speaks
Steps 2 to 5 — The gate, and the machine that speaks
Python — steps 2 to 5, the rules as a gate, and constraining a machine that speaks
from datetime import datetime, time, timedelta
# STEP 2. THE GATE. Nothing reaches a borrower except through this.
WINDOW = (time(8, 0), time(19, 0)) # Fair Practices Code: 8 AM to 7 PM
def may_contact(account, now_local, channel, history, flags):
"""Returns (allowed, reason). A policy document does not stop a call.
This does."""
if not (WINDOW[0] <= now_local.time() < WINDOW[1]):
return False, "outside_permitted_hours" # every channel, not just voice
if flags["dispute_registered"]:
return False, "dispute_open"
if flags["promise_to_pay_until"] and now_local.date() <= flags["promise_to_pay_until"]:
return False, "promise_to_pay_active"
if history.contacts_today(account) >= flags["daily_cap"]:
return False, "daily_cap_reached"
if history.contacts_this_week(account) >= flags["weekly_cap"]:
return False, "weekly_cap_reached"
if flags["vulnerability_hold"]:
return False, "vulnerability_hold" # see step 5
return True, "ok"
def permitted_recipients(account):
# Nobody else. Not a relative, an employer, a neighbour or a colleague.
return [account["borrower"]] + account.get("guarantors", [])
# STEP 5. IF A MACHINE DOES THE SPEAKING.
# There is no settled rulebook for an automated voice agent in collections.
# The conduct rules were written for a person, they apply to the lender
# regardless of who or what makes the call, and the gap is yours to fill.
AGENT_CONSTRAINTS = {
"identifies_as_automated_up_front": True,
"states_the_lender_by_name": True,
"route_to_human_offered_every_turn": True,
"may_negotiate": False, # it presents options; it does not deal
"may_threaten": False, # not expressible, not merely disallowed
"max_turns_before_human": 6,
"recording_disclosed_before_it_starts": True,
}
# The thing an automated caller cannot do is notice.
DISTRESS_MARKERS = ("hospital", "died", "passed away", "lost my job",
"cannot cope", "harassing me", "legal notice")
def supervise(turn, agent_constraints):
if any(m in turn["transcript"].lower() for m in DISTRESS_MARKERS):
# Not a branch in the script. Leave the automation entirely.
return {"action": "hand_to_human_now", "suppress_further_automation": True,
"set_vulnerability_hold": True}
if turn["index"] >= agent_constraints["max_turns_before_human"]:
return {"action": "offer_human"}
return {"action": "continue"}
# WHAT TO CHECK
# [ ] the gate is the ONLY path to a borrower. A campaign tool that can
# bypass it is the whole control gone
# [ ] the hour test uses the BORROWER's local time, not your server's
# [ ] the window applies to SMS and messaging apps too. An automated message
# at 10pm is the same violation as a call
# [ ] a promise to pay suppresses contact. Calling someone who has already
# told you when they will pay is the most common avoidable complaint
# [ ] distress markers exit the automation rather than branch inside it
# [ ] the agent cannot express a threat. Not "is instructed not to" -- the
# phrasing is not in its permitted output at all
# [ ] every suppression is logged with its reason. "We did not call" is
# evidence only if it is recorded
THE finding, and it is the reason this page is different from the other fifteen:the conduct rules describe how a person should behave, they bind the lender regardless of who
or what places the call, and nothing yet describes how an automated caller should behave. The gap is
yours to fill and it will be filled later, by somebody else, retrospectively.
An automated dialler complies with the 8 AM to 7 PM window trivially — better than a human
team does. What it cannot do is notice. A person hearing "my father is in
hospital" stops. A script hears an unmatched intent and asks about the payment again, and the
second question is the one that becomes a complaint, a screenshot and an Ombudsman case.
Watch out
Design the exit, not the branch. The instinct is to add distress handling as a path inside the conversation. That is the wrong shape: a machine that responds to “I lost my job” with a scripted empathy line and then returns to collection has produced something worse than silence. Distress should end the automation entirely — hand to a human, suppress further automated contact, and set a hold. It costs conversion on a small number of calls and it is the difference between a system that is defensible and one that is not.
Two further positions worth taking before anyone requires them. Say it is automated, up
front. There is no Indian rule presently compelling that disclosure in collections, and a
borrower who discovers mid-call that they have been arguing with a machine about their debt is a
complaint you created. And never let it negotiate. It may present options your policy
has already approved; it may not agree terms, because an agreement reached with a machine is an
argument about what was agreed.
Steps 6 to 8 — resolve, escalate, answer for it
Step 6 — Offer a way out
The purpose of collections is recovery, and the highest-recovery action for the cannot pay
segment is almost always a restructure rather than pressure. Build the options into the first contact
rather than holding them back as a concession: a revised schedule, a short pause, a part-payment
arrangement, a settlement where the account warrants it.
Make them self-serve. A borrower who can restructure at eleven at night without
speaking to anyone will do it. The same borrower, asked to call during office hours to discuss it,
frequently does not.
Python — steps 6 to 8, resolution, escalation and the evidence you will be asked for
from datetime import date, timedelta
# STEP 6. THE WAY OUT, OFFERED EARLY RATHER THAN CONCEDED LATE.
def resolution_options(account, policy):
"""Present what your policy already approves. Do not hold options back as
a negotiating position -- the segment that needs them is the segment that
does not respond to pressure."""
opts = []
if policy["allow_reschedule"]:
opts.append({"type": "reschedule", "self_serve": True})
if account["hardship_flag"] and policy["allow_pause"]:
opts.append({"type": "pause", "months": policy["max_pause_months"],
"self_serve": True})
if account["days_past_due"] > policy["settlement_after_days"]:
opts.append({"type": "settlement", "self_serve": False}) # needs approval
# Self-serve at 11pm converts. The same option behind a daytime phone
# call frequently does not.
return opts
# STEP 7. ESCALATION. EACH STEP HAS A PRECONDITION, NOT A DAY COUNT.
def may_escalate(account, step, agents, now):
if step == "field_visit":
# Fourth Amendment Directions, from 1 Jan 2027: notice first.
return account["visit_notice_sent_on"] is not None and \
now.date() >= account["visit_notice_sent_on"] + timedelta(days=1)
if step == "assign_agency":
# Certified, background-verified, publicly listed, borrower informed.
a = agents.assigned(account)
return all([a["iibf_certified"], a["background_verified"],
a["published_on_website"], account["borrower_informed_in_writing"]])
if step == "restrict_device":
# Baseline is prohibition. Only a device this loan financed.
return account["device_was_financed_by_this_loan"] and \
account["days_past_due"] >= policy_min_days() and \
account["graduated_restriction_only"]
return False
# STEP 8. THE EVIDENCE, AND THE CLOCK THAT RUNS WITHOUT YOU.
def complaint_sla(received_on):
"""RB-IOS 2026: no reply within 30 days, or an unsatisfactory one, and the
borrower may go to the Ombudsman. Set your own clock shorter."""
return {"internal_target": received_on + timedelta(days=14),
"ombudsman_eligible_from": received_on + timedelta(days=30)}
def evidence_pack(account, store):
# What a complaint is answered with. Assemble it now, not later.
return {
"contact_log": store.contacts(account), # incl. SUPPRESSED, with reason
"recordings": store.recordings(account), # prior intimation given
"transcripts": store.transcripts(account),
"who_called": store.actor(account), # human or agent, named
"options_offered": store.offers(account),
"notices_sent": store.notices(account),
}
# WHAT TO CHECK
# [ ] report complaint AGE, not complaint volume. The oldest open complaint
# predicts escalation; the count does not
# [ ] log suppressed contacts with their reason. "We did not call" is
# evidence only if it was recorded at the time
# [ ] every escalation step checks a PRECONDITION, not a day counter
# [ ] the actor on every contact is identifiable -- which human, or which
# automated agent and which version of it
# [ ] test retrieval of a recording from six months ago before you need one
# [ ] run the SLA clock in IST against calendar days, not working days. The
# Ombudsman's 30 days do not pause for your weekend
Step 7 — Escalation, and what changed in August
The Fourth Amendment Directions of 6 August 2026, in force from
1 January 2027 and issued under sections 21 and 35A of the Banking Regulation Act,
convert a scattered set of expectations into a detailed and enforceable code. What they add:
Requirement
Detail
Agent certification
Background verification, and certification through IIBF or a similar institution
Public disclosure
An updated list of empanelled recovery agencies on the website and digital platforms
Notice before a visit
At least one day's prior notice of any recovery-related visit
Notice of change
Borrowers told when an agency is assigned, changed or removed
Call recording
Recovery interactions recorded, with prior intimation
Board-approved policy
Monitoring, escalation, due diligence, and compensation linked to complaints
Scope
Recovery agencies and agents defined; Business Correspondents handling collections are in
Watch out
Device locking: the baseline is now prohibition. The revised framework permits only graduated restriction of functions on a device the loan financed, after a defined period of missed payments, and creates a compensation mechanism for borrowers subjected to wrongful recovery action. Outside device finance, remote locking is not a recovery tool. If your collections roadmap contains a device-control feature, that feature has a deadline rather than a launch date, and the compensation exposure attaches to getting it wrong.
Step 8 — Record it, and answer for it
Two clocks matter. Internally, a complaint must be capable of being answered with what was actually
said — which means the recording, the transcript, the contact log with its suppression reasons,
and the identity of whoever or whatever made the call.
Externally, the Reserve Bank Integrated Ombudsman Scheme, 2026, effective
1 July 2026, sets the path: the complainant approaches the regulated entity first,
and may escalate to the Ombudsman if there is no reply within 30 days or the reply is
unsatisfactory, within 90 days of that period expiring.
Note
That timeline is your real service level. A complaint that sits unanswered for thirty days becomes an Ombudsman case automatically, whatever its merits. Route collections complaints to a named owner with a shorter internal clock than thirty days, and track age rather than volume — the metric that predicts escalation is how long the oldest open complaint has been open, and almost nobody reports it.
What it costs
Collections and recovery — what it costs
Verified September 2026
The contact gatedirect
Small to build, and the highest-value component here. Every route to a borrower must pass through it; a campaign tool that can bypass it removes the control entirely.
Self-serve resolutiondirect
Restructure, pause and part-payment without a conversation. Usually the highest-return investment in the whole programme, because the largest segment simply forgot and the second largest needs terms rather than pressure.
Voice automationdirect
Per minute or per conversation, and cheap against an agent. Price the supervision alongside it — transcript monitoring, distress detection, human handover capacity — because the unsupervised version is the one that produces the complaint.
Agent certificationdirect
From 1 January 2027: background verification and certification through IIBF or similar, for every agent interacting with borrowers. Recurring, and it applies to outsourced agencies as much as employees.
Recording and retentiondirect
Recovery interactions recorded with prior intimation, stored, and retrievable when a complaint arrives months later. Retrievability is the requirement, not storage.
Complaint handlingdirect
A named owner and an internal clock shorter than the Ombudsman's 30 days. Understaffing this converts ordinary complaints into regulatory ones.
Getting it wrongindirect
The lender is liable for agent conduct and cannot outsource it. Penalties in the crores have been imposed for recovery-agent harassment, and the new framework adds a quantified compensation mechanism for wrongful recovery action.
Where to buy these: Customer Operations Build Sheet names every tool with its unit cost. Getting Access covers which ones you can sign up for today, which need a sales call, and which are licensed.
Note
The number worth computing first: what share of your overdue accounts are in the ‘forgot’ bucket? In most portfolios it is the majority, it is recoverable with a reminder and a working payment link, and every rupee of collections intensity spent on it is spent generating irritation for money you were going to get. That figure decides the size of everything else on this list.
AdvancedShip it. Failure modes, thresholds and evidence.
Three versions you could build
Reminders and self-serve
Build: failed-mandate detection → a reminder inside permitted hours → a
one-tap payment link → self-serve restructure.
You get: most of the recoverable balance, almost no conduct exposure, and no
recovery agents. For many lenders this is the whole product, and the reason it is not
built first is that it does not look like collections.
Segmented treatment with human calling
Build: the above, plus segmentation by reason → the contact gate enforcing
hours, caps, promises and disputes → scripted treatments with a prohibited list → human
calling for the cannot pay segment → complaints to a named owner.
Trade: people cost money and exercise judgement. The judgement is what you
are buying, not the throughput.
Automated voice at scale
Build: the above, plus an automated caller that identifies itself,
cannot express a threat, cannot negotiate, offers a human every turn,
and exits entirely on any distress marker — with transcript supervision and a
human handover capacity sized for the exits.
It breaks when: the exit is built as a branch inside the conversation rather than
an exit from it. A machine that acknowledges a bereavement and then asks about the payment
again has produced the worst available outcome, and it will be a screenshot before it is a
metric.
Note
If you take one thing from this page: put distress handling outside the automation, not inside it. Every other control here is a rule a machine can follow. Noticing that something has changed is the one thing it cannot do, and the whole defensibility of an automated collections system rests on how quickly it stops.
What goes wrong
What goes wrong
Why
Fix
SMS at 10pm
The window was applied to voice only.
Every channel. An automated message is a contact.
Call in the wrong time zone
Server time, not borrower time.
Evaluate the window in the borrower's local time.
Calling after a promise to pay
The promise was logged, not enforced.
Suppress until the promised date.
Contacting a relative
Treated as a way to reach the borrower.
Borrower and guarantors only. Nobody else.
Campaign tool bypasses the gate
A second route to the customer existed.
One path. Everything else is the control removed.
Machine keeps collecting after a bereavement
Distress built as a branch.
Exit the automation. Hold further contact.
Borrower discovers mid-call it is a bot
Disclosure not required, so not given.
Say it up front anyway.
Machine agreed terms
Negotiation left open.
It presents approved options. It does not deal.
Field visit with no notice
Old practice.
One day's prior notice, from 1 January 2027.
Device locked outside device finance
It worked, so it stayed.
Baseline is prohibition, with compensation exposure.
Complaint sits 30 days
Tracked by volume, not age.
Internal clock shorter than the Ombudsman's. Track the oldest.
This page is a guide, not a specification. Recovery conduct is regulated in detail, the framework was notified on 6 August 2026 and commences on 1 January 2027, and automated calling sits in a gap the rules do not yet describe. Nothing here is legal advice. Have your contact rules, your scripts, your automation constraints and your outsourcing contracts reviewed by qualified counsel before a single call is placed.
Sources
Every figure, rule and date on this page, and where to check it. Entries are typed so you can see which are primary-sourced and which are industry reporting.
officialReserve Bank of India (Commercial Banks — Responsible Business Conduct) Fourth Amendment Directions, 2026 — notified 6 August 2026 with parallel circulars for NBFCs — nine circulars sharing a commencement date of 1 January 2027, issued under sections 21 and 35A of the Banking Regulation Act, 1949. Recovery agent background verification and IIBF certification, public disclosure of empanelled agencies, at least one day’s notice before a recovery visit, notification when an agency is assigned or changed, recording of recovery interactions with prior intimation, a board-approved recovery policy covering monitoring, escalation, due diligence and compensation, the restriction of device functionality to financed devices only after a defined period of default, and a compensation mechanism for wrongful recovery action. Existing instructions continue to apply until 1 January 2027. www.rbi.org.in
officialRBI Fair Practices Code — conduct in recovery — the restriction of borrower contact to between 8 AM and 7 PM across all channels, the prohibition on contacting relatives, employers, neighbours or colleagues to apply pressure, the prohibition on threatening or abusive conduct, and the principle that the lender remains responsible for the conduct of agents acting on its behalf. www.rbi.org.in
officialRBI circular on engagement of recovery agents, 12 August 2022 — the reinforcement and extension of recovery conduct requirements across regulated entities, including in relation to digital lending applications and tele-calling. www.rbi.org.in
officialRBI draft Amendment Directions of February 2026 and the revised draft of 20 May 2026 — the two consultation rounds preceding the notified text, with proposed commencement dates of 1 July 2026 and then 1 October 2026 respectively. Both were superseded by the 6 August 2026 notification. Recorded here because a great deal of published commentary still describes the drafts. www.rbi.org.in
officialReserve Bank Integrated Ombudsman Scheme, 2026 — effective 1 July 2026. The complainant approaches the regulated entity first and may escalate to the Ombudsman where there is no reply within 30 days or the reply is unsatisfactory, within 90 days of that period expiring. rbi.org.in
officialRBI Master Direction on Outsourcing of Financial Services — the framework under which a regulated entity remains accountable for functions it outsources, including collections, and must exercise due diligence and oversight over service providers. www.rbi.org.in
officialRBI Responsible Business Conduct (Second Amendment) Directions, 2026 — notified 15 June 2026 and also commencing 1 January 2027, extending responsibility to DSAs, DMAs, sub-agents and third-party service provider representatives and requiring published lists of empanelled agents. Covered in full on the Embedded Insurance guide. www.rbi.org.in
industryReporting on recovery-agent enforcement and complaint volumes — penalties in the crores imposed for recovery-agent harassment, and reporting that loan and credit-card matters form the largest share of grievances. Directional; confirm any figure against the order before relying on it.
Checked September 2026. The Fourth Amendment Directions are notified but not yet in force — they commence 1 January 2027, and until then the existing instructions apply. Verify against the notified text rather than against the February or May drafts, which were superseded.
Ask an AI about this page
Opens your assistant with this page as the source, and a question rather than a summary. It will ask what you are building before it answers.