How to create a NACHA ACH file from Excel

Blog · 2026-10-02 · 2 min read

Free tool: Open the free NACHA file generator – runs in your browser, files are not uploaded.

US banks that offer ACH origination usually let you upload a NACHA-formatted file to pay many people at once – payroll (direct deposit) or suppliers. A NACHA file is plain text: every line ("record") is exactly 94 characters, and the position of each character matters.

1. What your spreadsheet needs

ColumnNotes
NameReceiver's name; only 22 characters fit in the entry record.
Routing number9-digit ABA routing number of the receiver's bank.
Account numberUp to 17 characters.
Account typeChecking or savings – it changes the transaction code.
AmountIn dollars; stored in cents with no decimal point.
ID (optional)Employee or invoice number, up to 15 characters.

You also need details your bank gives you when it enables ACH: the immediate destination (usually the bank's routing number), your company ID (often "1" followed by your 9-digit EIN, but use exactly what the bank tells you) and the SEC code: PPD for payments to consumers (payroll) or CCD for payments to businesses.

2. The five record types

RecordStarts withPurpose
File header1Who the file is for and from, creation date and time
Batch header5Service class (200 mixed, 220 credits only, 225 debits only), company name and ID, SEC code, entry description (e.g. PAYROLL), effective date
Entry detail6One per payment: transaction code, routing number, account, amount, ID, name, trace number
Batch control8Count of entries, entry hash, total debits and credits
File control9Totals for the whole file and the block count

Optional addenda records (type 7) carry extra remittance information.

3. Transaction codes

22 = credit to a checking account, 27 = debit from checking, 32 = credit to savings, 37 = debit from savings.

4. The three checks banks reject files for

  1. Routing-number check digit. Multiply the nine digits by 3, 7, 1, 3, 7, 1, 3, 7, 1 and add them up; the total must be a multiple of 10. For example 011000015: 0×3 + 1×7 + 1×1 + 0×3 + 0×7 + 0×1 + 0×3 + 1×7 + 5×1 = 20 ✓.
  2. Entry hash. Add up the first 8 digits of every receiver's routing number in the batch and keep the rightmost 10 digits.
  3. Blocking. The number of records must be a multiple of 10; the file is padded with lines of 94 nines.

5. Balanced or unbalanced?

Some banks want an unbalanced file (only the credits; the bank debits your account itself). Others want a balanced file with an offsetting debit to your own account. Ask your bank which one; our generator supports both.

6. Upload, then review

Upload the file in your bank's ACH or "file transfer" section and check the totals in the preview before approving. Test with a small file first.

Free tool: Open the free NACHA file generator – runs in your browser, files are not uploaded.

Sources

Related guides

Published 2026-10-02 by Karuna Labs. Our tools check file structure and checksums; always review outputs (and payment files in your bank's preview) before relying on them. This is general information, not financial, tax or legal advice.