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
454 stars 150 forks source link

Addenda Transaction Type is case sensitive but that is not a NACHA requirement #1126

Closed kmyers94 closed 1 year ago

kmyers94 commented 1 year ago

ACH Version

1.18.5

What were you trying to do?

Receiving an Addenda 10 record the transaction type can be lowercase. However, validation disallows lowercase entries.

https://github.com/moov-io/ach/blob/4b6da1cc19af79a153e1b9a98ce6b0159ea52c86/validators.go#L396L403

What did you expect to see?

Lowercase Transaction Type codes to be allowed

What did you see?

line:4 record:Addenda ach.FieldError TransactionTypeCode mis is an invalid Addenda10 Transaction Type Code line:14 record:Batches ach.BatchError batch #20 (IAT) FieldError Addenda10 is a mandatory field and has a default value

How can we reproduce the problem?

Process an Addenda 10 with a lower case MIS as the transaction type

adamdecaf commented 1 year ago

Thanks for reporting this bug. My copy of the Nacha rules states they should be in uppercase, but the real world is always different. We're just going to convert those to uppercase for the validation. That way you can read the exact bytes that was sent.

I noticed that a few codes are missing which are valid in the 2021 rules, so I've added those as well.

Can you take a look at https://github.com/moov-io/ach/pull/1128 ?

kmyers94 commented 1 year ago

Interesting, our copy makes no mention of case sensitivity at all. 🤷 I was going to put a PR up this morning but moov is on the ball! Thanks a bunch!

adamdecaf commented 1 year ago

This has been released https://github.com/moov-io/ach/releases/tag/v1.22.2