Giter VIP home page Giter VIP logo

ach's Introduction

moov-io/ach

GoDoc Build Status Coverage Status Go Report Card Apache 2 licensed

Package github.com/moov-io/ach implements a file reader and writer written in Go along with a HTTP API for creating, parsing and validating Automated Clearing House (ACH) files. ACH is the primary method of electronic money movement throughout the United States.

Docs: docs.moov.io | api docs

Project Status

Moov ACH is under active development and in production for multiple companies. Please star the project if you are interested in its progress. We've built an HTTP API for ACH file creation and validation. Currently we support generating and parsing all Standard Entry Class (SEC) codes. If you have layers above ACH to simplify tasks or found bugs we would appreciate an issue or pull request. Thanks!

Usage

Go library

github.com/moov-io/ach offers a Go based ACH file reader and writer. To get started checkout a specific example:

Supported Standard Entry Class (SEC) codes
SEC Code Name Read Example Write Example
ACK Acknowledgment Entry for CCD Link Link
ADV Automated Accounting Advice Link Link
ARC Accounts Receivable Entry Link Link
ATX Acknowledgment Entry for CTX Link Link
BOC Back Office Conversion Link Link
CCD Corporate credit or debit Link Link
CIE Customer-Initiated Entry Link Link
COR Automated Notification of Change(NOC) Link Link
CTX Corporate Trade Exchange Link Link
DNE Death Notification Entry Link Link
ENR Automatic Enrollment Entry Link Link
IAT International ACH Transactions Link Link
MTE Machine Transfer Entry Link Link
POP Point of Purchase Link Link
POS Point of Sale Link Link
PPD Prearranged payment and deposits Link Link
RCK Represented Check Entries Link Link
SHR Shared Network Entry Link Link
TRC Check Truncation Entry Link Link
TRX Check Truncation Entries Exchange Link Link
TEL Telephone-Initiated Entry Link Link
TRC Truncated Check Entry Link Link
WEB Internet-initiated Entries Link Link
XCK Destroyed Check Entry Link Link

HTTP API

github.com/moov-io/ach/server offers a HTTP and JSON API for creating and editing files. If you're using Go the ach.File type can be used, otherwise just send properly formatted JSON. We have an example JSON file, but each SEC type will generate differnet JSON.

Examples: Go | Ruby

Getting Started

From Source

This project uses Go Modules and thus requires Go 1.11+. You can download the source code and we offer tagged and released versions as well. We highly recommend you use a tagged release for production.

$ [email protected]:moov-io/ach.git

# Pull down into the Go Module cache
$ go get -u github.com/moov-io/ach

$ go doc github.com/moov-io/ach BatchHeader

Configuration

Environmental Variable Description Default
ACH_FILE_TTL Time to live (TTL) for *ach.File objects stored in the in-memory repository. 0 = No TTL / Never delete files (Example: 240m)

Getting Help

If you have ACH specific questions NACHA (National Automated Clearing House Association) has their complete specification for all file formats and message types.

channel info
Project Documentation Our project documentation available online.
Google Group moov-users The Moov users Google group is for contributors other people contributing to the Moov project. You can join them without a google account by sending an email to [email protected]. After receiving the join-request message, you can simply reply to that to confirm the subscription.
Twitter @moov_io You can follow Moov.IO's Twitter feed to get updates on our project(s). You can also tweet us questions or just share blogs or stories.
GitHub Issue If you are able to reproduce an problem please open a GitHub Issue under the specific project that caused the error.
moov-io slack Join our slack channel to have an interactive discussion about the development of the project. Request an invite to the slack channel

Supported and Tested Platforms

  • 64-bit Linux (Ubuntu, Debian), macOS, and Windows
  • Rasberry Pi

Note: 32-bit platforms have known issues and are not supported.

Contributing

Yes please! Please review our Contributing guide and Code of Conduct to get started!

Note: This project uses Go Modules, which requires Go 1.11 or higher, but we ship the vendor directory in our repository.

Releasing

To make a release of ach simply open a pull request with CHANGELOG.md and version.go updated with the next version number and details. You'll also need to push the tag (i.e. git push origin v1.0.0) to origin in order for CI to make the release.

Fuzzing

We currently run fuzzing over ACH in the form of a moov/achfuzz Docker image. You can read more or run the image and report crasher examples to [email protected]. Thanks!

License

Apache License 2.0 See LICENSE for details.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.