nacha

Version, currently main branch1 version
  • main branchlatestJul 29, 2026

github.com/jwoertink/nacha

A Crystal shard for parsing and generating Nacha (ACH) files

4 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  nacha:
    github: jwoertink/nacha
    branch: main

main is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
>= 1.6.2
License
MIT
Author
Jeremy Woertink

Dependencies

Development Dependencies

  • ameba~> 1.3github: crystal-ameba/amebadev
  • faker*github: askn/faker, branch: masterdev

README

Nacha

The ACH file format (or NACHA file) is a text file with ASCII text lines, where each line is 94 characters long and serves as a “record” to execute domestic ACH payments through the Automated Clearing House Network (NACHA).

  • https://tipalti.com/nacha-file-format/

Here's a few helpful links:

  • https://achdevguide.nacha.org/ach-file-overview
  • https://achdevguide.nacha.org/ach-file-details

This Crystal shard allows you to generate or parse a NACHA file.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      nacha:
        github: jwoertink/nacha
  2. Run shards install

Usage

Still under development, things may change

require "nacha"

entries = [
  Nacha::EntryDetail.new,
  Nacha::EntryDetail.new,
] of Nacha::EntryDetail

batches = [
  Nacha::Batch.new(
    header: Nacha::BatchHeader.new,
    entries: entries,
  ),
] of Nacha::Batch

ach_file = Nacha::File.new(
  header: Nacha::FileHeader.new,
  batches: batches,
)

puts ach_file.generate

Development

  • write code
  • write spec
  • crystal tool format spec/ src/
  • ./bin/ameba
  • crystal spec
  • repeat

Contributing

  1. Fork it (https://github.com/jwoertink/nacha/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors