Skip to content

Releases: moov-io/ach

Release v1.4.4

04 Aug 21:59
Compare
Choose a tag to compare

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

23 Jul 20:50
Compare
Choose a tag to compare

BUILD

  • build: upload achcli binaries on each release

Release v1.4.2

23 Jul 16:49
Compare
Choose a tag to compare

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

09 Jul 17:47
Compare
Choose a tag to compare

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

09 Jul 17:40
Compare
Choose a tag to compare
Release v1.4.1-rc1 Pre-release
Pre-release
release v1.4.1-rc1

v1.4.0

29 Jun 16:30
Compare
Choose a tag to compare

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 the ImmediateOrigin file header field
  • BypassOriginValidation: Skip validation for the ImmediateOrigin file header field and allow custom TraceNumber values
  • BypassDestinationValidation: Skip validation for the ImmediateDestination file header field and allow custom TraceNumber 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 parsed time.Time values of EffectiveEntryDate
  • 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 calling Create()
  • 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 Ç with C 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

26 Jun 23:25
Compare
Choose a tag to compare
v1.4.0-rc3 Pre-release
Pre-release
release v1.4.0-rc3

v1.4.0-rc1

23 Mar 21:12
Compare
Choose a tag to compare

v1.3.1

22 Jan 19:50
Compare
Choose a tag to compare

BUG FIXES

  • api,client: There was a mistaken character in the OpenAPI docs Ç which should have been C.

IMPROVEMENTS

  • build: upgrade golang.org/x/crypto

BUILD

  • build: run sonatype-nexus-community/nancy in CI

v1.3.0

20 Jan 22:49
Compare
Choose a tag to compare

Docker Hub

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