moov-io / ach

ACH implements a reader, writer, and validator for Automated Clearing House (ACH) files. The HTTP server is available in a Docker image and the Go package is available.
https://moov-io.github.io/ach/
Apache License 2.0
459 stars 152 forks source link

Standardize ABA RTN (Routing transit number) #170

Closed wadearnold closed 6 years ago

wadearnold commented 6 years ago

Motivation: Multiple ACH Record Formats require ABA RTN (Routing Transit Number)) commonly referred to as a Routing Number or MICR number for sending and receiving funds.

The ACH record format specification for a routing number is slightly different in each record type.

The new data type will consistently be as follows:

Impact: This will be a breaking change to the current API and documentation. Development should be on a .2 branch of the library. In many cases, functions require an int and will now require a string.

Implementation: Where possible the RTN number will be exported rather than the underlying NACHA field specification. The library will convert, format, and validate the inputted RTN into the expected field level values for the record type.

Function calls should handle strings of length 8,9,10 where possible:

chris-griffin commented 6 years ago

Not much utility, but for what it is worth, the first two digits of the nine digit RTN must be in the ranges 00 through 12, 21 through 32, 61 through 72, or 80.

wadearnold commented 6 years ago

@chris-griffin I wouldn't have added that to the validator but will. We're trying to make the API language interface so that they can just send an RTN and we will handle the rest. Appreciate you chiming in!