If you run payroll in Nepal, you have probably spent at least one Saturday afternoon hand-fixing a CSV column because your bank’s corporate portal rejected the upload. Each major Nepali bank has its own format conventions, and the formats are picky — wrong column order, missing branch code, or a misplaced delimiter and the entire file is rejected with no row-level error.

This guide covers the five formats we see most often and how to generate them cleanly.

Why each bank has its own format

Nepal’s interbank transfer infrastructure runs on the CIPS (Connect IPS) rails, which provides a settlement layer but doesn’t enforce a single corporate-banking format. Each bank exposes its own file template through its corporate banking portal, and the templates have evolved independently — typically reflecting whichever core banking system the bank runs on (Finacle, T24, FlexCube, or a homegrown system in the case of the smaller banks).

The result is five (and counting) format flavours for what is essentially the same operation: “pay these employees these amounts on this date.”

NMB Bank format

Format: CSV, comma-delimited Required columns (in order):

  • Beneficiary account number
  • Beneficiary name
  • Amount (no currency symbol, two decimal places)
  • Beneficiary branch code (3-digit)
  • Narration / remarks

Header row: required Encoding: UTF-8 without BOM Common rejection reasons:

  • Missing branch code
  • Trailing whitespace in account number
  • Amount with comma as thousand separator

NMB is one of the more forgiving formats and is the default we recommend for new customers if they have a choice of disbursement bank.

NABIL Bank format

Format: Tab-delimited text (.txt or .tsv) Required columns (in order):

  • Account number
  • Beneficiary name (max 50 chars)
  • Amount
  • Branch code
  • Reference number (max 12 chars)

Header row: required, exact column names matter Encoding: UTF-8

NABIL is stricter on character limits in the name and reference fields. Long employee names (especially with diacritical marks) will silently truncate; the upload succeeds but the bank statement shows a truncated payee, which causes reconciliation confusion later.

NIC Asia format

Format: CSV Required columns (in order):

  • Account number
  • Account holder name
  • Amount
  • Branch code (per row, even when all to the same branch)
  • Mobile number (optional but recommended)
  • Email (optional)

Header row: required Encoding: UTF-8 Common gotcha: the per-row branch code is required even when all beneficiaries are at the same branch. Many tools that auto-generate the file omit this when it could be a header-level value.

Can't keep up with employee's
leave emails? Track your employee's leave with Leave Balance
cross icon

EBLL (Everest Bank) format

Format: Positional (fixed-width) text file Layout:

  • Account number: 14 characters, right-padded with spaces
  • Beneficiary name: 35 characters, left-padded
  • Amount: 15 characters, right-aligned, two decimal places, no decimal point (so Rs 50,000.00 = 000000005000000)
  • Branch code: 4 characters
  • Reference: 12 characters

No header row. Each row is a fixed 80-character record. Encoding: ASCII

EBLL is the most error-prone format for hand-edited spreadsheets — one extra space anywhere on the row breaks the entire file. Generation should always be automated.

Prabhu Bank format

Format: CSV with validation digits Required columns:

  • Account number with check digit
  • Beneficiary name
  • Amount
  • Branch
  • Mobile (optional)

Header row: optional but recommended Encoding: UTF-8 Common rejection reason: the check digit on account numbers is recomputed by the bank on upload. If the bank’s check-digit algorithm has been updated and your file uses an old account number, the upload fails with “invalid account.”

Prabhu also rejects files where amounts contain leading zeros formatted as text — a common Excel artefact when account numbers are entered.

How PayrollApp generates these

When you finalise payroll in PayrollApp, the Bank File Generator offers all five formats for the same payroll run. You pick the format that matches your disbursement bank, click export, and download the file ready for upload.

What’s handled automatically:

  • Correct column ordering and delimiter
  • Encoding (UTF-8, ASCII as required)
  • Field truncation with warnings (so long names don’t silently break)
  • Per-row branch codes where required
  • Fixed-width padding for EBLL
  • Check-digit validation for Prabhu
  • Currency formatting (no thousand separators, two decimal places)

What’s not handled:

  • Authorising the upload at the bank — that step still requires a human with corporate banking credentials.

Multi-bank disbursement

Some companies use multiple disbursement banks — primary at NMB, backup at NIC Asia, contractor payments through Prabhu. The bank file generator handles this:

  1. Tag each employee with their preferred disbursement bank in PayrollApp.
  2. Run payroll as normal.
  3. Generate one file per bank — each contains only the employees tagged to that bank.
  4. Upload each file to the corresponding portal.

This setup is also useful for redundancy. If your primary bank’s corporate portal has an outage on payroll day (it has happened to all of them), you can quickly retag affected employees and disburse via the backup.

Can't keep up with employee's
leave emails? Track your employee's leave with Leave Balance
cross icon

Bank file checklist

Before uploading any bank file:

  • All beneficiary account numbers verified (especially after employees update their bank details)
  • All branch codes correct
  • Amounts match the payroll register total
  • No trailing whitespace, no BOM, correct encoding
  • File downloaded and opened in a text editor at least once to spot encoding issues
  • Authoriser available at the bank’s corporate portal during the upload window

The bigger point

Bank file generation is one of those compliance edges where the rules are simple, the formats are picky, and the consequences of getting it wrong are immediate (rejected uploads, delayed salaries, employees calling HR before lunchtime). It is not a problem worth solving by hand each month.

If your team is still copying CSVs out of Excel and editing column headers to match what your bank wants, automate it. The bank file generator in PayrollApp covers all five major Nepali banks today, and we add new formats as customers request them — usually within two weeks of the request.