Skip to content

Free NACHA file generator

Build a valid NACHA file in your browser.

Fill in batches and entries: the builder writes every 94-character record, works out the totals, entry hash and block padding, and checks the file against the NACHA rules as you type. It all runs in your browser; the REST API is optional.

  • Control totals & entry hash
  • Next-banking-day dates
  • Live record preview

Start a file

Begin from a template with example data, or from scratch.

Runs in your browser — nothing is uploadedREST API (optional)

100% in-browser.

What you type never leaves this device.

Generated on your device

JavaScript on this page writes the file. Nothing you enter is uploaded, stored or transmitted.

No account, no key

The builder and the REST API are free. No sign-up, no API key.

Open about usage

Our public analytics count files generated — never what they contain.

0 bytes of your entries are uploaded; the only requests are anonymous counters (a page view, a file generated). Check it yourself in your browser’s developer tools (Network tab).

Calculated for you

The control record, worked out.

Every batch closes with a control record that counts, totals and hashes the entries above it. One wrong digit and the bank rejects the file. The builder computes it from your entries, and shows its work.

Line 07Batch control · from the Payroll template94 characters · 11 fields
07Batch control
822000000400424084820000000000000000008192101234567890 123456780000001
Entry/addenda count
000004
4 entries + 0 addenda records
Entry hash
0042408482
02100002 + 02600959 + 12100024 + 25607497
Total credits
000000819210
$8,192.10 across four credits
  • Routing & IDs
  • Amounts
  • Dates
  • Names & text
  • Codes
  • Reserved

What it handles

The fiddly parts of NACHA, handled.

NACHA files are unforgiving: fixed positions, exact padding, totals that have to agree to the cent. You enter the payments; the builder does the bookkeeping.

  • 01

    Fixed-width field formatting

    Every value padded, justified and uppercased into its exact positions.

  • 02

    Batch and file header/footer generation

    Headers from your settings, control records from your entries.

  • 03

    Control total calculations

    Debit and credit totals for every batch and for the file.

  • 04

    Hash sum calculations

    Routing prefixes summed into the entry hash, last ten digits kept.

  • 05

    Record count tracking

    Entry/addenda counts, batch count and block count, always in step.

  • 06

    Block padding

    Records of nines fill the last block to a multiple of ten.

Why use it

Right the first time, before your bank looks.

Spreadsheets and hand-edited files fail at the bank for small reasons: a stale effective date, a total that’s a cent off, a missing block of nines. The builder catches them while you work.

No. 01

Validation

Comprehensive validation as you type: required fields, formats, routing check digits, effective dates and totals — the same rules the API applies.

No. 02

Automatic calculations

All control totals, hash sums and record counts are calculated automatically, with batch and trace numbers assigned for you.

No. 03

Downloadable files

Download ready-to-use NACHA files (.ach or .txt, LF or CRLF) that can be submitted to financial institutions.

No. 04

A free REST API

The same engine over HTTP. POST the JSON the builder exports to /api/v1/nacha/generate — no API key, no account.

NACHA File Generator API

Generate compliant NACHA files from your own code.

Prefer to automate? Send the same JSON the builder exports to the REST API and get the file back. The builder never needs it.

  • No API key. An X-API-Key header from older clients is accepted and ignored.
  • /generate returns the file; /validate says what’s wrong.
  • Requests are processed in memory, never stored or logged.
Quick start · POST /api/v1/nacha/generate
POST /api/v1/nacha/generate HTTP/1.1
Host: nacha-navigator.com
Content-Type: application/json

{
  "file_header": {
    "immediate_destination": "123456780",
    "immediate_origin": "1234567890"
  },
  "batches": [
    {
      "batch_header": {
        "service_class_code": "200",
        "company_name": "COMPANY ABC",
        "company_id": "1234567890",
        "standard_entry_class": "PPD",
        "company_entry_description": "PAYROLL",
        "originating_dfi_id": "123456780"
      },
      "entries": [
        {
          "transaction_code": "22",
          "receiving_dfi_id": "021000021",
          "dfi_account_number": "123456789",
          "amount": "100000",
          "individual_name": "JOHN DOE"
        }
      ]
    }
  ]
}

The response is the file itself: text/plain, saved as nacha_file.txt.

Related tools

The same private, in-browser approach for the other formats that land on an operations desk.

  • ACH · NACHA files

    NACHA Viewer

    Decode every record field by field, check control totals, hashes and routing check digits, and build reversal files.

    .ach · .txt

  • New

    X9.37 · Image cash letter

    X9 Viewer

    Open X9.37 check image files in your browser: every item’s front and back images, its MICR line and the records behind it.

    .x9 · .x937 · .icl

  • BAI2 · Balance reporting

    BAI2 Viewer

    Turn BAI2 bank reports into readable account summaries and transaction detail, with every type code explained.

    .bai · .bai2 · .txt