Skip to main content
NACH / ECS · 5 min read

NACH Return Codes in India: Full Reference and Resolution Guide for Finance Teams

Every NACH debit return comes with a return reason code — a 2-digit number from NPCI that tells the presenting bank and the originator why the debit was rejected. The same return code drives the resolution action: code 01 (Insufficient Funds) is retriable, code 20 (Account Closed) is not. Finance teams that do not map return codes to resolution workflows manually work every return the same way. This guide covers the full NACH return code reference and the resolution logic for each.

Terra Insight
Terra Insight Reconciliation Infrastructure

Content authored by practitioners with experience at Amazon India, Intuit QuickBooks, and the Tata Group. Meet the team →

Published 21 March 2026
Domain expertise
TDS Reconciliation GST Input Credit Platform Settlements NACH Batch Matching Bank Reconciliation Form 26AS Matching ERP Integrations Enterprise Finance Ops

NACH return codes are the 2-digit reason codes that NPCI attaches to every rejected NACH debit mandate. For NBFCs, insurance companies, and SIP operators running high-volume NACH debit batches, the return code is not just a notification — it is the classification that determines whether the debit can be retried, whether the mandate is still valid, and whether DPD counting should begin. Finance teams that process all returns identically regardless of code will retry non-retriable mandates and delay DPD updates on retriable ones.

What NACH Return Codes Are

NACH return codes are standardised reason codes defined by NPCI and communicated through the return file that destination banks send back to presenting banks after processing a NACH debit batch. When a borrower’s bank cannot honour a debit instruction, it rejects the entry and assigns one of these codes to explain the reason.

The return file reaches the presenting bank within T+1 or T+2 business days from the debit presentation date. The presenting bank makes the return file available to the originator — typically an NBFC, insurer, or SIP registrar. At this point, the originator’s reconciliation system must parse the file, extract the UMRN and return code for each failed entry, and map the code to the appropriate resolution action.

In India, all NACH mandates carry a UMRN (Unique Mandate Reference Number), a 20-character alphanumeric string assigned by NPCI at mandate registration. The UMRN is the primary match key in the return file — it links each returned entry back to the specific borrower, mandate, and scheduled payment amount in the loan management system.

How Return Codes Drive Resolution Workflows

Retriable Codes: Retry Within the Billing Cycle

Return codes 01, 02, and 03 are classified as retriable. Code 01 (Insufficient Funds) is the most common — the borrower’s account had insufficient balance on the presentation date. The mandate itself remains valid, and the originator can submit a fresh NACH batch using the same UMRN. Most lenders allow up to 2 retry attempts within the same billing cycle, typically 3 to 5 business days after the original return date.

Non-Retriable Codes: Mandate or Account Invalid

Return codes 05, 20, 21, and 25 indicate that the underlying account or mandate is no longer valid. Retrying these is futile and will generate a repeated return. Code 20 (Account Closed) means the bank account no longer exists. Code 25 (Mandate Cancelled by Account Holder) means the borrower has specifically revoked the NACH authorisation — which requires a re-registration process, not a retry.

Dispute Codes: Separate Workflow Required

Code 27 (Stop Payment) is a borrower-initiated instruction to block the specific debit. Unlike a liquidity failure, stop payments reflect deliberate intent. Retrying a code 27 return produces another code 27. The resolution path is a borrower contact and dispute resolution workflow — separate from the standard retry queue.

Technical Codes: Bank-Side Processing Failure

Code 09 (Technically Impaired) indicates a bank-side processing failure rather than a problem with the mandate or account balance. These entries can typically be resubmitted in the next batch cycle.

NACH Return Code Reference Table

CodeDescriptionCategoryDPD ImpactRecommended Action
01Insufficient FundsRetriableDPD clock starts on original due dateRetry within 3–5 business days, max 2 retries
02Exceeds ArrangementRetriableDPD clock starts on original due dateVerify debit amount against mandate limit; retry
03Effects Not Cleared — Refer to DrawerRetriableDPD clock starts on original due dateRetry after 2–3 business days
05No Account / Unable to Locate AccountNon-retriableDPD starts immediately; no retryInitiate borrower contact for account verification
09Technically ImpairedTechnicalNo DPD impact; resubmit onlyResubmit in next batch; no borrower action needed
20Account ClosedNon-retriableDPD starts immediately; no retryRequire borrower to register mandate on active account
21Account BlockedNon-retriableDPD starts immediatelyBorrower contact required; re-registration after unblocking
25Mandate Cancelled by Account HolderNon-retriableDPD starts immediatelyMandate re-registration required; assess collections risk
27Stop PaymentDisputeDPD starts immediatelyEscalate to dispute resolution; do not retry

India-Specific Compliance Context

The classification of NACH returns as retriable or non-retriable has a direct regulatory consequence under RBI’s prudential norms for NBFCs. Under the RBI Master Direction on NBFC — Systemically Important Non-Deposit taking (NDSI), the DPD counter begins from the original contractual due date — not from the return date. A finance team that delays posting a code 20 or code 25 return to the LMS effectively understates NPA provisioning until the error is caught.

Correct NACH return code reconciliation must therefore distinguish between (a) the date the debit was presented, (b) the date the return was received, and (c) the date the LMS was updated. The gap between (b) and (c) should be zero for non-retriable and dispute codes — the DPD counter cannot wait for a manual review cycle.

For organisations running NACH batch reconciliation at scale, NACH batch reconciliation with automated return code classification eliminates the manual triage step that creates this posting delay. Reconciliation software India that maps UMRN directly to LMS loan records reduces the time from return file receipt to LMS update from hours to minutes.

The full NACH return reason code list and mandate standards are published by NPCI NACH product overview, which is the authoritative source for code definitions and file format specifications.

For broader context on NACH as a payment system, the NACH reconciliation guide covers the full debit lifecycle. The what is NACH in India article explains mandate registration and UMRN structure. Finance teams handling return queues systematically will also find exception management reconciliation India useful for building a structured return workflow.

The five most common questions about NACH return codes from Indian finance teams are answered below.

Primary reference: NPCI NACH product overview — where the full list of NACH return reason codes, mandate specifications, and file format standards for Indian banks are published.

Frequently Asked Questions

What does NACH return code 01 mean and can the mandate be retried?
NACH return code 01 means Insufficient Funds — the borrower's account did not have enough balance on the presentation date. This is a retriable return. Most lenders allow up to 2 retry attempts within the same billing cycle. The retry must be submitted as a new NACH batch with the same UMRN. Each retry attempt resets the presentation date for DPD calculation purposes, so lenders typically retry within 3–5 business days of the original return.
What is the difference between NACH return code 20 (Account Closed) and 25 (Mandate Cancelled)?
Code 20 (Account Closed) means the destination bank account no longer exists. Code 25 (Mandate Cancelled by Account Holder) means the account is active but the borrower has specifically withdrawn the NACH mandate authorization. Both are non-retriable returns, but the resolution differs: code 20 requires the borrower to register a new mandate on a different bank account, while code 25 requires mandate re-registration on the same or a different account — and may indicate intentional non-payment, which triggers a separate collections workflow.
How does a NACH return code 27 (Stop Payment) differ from an insufficient funds return?
Code 27 (Stop Payment) means the account holder has placed a specific instruction with their bank to stop the NACH debit. Unlike code 01 (Insufficient Funds), code 27 is a deliberate borrower action and is classified as a dispute return, not a liquidity failure. Retrying a code 27 return without resolving the underlying dispute will result in a repeated code 27. The correct workflow is to initiate a borrower contact and dispute resolution process — not a standard retry.
How quickly does an NBFC receive the NACH return file after a failed debit?
Under the NPCI NACH framework, the destination bank returns rejected mandates to NPCI, and the return file is made available to the presenting bank (and through it, to the originator) within T+1 or T+2 business days from the presentation date. In practice, most NBFCs configure their bank's API integration to receive the return file by T+1 morning. A 48-hour processing window is the maximum accepted delay before DPD reporting is considered understated.
What is the UMRN and how is it used to match a NACH return to a specific borrower account?
UMRN stands for Unique Mandate Reference Number — a 20-character alphanumeric identifier assigned by NPCI at the time of mandate registration. Every NACH debit presentation carries the UMRN, and every return file entry includes the UMRN of the failed mandate. The reconciliation system uses the UMRN as the primary match key to link each return code back to the specific borrower, loan account, and scheduled EMI amount in the loan management system (LMS).

See how TransactIG handles reconciliation for your industry

Configuration takes 2–4 weeks. No code development required. ISO 27001:2022 certified.