How to Extract Party Names from Bank Statement Narrations: HDFC, ICICI and SBI Formats Decoded (2026)
The counterparty is always in the narration, but every bank hides it differently. How to read HDFC's hyphen segments, ICICI's coded prefixes and SBI's transfer strings, and what breaks when you try to automate it with formulas.
Everything a party ledger needs is already in the bank statement. The counterparty's name, their UPI handle, sometimes their bank and account hints, all of it sits inside the narration column. The problem is that each bank encodes it differently, none of them document the format, and the format is not even consistent within one bank across channels.
This guide decodes the narration structures of the three banks Indian CAs see most, HDFC, ICICI and SBI, shows where the party name actually sits in each, and is honest about where formula-based extraction stops working and pattern-based automation has to take over.
Anatomy of a Narration
A narration is the bank's internal log line for a transaction, built by concatenating fields: the channel (UPI, NEFT, IMPS, POS, ATM), a reference number, the counterparty as the channel knew it, and a free-text remark typed by whoever initiated the payment.
Three properties make narrations painful to parse:
The delimiter is not stable. One bank uses hyphens, another slashes, a third mixes both in the same statement depending on the transaction channel.
The party field moves. In a UPI narration the name might be segment two; in a NEFT narration from the same bank it might be segment three or four.
The name is whatever the channel had. A UPI transfer carries the name registered on the payer's UPI app, truncated to whatever length the bank's core system allows. So GREENOTE TECHNOLOGIES PRIVATE LIMITED becomes GREENOTE TECHNOLOG, and Rajesh Kumar becomes RAJESH K or just his VPA, rajesh.k@okaxis.
HDFC: Hyphen-Delimited Segments
HDFC narrations join their fields with hyphens. A typical UPI debit looks like:
UPI-RAJESH KUMAR-RAJESH.K@OKAXIS-YESB0XXXXXX-512345678901-PAYMENT FOR INVOICE
Reading left to right: channel, counterparty name, counterparty VPA, counterparty bank IFSC, the UPI reference (RRN), and the payer's free-text remark. The party name is the second segment, and the VPA in the third segment is gold: it is a far more stable identifier for merging name variants than the name itself.
NEFT and IMPS rows from HDFC keep the hyphen convention but reorder the fields, putting the reference and bank details earlier and the name later. And this is exactly the catch with formula-based extraction: "split on hyphen, take segment two" works for the UPI rows and quietly returns an IFSC code for the NEFT rows.
For the full statement layout (columns, date format, export steps), see the HDFC statement guide.
Worth knowing
Hyphens also appear inside legitimate names and remarks (S-MART, EMI-PAYMENT). Splitting blindly on every hyphen will shear some names in half; a parser has to know each channel's expected segment count.
ICICI: Coded Prefixes
ICICI narrations announce the channel with a coded prefix and then use slash-delimited fields. The prefixes you will meet most often:
| Prefix | Channel | Where the party usually sits |
|---|---|---|
| UPI/ | UPI transfer | Name or VPA in the trailing segments |
| MMT/IMPS/ | IMPS transfer | Name after the reference number |
| BIL/ | Internal or bill transfer | Name or account label in the trailing segment |
| INF/ | Internal fund transfer | Account label, often the client's own other account |
| VIN/ and VPS/ | Card / POS variants | Merchant name |
A typical ICICI UPI narration:
UPI/512345678901/Payment for inv/rajesh.k@okaxis/RAJESH KUMAR
Here the reference number comes early and the human-readable name sits at the tail. Note the traps: the remark ("Payment for inv") is a free-text field that can contain anything, including slashes, and INF/ rows are usually the client moving money between their own accounts, which should land in a contra bucket rather than appearing as a third-party payment.
Column layout and export steps are covered in the ICICI statement guide.
Pro tip
Treat INF/ and self-VPA transfers as candidates for contra classification before anything else. The largest "party" on many ICICI statements turns out to be the client themselves.
SBI: Transfer Strings
SBI wraps most narrations in TO TRANSFER or BY TRANSFER phrasing: TO TRANSFER for money going out, BY TRANSFER for money coming in. The party details follow, delimited inconsistently by slashes, asterisks or hyphens depending on the channel:
TO TRANSFER-UPI/DR/512345678901/RAJESH K/YESB/rajesh.k@ok/payment
**BY TRANSFER-NEFT*ICIC0XXXXXX*N512345678901*GREENOTE TECHNOLOG**
Two SBI-specific behaviours to know. First, names are truncated aggressively, often to a dozen characters, so GREENOTE TECHNOLOG is as good as it gets and merging depends on other anchors. Second, older SBI exports and passbook prints sometimes drop the counterparty entirely, leaving only a reference number; those rows are honest suspense entries no matter how good your extraction is.
Export steps and format quirks are in the SBI statement guide.
The Real Problem: One Party, Many Spellings
Suppose the extraction went perfectly and you now have a party string for every row. You are still not done, because the same counterparty appears as:
- RAJESH KUMAR (NEFT, full name from his bank)
- RAJESH K (SBI truncation)
- rajesh.k@okaxis (UPI narration that carried only the VPA)
- RAJESHKUMAR9876 (his VPA's local part, digits included)
A party ledger that counts these as four parties is worse than no party ledger: totals are split, patterns are hidden, and the out-and-back loan you should have caught is spread across two half-parties. Merging them takes anchors (the VPA is the strongest one), normalisation (case, spacing, punctuation), and a rule for when NOT to merge, because RAJESH KUMAR and RAKESH KUMAR are different people and an aggressive fuzzy match will happily unite them.
This merge step, not the splitting, is where manual and formula-based approaches genuinely run out of road. Our party ledger guide covers what the finished ledger should look like once merging is done right.
The Excel Route, and Where It Breaks
For a single bank and a disciplined statement, you can get surprisingly far with modern Excel:
- TEXTSPLIT the narration on the bank's primary delimiter (hyphen for HDFC, slash for ICICI).
- Use IFS on the first segment (UPI, NEFT, IMPS, MMT, BIL) to pick which split-segment holds the party for that channel.
- SUBSTITUTE and TRIM to normalise case, stray punctuation and double spaces.
- Pivot on the cleaned party column: count, sum of debits, sum of credits, net.
Pro tip
If you build this, keep the raw narration column untouched next to your extracted party column. When a formula misfires, the reviewer needs to see the original string without re-downloading the statement.
When to Stop Writing Formulas
The formula sheet works until it meets reality: a second bank with a different delimiter, a channel the IFS ladder does not cover, a name with a hyphen in it, a remark with a slash in it, or the name-variant problem, which formulas cannot solve at all because it needs cross-row reasoning.
This is the layer Greenote Lite automates. It ships with narration parsers for each major bank's formats, extracts the party per channel rather than per delimiter, merges variants using anchors like VPAs, and puts everything it could not confidently attribute under an explicit Suspense heading instead of guessing. Upload an Excel or CSV statement and the party ledger is the first sheet of the workbook you get back; the first statement is free.
Conclusion
Narration parsing is one of those problems that looks like an afternoon of Excel and turns into a maintenance burden: every bank, every channel and every format drift adds another branch to the formula tree, and the name-variant merge never fits in a formula at all.
Understand the formats (second segment for HDFC UPI, trailing fields for ICICI, transfer strings for SBI), keep the raw narration visible in your working papers, and automate the moment you are parsing more than one bank regularly. The statement already contains every answer; the job is extracting them without introducing new errors along the way.
Frequently asked questions
Where is the party name in an HDFC bank statement narration?
In HDFC UPI narrations the counterparty name is usually the second hyphen-delimited segment, followed by their UPI VPA in the third. NEFT and IMPS narrations reorder the fields, so the name shifts position by channel, which is why a single split-and-pick formula misfires on mixed statements.
What do MMT, BIL and INF mean in ICICI narrations?
They are ICICI channel prefixes: MMT/IMPS marks IMPS transfers, BIL marks bill or internal transfers, and INF marks internal fund transfers, which are usually the client moving money between their own accounts and often belong in a contra bucket rather than a party ledger.
Why does the same person appear under multiple names in a statement?
Each channel records the name it happens to hold: the payer's UPI app registration, a truncated core-banking field, or just the VPA. So one counterparty can appear as a full name, a truncated name and a UPI handle. A party ledger is only accurate after these variants are merged, ideally anchored on stable identifiers like the VPA.
Can Excel extract party names from bank narrations?
For one bank and one channel, yes: TEXTSPLIT on the bank's delimiter plus an IFS ladder per channel gets you a usable party column. It breaks on mixed channels, names containing delimiter characters, second banks, and the name-variant merge, which needs cross-row logic formulas cannot express.
How does Greenote Lite handle narrations it cannot parse?
Rows whose counterparty cannot be confidently extracted go under an explicit Suspense or Unknown heading, visible and countable in the output, rather than being force-matched to the nearest similar name. Honest uncertainty is easier to review than confident guessing.
See it on your own statement
Upload an Excel or CSV bank statement and get back a party ledger, categorised transactions and an ITR-ready summary. First statement free. Files are processed and deleted, never stored.
Keep reading
UPI Narrations Explained: Turning VPAs into Party Names for Ledger Scrutiny (2026)
Half of a modern bank statement is UPI rows, and the counterparty is hiding in the VPA. How to read UPI handles, tell people from merchants, use the RRN, and build a party ledger from UPI-heavy statements.
Bank Statement Red Flags: 12 Patterns Every CA Should Catch in Ledger Scrutiny (2026)
A working list of twelve red-flag patterns to hunt for in every client bank statement: what each looks like in a raw date-wise export, why a party-wise rollup is what exposes it, and the first action to take.
Ledger Scrutiny Checklist for Finalisation (2026): What to Verify Before You Sign
A stage-by-stage checklist a practising CA can print and run before signing a finalisation or tax audit, from statement completeness and the party-wise rollup to the Section 269 cash-law tests, AIS and SFT tie-out, and suspense clearance.