NACHA file generator
Create a NACHA file free from a CSV or Excel list of payments. The totals, entry hash and padding are worked out for you.
1Your bank and company
Your bank gives you these values when it sets you up to send ACH files. If you are not sure of one, ask your bank.
A prenote moves no money. It checks that each account is open and can take ACH payments. You can send the real payment on the third banking day after the prenote settles, if no return and no Notification of Change (NOC) comes back. How an ACH prenote works
2Payments
- Payment 1
3Create the file
Your bank may need extra settings. Some banks want a balancing entry, their own company ID format or an upper-case file. Test with your bank before sending real payments.
Free. No signup. Your payments are built in your browser. This site does not upload them.
How to use the NACHA file generator
- Enter your bank and company details. Your bank gives you these when it sets you up to send ACH files.
- Add your payments. Upload a CSV or Excel file, or type them in. Download the CSV or Excel template to see the headings. If the generator cannot tell which column holds a detail it needs, it asks you to match your columns. An uploaded list of more than 5 payments is shown as a table, 50 rows at a time. Choose “Edit” on a row to change it.
- Create the file. The generator checks every routing number and amount, builds the file, and runs it through the validator.
- Download it and send a test to your bank before you send real payments.
What you need from your bank
| Field | What it is |
|---|---|
| Your bank’s routing number | The 9-digit number of the bank you send the file to. It goes in “Immediate Destination” |
| Immediate origin | A 9 or 10 character ID that says who sent the file. Banks often use your company ID |
| Company ID | The 10-character ID your bank assigned to you. It is often 1 followed by your EIN |
| Payment type (SEC code) | PPD for people, CCD for businesses |
| Entry description | Up to 10 characters shown to the receiver, such as PAYROLL or RENT |
| Effective date | The banking day you want the payments to settle |
Since March 20, 2026, Nacha rules ask for the description PAYROLL on direct deposits of wages and salaries.
The CSV and Excel templates
Both templates have the same 8 headings and two made-up payments. Replace those rows with your own payments. The Excel template has the routing number, account number and ID columns formatted as text, so a 0 at the start of a number is kept. When Excel opens the CSV template, it can remove those zeros.
| Heading | What to put in it |
|---|---|
| name | Name of the person or business, up to 22 characters |
| routing_number | 9-digit routing number |
| account_number | Up to 17 characters |
| account_type | checking or savings |
| type | credit (you pay them) or debit (you collect from them) |
| amount | Dollars and cents, such as 1250.00 |
| id_number | Optional. An employee or customer number, up to 15 characters |
| note | Optional. A note of up to 80 characters, sent as an addenda record |
When your file has other headings
You do not need to rename your headings. The generator knows many common ones, such as “Vendor Name”, “Payee”, “Acct #”, “Account No”, “ABA Number”, “Bank Routing Number”, “Payment Amount” and “Net Pay”. If it cannot tell which column holds a detail it needs, it shows a “Match your columns” box. A column it does not know is not used. If no column was read as credit or debit, or as the account type, the message after loading says so and names the columns that were not used. In the box:
- Choose the column of your file for each detail. Under each choice you see the first two values of that column, so you can check it.
- If your file has no credit or debit column, the box asks you to choose “All are credits (you pay)” or “All are debits (you collect)”.
- Every check still runs on the columns you chose. For example, a routing number that fails the bank checksum, or an amount with more than 2 decimal places, is still found.
- This site does not upload your file, and your choices are not saved.
What the generator works out for you
- The transaction code for each payment (22 or 27 for checking, 32 or 37 for savings). In a prenote file the codes are 23 or 28 for checking and 33 or 38 for savings.
- A trace number for each payment, in ascending order.
- The service class code: 220 for credits only, 225 for debits only, 200 for a mix.
- The entry count, entry hash and debit and credit totals.
- The block count and the padding lines of 9s.
Make a prenote file
A prenote is a zero-dollar test entry. It moves no money. Before you send the first real payment, it checks that each account is open and can take ACH payments. Prenotes are optional.
Tick “Make this a prenote file (zero-dollar test entries)” in step 1. The generator then writes every payment in your list as a prenote:
| Account | Prenote credit (you will pay them) | Prenote debit (you will collect) |
|---|---|---|
| Checking | 23 | 28 |
| Savings | 33 | 38 |
- Every amount is zero, and so are the totals. The amount column of your list is not used.
- Everything else is written as for real payments: names, routing numbers, account numbers and your company details.
- You can send the real payment on the third banking day after the prenote settles, if no return and no Notification of Change comes back.
- For the real payments, untick the box and create the file again.
Ask your bank whether it accepts prenote files from you. See ACH prenote for how a prenote works and what the answers mean. A prenote is one of several ways to check an account. ACH account verification compares them.
Common mistakes and how to fix them
- Leading zeros lost in Excel. Format the routing and account columns as text before you type the numbers, or start from the Excel template. The generator restores a missing leading zero on an 8-digit routing number. It cannot know whether an account number lost a 0, so it warns you when an Excel file stores account numbers as numbers.
- You may only debit with permission. Before you collect money from anyone, get a signed ACH authorization form.
- Sending the file without a test. Banks differ. Some need a balancing entry or a different origin ID.
- Using yesterday’s date. A past effective date settles at the next opportunity, which can mean Same Day ACH and its fee.
Questions and answers
How do I create a NACHA file?
Enter the details your bank gave you (its routing number, your origin ID and your company ID), add your payments by uploading a CSV or Excel file or typing them in, and choose "Create ACH file". The generator builds the file header, batch, entries and control records, checks the file, and lets you download it.
How do I create a NACHA file from Excel?
Put one payment per row, with the headings in the first row. Save the workbook and upload it here. You can keep your own headings. If the generator cannot tell which column holds a detail it needs, it asks you to match your columns. Or start from the Excel template. Its routing number, account number and ID columns are already formatted as text, so zeros at the start of a number are kept.
Is there a NACHA file template for Excel?
Yes. Choose "Download Excel template" in step 2. It has the 8 headings and two made-up payments. The routing number, account number and ID columns are formatted as text down to row 1001, so Excel keeps a 0 at the start of a number you type there. Replace the made-up rows with your payments, save the file and upload it. The template is made in your browser.
Can I create a NACHA file from QuickBooks?
This tool does not connect to QuickBooks. Export your list of bills or paychecks from QuickBooks to Excel or CSV. Add each payee's routing number and account number if the export does not have them. Then upload the file here. If the generator cannot tell which column holds a detail it needs, it asks you to match your columns.
Is this NACHA file generator free?
Yes. It is free, with no signup and no limit on the number of files.
Are my payments uploaded?
No. The file is built in your browser. This site does not upload the names, account numbers or amounts.
Which kinds of payments can it make?
PPD files for payments to or from people, such as payroll and consumer bills, and CCD files for payments to or from businesses, such as vendor payments. Each file has one batch. Credits and debits can be mixed. It can also make a prenote file of zero-dollar test entries.
Can it make an ACH prenote credit or prenote debit file?
Yes. Tick "Make this a prenote file (zero-dollar test entries)". Every payment in your list becomes a zero-dollar test entry. A prenote credit gets transaction code 23 for a checking account or 33 for a savings account. A prenote debit gets 28 for checking or 38 for savings. A prenote moves no money. It checks that each account is open and can take ACH payments. You can send the real payment on the third banking day after the prenote settles, if no return and no Notification of Change (NOC) comes back.
Sources
- ACH file details (record layouts), Nacha
- ACH file overview (padding, service class codes, trace numbers), Nacha
- Company Entry Descriptions (PAYROLL and PURCHASE, effective March 20, 2026), Nacha
- NACHA File Specifications, First Citizens Bank
- How ACH works (prenotifications), Nacha
- 2024 ACH Quick Reference Guide for corporate users (prenote timing, Subsection 2.6.2), EPCOR, hosted by Busey Bank
- Keeping leading zeros and large numbers (Excel), Microsoft
General information, not legal or financial advice. Rules change and banks set their own requirements. Check with your bank before you act. ACH Forms is not affiliated with Nacha.