Releases: moov-io/ach
Release v1.4.4
BUG FIXES
- entries: detect overflow when printing large amounts
- reader: only parse IAT entries when we're accumulating an IAT batch
IMPROVEMENTS
- achcli: print BatchControl records as well
- achcli: update help/usage text
Release v1.4.3
BUILD
- build: upload achcli binaries on each release
Release v1.4.2
IMPROVEMENTS
- api: add example plaintext file for create route
- docs: flip Usage section priority, link to godocs and examples
- file: include the struct field in Unmarshal errors
BUG FIXES
- api: clarify batchNumber in BatchHeader is an integer
- api: include missing CompanyIdentification field on BatchHeader docs
- api: quote number-looking example values
Release v1.4.1
BUG FIXES
- batch: error if our offset account type is unknown
BUILD
- build: add openshift docker image
- build: enable codeql via github actions
- build: release via Actions, not TravisCI
Release v1.4.1-rc1
release v1.4.1-rc1
v1.4.0
Version v1.4.0 of ACH adds several notable features such as custom validation, a command-line tool achcli
to describe files, and improvements for verifying NACHA compatibility on slightly malformed files. This release also contains enhanced testing and documentation improvements.
Custom Validation
The ACH library (and HTTP server) now supports custom validation with the ValidateOpts
struct by calling File.SetValidation(..)
and Reader.SetValidation(...)
. This offers various options:
RequireABAOrigin bool
: Enable or disable routing number validation over theImmediateOrigin
file header fieldBypassOriginValidation
: Skip validation for theImmediateOrigin
file header field and allow customTraceNumber
valuesBypassDestinationValidation
: Skip validation for theImmediateDestination
file header field and allow customTraceNumber
values
The HTTP server also supports reading this struct with camel-cased names when calling the validation route.
achcli
achcli
is a command-line utility for viewing ACH files in a more human readable format. This tool also allows masking DFIAccountNumber
values with the -mask
flag.
$ achcli -mask 20200601-1002-01.ach
Describing ACH file '20200601-1002-01.ach'
Origin OriginName Destination DestinationName FileCreationDate FileCreationTime
691000134 ASF APPLICATION SUPERVI 091400606 FIRST BANK & TRUST 181017 0306
BatchNumber SECCode ServiceClassCode CompanyName CompanyDiscretionaryData CompanyIdentification CompanyEntryDescription
1 WEB 200 CoinLion 123456789 TRANSFER
TransactionCode RDFIIdentification AccountNumber Amount Name TraceNumber Category
26 09140060 *******89 12354 Paul Jones 091000017611242 Return
Addenda99
ReturnCode OriginalTrace DateOfDeath OriginalDFI AddendaInformation TraceNumber
R01 091400600000001 09100001 091000017611242
BatchCount BlockCount EntryAddendaCount TotalDebitAmount TotalCreditAmount
1 1 1 12354 0
Malformed Files
ACH files with lines that are not 94 characters are now adjusted in-memory (missing or extra spaces) in an attempt to comply with NACHA standards. The underlying file on disk is not modified during this reading.
ADDITIONS
- batches: Add
LiftEffectiveEntryDate()
to offer parsedtime.Time
values ofEffectiveEntryDate
- cmd/server: add version handler to admin HTTP server
- file: add BypassDestinationValidation to ValidateOpts
- file: add
ValidateWith
to override specific default validations - file: support setting ValidateOpts on struct for calling Create()
- reader: morph lines to 94 characters if they end in spaces
- server: read
ValidateOpts
in HTTP validate route - server: return fileID on create errors, enforce marshaled errors as strings
- file: support setting
ValidateOpts
on struct for callingCreate()
- file: struct unmarshaling works again, it was depreciated for a couple releases
- reader: morph lines to 94 characters with spaces if they are some other length
- reader: allow setting ValidateOpts
- cmd/ach: initial setup of CLI tool to pretty print ACH files
BUG FIXES
- all: replace
Ç
withC
across the project - all: use filepath.Join instead of unix paths
- api: fixup flatten files OpenAPI spec
- api: note POST /files/create can return an error
- file: don't validate before flattening batches
- file: keep TraceNumbers when segmenting files
- server: fix segment OpenAPI spec and accept config body
- server: read empty SegmentFileConfiguration
- file: don't validate before flattening batches
IMPROVEMENTS
- api: used shared Error model
- api: use shorter summaries
- api: include AddendaXX, ADV, and IAT records that were missing from OpenAPI spec
- chore(deps): update module prometheus/client_golang to v1.4.1
- chore(deps): update module gorilla/mux to v1.7.4
- reader: write a test for what partial file comes back from invalid EntryDetails
- reader: allow zero-entry files if their controls signify as such
- server: use FoundABug error with mismatched routing
- validators: ensure alpha routing number check digit is invalid
- all: use filepath.Join instead of unix paths
- reader: append a lingering batch even if there's no batch control
BUILD
- chore(deps): update golang docker tag to v1.14
- build: run sonatype-nexus-community/nancy in CI
- build: leverage moov-io/infra's Go linter script
v1.4.0-rc3
release v1.4.0-rc3
v1.4.0-rc1
v1.3.1
v1.3.0
BREAKING CHANGES
ImmediateOrigin
values are written with a leading space instead of a zero (0
) due to post-2013 NACHA guidelines.
BUG FIXES
addenda98
fix parsing with no spaces between routing and account number
ADDITIONS
- Add random names, amounts, and memo lines in test file generation script
cmd/writeACH/main.go