{"id":28972351,"url":"https://github.com/dwilkins/nacha","last_synced_at":"2025-07-07T00:08:11.333Z","repository":{"id":50933119,"uuid":"84679298","full_name":"dwilkins/nacha","owner":"dwilkins","description":"ACH Parser implemented in Ruby","archived":false,"fork":false,"pushed_at":"2025-06-24T02:29:39.000Z","size":256,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-24T11:02:38.696Z","etag":null,"topics":["ach","banking-formats","metaprogramming","nacha","rspec","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dwilkins.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-03-11T20:55:51.000Z","updated_at":"2025-06-24T02:29:43.000Z","dependencies_parsed_at":"2025-06-08T23:19:05.784Z","dependency_job_id":"90e9e5ca-d2be-4f01-a375-9cd741168ea4","html_url":"https://github.com/dwilkins/nacha","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dwilkins/nacha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwilkins%2Fnacha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwilkins%2Fnacha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwilkins%2Fnacha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwilkins%2Fnacha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwilkins","download_url":"https://codeload.github.com/dwilkins/nacha/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwilkins%2Fnacha/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261658586,"owners_count":23191088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ach","banking-formats","metaprogramming","nacha","rspec","ruby"],"created_at":"2025-06-24T11:02:18.695Z","updated_at":"2025-07-07T00:08:11.318Z","avatar_url":"https://github.com/dwilkins.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nacha\n\nValidating Ruby ACH parser and generator\n\nFormat documentation here: http://achrulesonline.org/\n\nThe definition of the records exactly mirrors the NACHA documentation so that\ndevelopment and business can use the same terminology.\n\nWork in progress - contributors welcome.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'nacha'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install nacha\n\n## Usage\n\nAPI may change at any time.   Pull requests welcomed\n\n\n\n```ruby\n    ach_string = \"101 124000054 1240000540907021214A094101ZIONS FIRST NATIONAL BAZIONS FIRST NATIONAL BA       1\"\n    ach_records = Nacha::Parser.parse_string(ach_string)\n    ach_records[0].class  # =\u003e Nacha::Record::FileHeaderRecord\n\n    ach_records[0].to_json\n```\n```json\n{\n  \"record_type_code\": \"1\",\n  \"priority_code\": 1,\n  \"immediate_destination\": \"124000054\",\n  \"immediate_origin\": \"124000054\",\n  \"file_creation_date\": \"2009-07-02\",\n  \"file_creation_time\": \"1214\",\n  \"file_id_modifier\": \"A\",\n  \"record_size\": \"094\",\n  \"blocking_factor\": \"10\",\n  \"format_code\": \"1\",\n  \"immediate_destination_name\": \"ZIONS FIRST NATIONAL BA\",\n  \"immediate_origin_name\": \"ZIONS FIRST NATIONAL BA\",\n  \"reference_code\": \"       1\"\n}\n```\n\n## Parse an ach file into an HTML file\n\n```\nnacha parse ach_file.ach \u003e ach_file.html`\n```\n\n## Discussion\n\n* Nacha::Record::Base defines a class method `nacha_field`\n* Each ACH record class defines its fields using `nacha_field`\n* Based on the information provided by `nacha_field` a regex matcher\n  for different record types can be built out of the constant parts\n  of the ACH record.\n* Each ACH record has a \"RecordType\" mixin that specifies the record\n  types that can follow this record.\n\nParsing starts by looking for a default record type 'Nacha::Record::FileHeader'\nWhen that is found, the valid child record types for 'Nacha::Record::FileHeader'\nare gathered and the subsequent lines are parsed using only those types\n\nWhen a record is created, the fields for the instance are created from\nthe field definitions.\n\n## Development\n\nAfter checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/dwilkins/nacha.\n\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwilkins%2Fnacha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwilkins%2Fnacha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwilkins%2Fnacha/lists"}