Skip to content

5.14 NACH file format reference

NACH (National Automated Clearing House) is the NPCI-operated bulk-debit / credit infrastructure. Lenders use NACH for collecting EMI / loan repayments via pre-authorised mandate.

The NACH file format is fixed-width with delimited records following NPCI’s specifications. This page is the engineer’s quick reference.

Authoritative source: NPCI’s NACH Procedural Guidelines and the NACH 2.0 File Format Specifications (issued and updated periodically). Always cross-reference the current version on NPCI’s site before implementing — NPCI periodically updates field widths and codes.

1. Lender holds active mandate (paper NACH or eNACH) for borrower's bank account.
2. Lender generates presentation file for tomorrow's debits.
3. Lender submits file to sponsor bank by daily cut-off.
4. Sponsor bank submits to NPCI.
5. NPCI processes overnight; routes to destination banks.
6. Destination banks attempt debit on settlement date.
7. NPCI returns ack file to sponsor bank next day.
8. Sponsor bank forwards ack file to lender.
9. Lender processes acks: success or bounce per row.

Daily cycle. Most banks have late-evening cut-off (e.g., 15:00 – 18:00 for files presented for next-day settlement).

The lender exchanges these file types with the sponsor bank:

FileDirectionPurpose
Mandate requestLender → BankActivate new mandate (one-time, for paper mandates)
Mandate responseBank → LenderMandate activation result
Presentation fileLender → BankDaily batch of debits to attempt
Inward presentation acknowledgementBank → LenderSponsor bank confirms receipt
Return file (settlement acknowledgement)Bank → LenderPer-debit success / bounce with reason codes
Reversal fileBank → LenderReversal of a previously-settled debit (rare)

The presentation file has three record types:

  • Header record (1 per file).
  • Detail records (1 per debit).
  • Trailer record (1 per file).

All records fixed-width; padding spaces / zeros as per spec.

Header record (illustrative; verify against current NPCI spec)

Section titled “Header record (illustrative; verify against current NPCI spec)”
PositionWidthFieldDescription
11Record type1 for header
2 – 54Transaction codeNACH transaction code (e.g., 0067 for retail debit)
6 – 149Sponsor bank IFSC prefixSponsor bank routing
15 – 2612User numberLender’s NPCI-assigned User Number
27 – 5024User nameLender’s NPCI-registered name
51 – 588Settlement dateDDMMYYYY of intended settlement
59 – 7012Product codeNPCI product code
71 – 9525FillerSpaces

(Exact widths per current NACH spec; the above is illustrative structure.)

Detail record (illustrative; verify against current spec)

Section titled “Detail record (illustrative; verify against current spec)”
PositionWidthFieldDescription
11Record type2 for detail
2 – 1716UMRNUnique Mandate Reference Number from mandate registration
18 – 269Customer reference numberLender’s internal reference (loan ID etc.)
27 – 3711Customer account numberBorrower’s bank account (right-aligned, zero-padded)
38 – 4811AmountAmount in paise (right-aligned, zero-padded; 000010000 = ₹100.00)
49 – 7022Customer nameBorrower’s name (left-aligned, space-padded)
71 – 8111IFSCBorrower’s bank IFSC
82 – 9211MICR codeBorrower’s bank MICR code
93 – 10210Settlement referenceNPCI-assigned (lender leaves blank)
103 – 1108DateSettlement date (same as header)
111 – 13020FillerSpaces
PositionWidthFieldDescription
11Record type7 for trailer
2 – 1110Total record countExcluding header / trailer
12 – 2615Total amountSum of detail amounts in paise (right-aligned, zero-padded)
27 – 5024FillerSpaces
10067SBIN00000001234567890123XYZ NBFC PRIVATE LIMITED 11052026PRODCODE0001
2HDFC0001234ABC123456000001234500001500000Sundar Textiles Pvt Ltd HDFC0001234123456789 11052026
2HDFC0001234XYZ987654000005678900000750000Ravi Enterprises HDFC0005678987654321 11052026
70000000020000000000022500000

(Whitespace / padding adjusted; actual lines are exact-width.)

Bank returns per-debit outcome:

PositionWidthFieldDescription
11Record type2 for detail (one row per attempted debit)
2 – 1716UMRN(echo)
18 – 269Customer reference number(echo — lender uses this to map back)
27 – 282Return code00 for success; otherwise a bounce reason code
29 – 5022Return reason textHuman-readable reason
Other echo fields

NACH return / bounce reason codes (illustrative subset)

Section titled “NACH return / bounce reason codes (illustrative subset)”

Always verify against current NPCI procedural guidelines:

CodeReasonLender action
00SuccessProcess repayment
01Funds insufficientApply bounce fee; re-present per policy
02Account closedMark mandate inactive; contact borrower
03Account does not exist / wrong accountMark mandate inactive; verify borrower
05Payment stopped by drawerMandate likely revoked unilaterally; contact borrower
09Other reasons (technical)Re-present
10Connectivity / format / technicalRe-present
21KYC not doneBorrower’s bank-side issue; contact bank
25Different from KYC nameVerify mandate; may need re-registration
30Mandate inactive at customer’s bankMandate cancelled by borrower; contact
42Mandate not foundMandate may have lapsed; verify validity
..Various other codesPer spec; lender’s adapter has full mapping

Always refer to NPCI’s current bounce-reason-code matrix — codes are updated periodically and new codes added for new failure modes.

NACH allows re-presentation after a bounce per NPCI rules. Common pattern:

Bounce reasonRe-present?When
Funds insufficient (01)YesAfter 1 – 3 days; cap at 2 – 3 attempts per cycle
Account closed (02)NoMandate dead; contact borrower
Stopped by drawer (05)NoBorrower revoked; contact
Technical (09, 10)YesNext day
Mandate inactive (30, 42)NoRe-register mandate

Lender’s bounce-handling logic encodes this matrix.

NPCI’s NACH cycle is T+1 settlement with these checkpoints:

  • Lender cut-off to sponsor bank: typically 15:00 – 18:00 for next-day settlement.
  • Sponsor bank cut-off to NPCI: typically 19:00 – 20:00.
  • NPCI processing: overnight.
  • Settlement on T+1 during the day.
  • Ack file: returned to sponsor bank typically by T+2 morning.
  • Lender receives ack: by T+2 mid-day typically.

Lender’s daily batch (5.8) is built around these timings.

Mandate file structure (paper NACH mandate registration)

Section titled “Mandate file structure (paper NACH mandate registration)”

For paper-based mandate registration (still common for some segments):

  • Lender uploads scanned paper mandate to sponsor bank with a structured metadata file.
  • Sponsor bank processes; returns UMRN on activation or rejection reason.

For eNACH (Aadhaar / Debit card / Netbanking), mandate registration is API-based and faster.

Different sponsor banks have slightly different:

  • File format variants (within NPCI spec).
  • Cut-off times.
  • API vs SFTP submission.
  • Ack format / timing.

Document per-sponsor-bank quirks in the NACH adapter.

  • Total amount in trailer must equal sum of detail amounts.
  • Record count in trailer must equal detail count.
  • Sponsor bank rejects on any integrity failure.

The lender’s customer reference number must be unique per loan per cycle — used to match ack back to LMS.

Once daily presentation exceeds ~50,000 debits, batching across multiple files for the same date may be needed per sponsor bank’s limits.

eNACH is the API-driven mandate registration alternative to paper:

  • Borrower authorises via Aadhaar OTP (most common).
  • Or Debit card swipe.
  • Or Netbanking.
  • Mandate is registered in NPCI’s NPCI-eMandate system within hours.
  • Lender receives UMRN.

Once registered, eNACH mandates work identically to paper NACH for presentation purposes.

Vendor implementation: Digio DigiCollect, Razorpay, Cashfree, Setu, Decentro.

For amounts within UPI AutoPay limits (NPCI-defined; periodically revised), UPI AutoPay provides:

  • Real-time mandate registration via UPI app.
  • Real-time debit attempts (vs NACH’s T+1).
  • Lower bounce rate.

Increasingly used in addition to NACH for backup mandate.

What the platform’s NACH adapter must do

Section titled “What the platform’s NACH adapter must do”
  • Presentation file generation per sponsor-bank format.
  • Submission via SFTP / API per sponsor bank.
  • Ack file processing with bounce-reason code interpretation.
  • Re-presentation logic per policy.
  • Mandate lifecycle management (registration → active → cancelled).
  • UMRN persistence per loan / borrower.
  • Sponsor bank failover if multi-sponsor-bank arrangement.
  • NPCI procedural guidelines govern format and operations.
  • RBI Payment System Data Storage — payment data in India.
  • DPDP — borrower data in mandate handled with consent.