ach

Moov ACH

moov-io/ach

GitHub Running Configuration

Moov ACH implements a low level Automated Clearing House (ACH) interface for parsing, creating, validating, and merging ACH files. Moov ACH exposes an HTTP API for REST based interaction. Any language which can use HTTP and JSON can leverage the ACH Server. The API’s endpoints expose both text and JSON to easily ingest or export either format.

Running Moov ACH Server

Moov ACH can be deployed in multiple scenarios.

Binary Distribution

Download the latest Moov ACH server release for your operating system and run it from a terminal.

For macOS / Linux users:

$ ./ach-darwin-amd64
ts=2019-06-20T23:23:44.870717Z caller=main.go:75 startup="Starting ach server version v1.3.1"
ts=2019-06-20T23:23:44.871623Z caller=main.go:135 transport=HTTP addr=:8080
ts=2019-06-20T23:23:44.871692Z caller=main.go:125 admin="listening on :9090"

For Windows users:

> ach.exe
ts=2019-06-20T23:23:44.870717Z caller=main.go:75 startup="Starting ach server version v1.3.1"
ts=2019-06-20T23:23:44.871623Z caller=main.go:135 transport=HTTP addr=:8080
ts=2019-06-20T23:23:44.871692Z caller=main.go:125 admin="listening on :9090

Next Connect to Moov ACH

Docker Container

Moov ACH is dependent on Docker being properly installed and running on your machine. Ensure that Docker is running. If your Docker client has issues connecting to the service review the Docker getting started guide if you have any issues.

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Execute the Docker run command

$ docker run -p 8080:8080 -p 9090:9090 moov/ach:latest
ts=2019-06-21T17:03:23.782592Z caller=main.go:69 startup="Starting ach server version v1.3.1"
ts=2019-06-21T17:03:23.78314Z caller=main.go:129 transport=HTTP addr=:8080
ts=2019-06-21T17:03:23.783252Z caller=main.go:119 admin="listening on :9090"

Next Connect to Moov ACH

Command Line

On each release there’s a achcli utility released. This tool can display ACH files in a human-readable format which is easier to read than their plaintext format.

$ wget -O achcli https://github.com/moov-io/ach/releases/download/v1.4.0/achcli-darwin-amd64 && chmod +x achcli

$ achcli test/testdata/ppd-debit.ach
Describing ACH file 'test/testdata/ppd-debit.ach'

  Origin     OriginName    Destination  DestinationName       FileCreationDate  FileCreationTime
  121042882  My Bank Name  231380104    Federal Reserve Bank  190624            0000

  BatchCount  BlockCount  EntryAddendaCount  TotalDebitAmount  TotalCreditAmount
  1           1           1                  100000000         0

  BatchNumber  Type  ServiceClass  Addendas  TotalDebits  TotalCredits
  1            PPD   225           1         100000000    0

    TxCode  AccountNumber      Amount     Name                    TraceNumber      Category
    27      12345678           100000000  Receiver Account Name   121042880000001

Connecting to Moov ACH

The Moov ACH service will be running on port 8080 (with an admin port on 9090).

Confirm that the service is running by issuing the following command or simply visiting the url in your browser localhost:8080/ping

$ curl http://localhost:8080/ping
PONG

$ curl http://localhost:8080/files
{"files":[],"error":null}

You can also send an example PPD ACH file we have to any ACH service or read through HTTP examples in Ruby and Go.

API documentation

See our API documentation for Moov ACH endpoints.

ACH Admin Port

The port 9090 is bound by ACH for our admin service. This HTTP server has endpoints for Prometheus metrics (GET /metrics), readiness (GET /ready) and liveness checks (GET /live).

Getting Help

channel info
GitHub Project 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 moov-users+subscribe@googlegroups.com. 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 a problem please open a GitHub Issue under the specific project that caused the error.
moov-io slack Join our slack channel (#ach) to have an interactive discussion about the development of the project.