Categorygithub.com/moov-io/ach
modulepackage
0.6.0
Repository: https://github.com/moov-io/ach.git
Documentation: pkg.go.dev

# README

moov-io/ach

GoDoc Build Status Coverage Status Go Report Card Apache 2 licensed

Package github.com/moov-io/ach implements a file reader and writer written in Go along with a HTTP API for creating, parsing and validating Automated Clearing House (ACH) files. ACH is the primary method of electronic money movement throughout the United States.

Docs: docs.moov.io | api docs

Project Status

Moov ACH is under active development and in production for multiple companies. Please star the project if you are interested in its progress. We've built an HTTP API for ACH file creation and validation. Currently we support generating and parsing all Standard Entry Class (SEC) codes. If you have layers above ACH to simplify tasks or found bugs we would appreciate an issue or pull request. Thanks!

Usage

Go library

github.com/moov-io/ach offers a Go based ACH file reader and writer. To get started checkout a specific example:

Supported Standard Entry Class (SEC) codes
SEC CodeNameRead ExampleWrite Example
ACKAcknowledgment Entry for CCDLinkLink
ADVAutomated Accounting AdviceLinkLink
ARCAccounts Receivable EntryLinkLink
ATXAcknowledgment Entry for CTXLinkLink
BOCBack Office ConversionLinkLink
CCDCorporate credit or debitLinkLink
CIECustomer-Initiated EntryLinkLink
CORAutomated Notification of Change(NOC)LinkLink
CTXCorporate Trade ExchangeLinkLink
DNEDeath Notification EntryLinkLink
ENRAutomatic Enrollment EntryLinkLink
IATInternational ACH TransactionsLinkLink
MTEMachine Transfer EntryLinkLink
POPPoint of PurchaseLinkLink
POSPoint of SaleLinkLink
PPDPrearranged payment and depositsLinkLink
RCKRepresented Check EntriesLinkLink
SHRShared Network EntryLinkLink
TRCCheck Truncation EntryLinkLink
TRXCheck Truncation Entries ExchangeLinkLink
TELTelephone-Initiated EntryLinkLink
TRCTruncated Check EntryLinkLink
WEBInternet-initiated EntriesLinkLink
XCKDestroyed Check EntryLinkLink

HTTP API

github.com/moov-io/ach/server offers a HTTP and JSON API for creating and editing files. If you're using Go the ach.File type can be used, otherwise just send properly formatted JSON. We have an example JSON file, but each SEC type will generate differnet JSON.

Examples: Go | Ruby

Getting Started

From Source

This project uses Go Modules and thus requires Go 1.11+. You can download the source code and we offer tagged and released versions as well. We highly recommend you use a tagged release for production.

$ [email protected]:moov-io/ach.git

# Pull down into the Go Module cache
$ go get -u github.com/moov-io/ach

$ go doc github.com/moov-io/ach BatchHeader

Configuration

Environmental VariableDescriptionDefault
ACH_FILE_TTLTime to live (TTL) for *ach.File objects stored in the in-memory repository.0 = No TTL / Never delete files (Example: 240m)

Getting Help

If you have ACH specific questions NACHA (National Automated Clearing House Association) has their complete specification for all file formats and message types.

channelinfo
Project DocumentationOur project documentation available online.
Google Group moov-usersThe 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 [email protected]. After receiving the join-request message, you can simply reply to that to confirm the subscription.
Twitter @moov_ioYou 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 IssueIf you are able to reproduce an problem please open a GitHub Issue under the specific project that caused the error.
moov-io slackJoin our slack channel to have an interactive discussion about the development of the project. Request an invite to the slack channel

Supported and Tested Platforms

  • 64-bit Linux (Ubuntu, Debian), macOS, and Windows
  • Rasberry Pi

Note: 32-bit platforms have known issues and are not supported.

Contributing

Yes please! Please review our Contributing guide and Code of Conduct to get started!

Note: This project uses Go Modules, which requires Go 1.11 or higher, but we ship the vendor directory in our repository.

Fuzzing

We currently run fuzzing over ACH in the form of a moov/achfuzz Docker image. You can read more or run the image and report crasher examples to [email protected]. Thanks!

License

Apache License 2.0 See LICENSE for details.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

CheckRoutingNumber returns a nil error if the provided routingNumber is valid according to NACHA rules.
ConvertBatchType will take a batch object and convert it into one of the correct batch type.
FileFromJSON attempts to return a *File object assuming the input is valid JSON.
NewAddenda02 returns a new Addenda02 with default values for none exported fields.
NewAddenda05 returns a new Addenda05 with default values for none exported fields.
NewAddenda10 returns a new Addenda10 with default values for none exported fields.
NewAddenda11 returns a new Addenda11 with default values for none exported fields.
NewAddenda12 returns a new Addenda12 with default values for none exported fields.
NewAddenda13 returns a new Addenda13 with default values for none exported fields.
NewAddenda14 returns a new Addenda14 with default values for none exported fields.
NewAddenda15 returns a new Addenda15 with default values for none exported fields.
NewAddenda16 returns a new Addenda16 with default values for none exported fields.
NewAddenda17 returns a new Addenda17 with default values for none exported fields.
NewAddenda18 returns a new Addenda18 with default values for none exported fields.
NewAddenda98 returns an reference to an instantiated Addenda98 with default values.
NewAddenda99 returns a new Addenda99 with default values for none exported fields.
NewADVBatchControl returns a new ADVBatchControl with default values for none exported fields.
NewADVEntryDetail returns a new ADVEntryDetail with default values for non exported fields.
NewADVFileControl returns a new ADVFileControl with default values for none exported fields.
NewBatch takes a BatchHeader and returns a matching SEC code batch type that is a batcher.
NewBatchACK returns a *BatchACK.
NewBatchADV returns a *BatchADV.
NewBatchARC returns a *BatchARC.
NewBatchATX returns a *BatchATX.
NewBatchBOC returns a *BatchBOC.
NewBatchCCD returns a *BatchCCD.
NewBatchCIE returns a *BatchCIE.
NewBatchControl returns a new BatchControl with default values for none exported fields.
NewBatchCOR returns a *BatchCOR.
NewBatchCTX returns a *BatchCTX.
NewBatchDNE returns a *BatchDNE.
NewBatchENR returns a *BatchENR.
NewBatchHeader returns a new BatchHeader with default values for non exported fields.
NewBatchMTE returns a *BatchMTE.
NewBatchPOP returns a *BatchPOP.
NewBatchPOS returns a *BatchPOS.
NewBatchPPD returns a *BatchPPD.
NewBatchRCK returns a *BatchRCK.
NewBatchSHR returns a *BatchSHR.
NewBatchTEL returns a *BatchTEL.
NewBatchTRC returns a *BatchTRC.
NewBatchTRX returns a *BatchTRX.
NewBatchWEB returns a *BatchWEB.
NewBatchXCK returns a *BatchXCK.
NewEntryDetail returns a new EntryDetail with default values for non exported fields.
NewErrBatchAddendaCount creates a new error of the ErrBatchAddendaCount type.
NewErrBatchAddendaTraceNumber creates a new error of the ErrBatchAddendaTraceNumber type.
NewErrBatchAmount creates a new error of the ErrBatchAmount type.
NewErrBatchAscending creates a new error of the ErrBatchAscending type.
NewErrBatchCalculatedControlEquality creates a new error of the ErrBatchCalculatedControlEquality type.
NewErrBatchCategory creates a new error of the ErrBatchCategory type.
NewErrBatchExpectedAddendaCount creates a new error of the ErrBatchExpectedAddendaCount type.
NewErrBatchHeaderControlEquality creates a new error of the ErrBatchHeaderControlEquality type.
NewErrBatchIATNOC creates a new error of the ErrBatchIATNOC type.
NewErrBatchRequiredAddendaCount creates a new error of the ErrBatchRequiredAddendaCount type.
NewErrBatchServiceClassTranCode creates a new error of the ErrBatchServiceClassTranCode type.
NewErrBatchTraceNumberNotODFI creates a new error of the ErrBatchTraceNumberNotODFI type.
NewErrFileCalculatedControlEquality creates a new error of the ErrFileCalculatedControlEquality type.
NewErrFileUnknownSEC creates a new error of the ErrFileUnknownSEC type.
NewErrRecordType creates a new error of the ErrRecordType type.
NewErrUnknownRecordType creates a new error of the ErrUnknownRecordType type.
NewErrValidCheckDigit creates a new error of the ErrValidCheckDigit type.
NewErrValidFieldLength creates a new error of the ErrValidFieldLength type.
NewFile constructs a file template.
NewFileControl returns a new FileControl with default values for none exported fields.
NewFileHeader returns a new FileHeader with default values for none exported fields.
NewIATBatch takes a BatchHeader and returns a matching SEC code batch type that is a batcher.
NewIATBatchHeader returns a new BatchHeader with default values for non exported fields.
NewIATEntryDetail returns a new IATEntryDetail with default values for non exported fields.
NewReader returns a new ACH Reader that reads from r.
NewRecordWrongLengthErr creates a new error of the RecordWrongLengthErr type.
NewWriter returns a new Writer that writes to w.

# Constants

ACK ACH Payment Acknowledgment - A code that indicates acknowledgment of receipt of a corporate credit payment (CCD).
ADV Automated Accounting Advice – A code that provide accounting information regarding an Entry.
ARC Accounts Receivable Entry – A code that indicates a consumer check converted to a one-time ACH debit.
ATX Financial EDI Acknowledgment - A code that indicates acknowledgement by the Receiving Depository Financial Institution (RDFI) that a Corporate Credit Exchange (CTX) has been received.
AutomatedAccountingAdvices indicates a batch can only have Automated Accounting Advices (debit and credit).
BOC Back Office Conversion Entry - A code that indicates single entry debit initiated at the point of purchase or at a manned bill payment location to transfer funds through conversion to an ACH debit entry during back office processing.
CategoryDishonoredReturn defines the entry as being a dishonored return initiated by the ODFI to the RDFI that submitted the return entry.
CategoryDishonoredReturnContested defines the entry as a contested dishonored return initiated by the RDFI to the ODFI that submitted the dishonored return.
CategoryForward defines the entry as being sent to the receiving institution.
CategoryNOC defines the entry as being a notification of change of a forward entry to the originating institution.
CategoryReturn defines the entry as being a return of a forward entry back to the originating institution.
CCD Corporate Credit or Debit Entry - A code that indicates an entry initiated by an Organization to transfer funds to or from an account of that Organization or another Organization.
CheckingCredit is a credit to the receiver's checking account.
CheckingDebit is a debit to the receivers checking account.
CheckingPrenoteCredit is a pre-notification of a credit to the receiver's checking account.
CheckingPrenoteDebit is a pre-notification of a debit to the receiver's checking account.
CheckingReturnNOCCredit is a return that credits the receiver's checking account.
CheckingReturnNOCDebit is a return that debits the receiver's checking account.
CheckingZeroDollarRemittanceCredit is a zero dollar remittance data credit to a checking account for CCD, CTX, ACK, and ATX entries.
CheckingZeroDollarRemittanceDebit is a zero dollar remittance data debit to a checking account for CCD, CTX, ACK, and ATX entries.
CIE Customer Initiated Entry - A code that indicates a credit entry initiated on behalf of, and upon the instruction of, a consumer to transfer funds to a non-consumer Receiver.
COR Notification of Change or Refused Notification of Change - A code used by an RDFI or ODFI when originating a Notification of Change or Refused Notification of Change in automated format.
CreditForCreditsReceived is an accounting entry credits for ACH credits received.
CreditForCreditsRejected is an accounting entry credit for ACH credits in rejected batches.
CreditForDebitsOriginated is an accounting entry credit for ACH debits originated.
CreditsOnly indicates a batch can only have credit ACH entries.
CreditSummary is an accounting entry for summary credit for respondent ACH activity.
CTX Corporate Trade Exchange - A code that indicates the ability to collect and disburse funds and information between companies.
DebitForCreditsOriginated is an accounting entry debit for ACH credits originated.
DebitForDebitsReceived is an accounting entry debit for for ACH debits received.
DebitForDebitsRejectedBatches is an accounting entry debit for ACH debits in rejected batches.
DebitsOnly indicates a batch can only have debit ACH entries.
DebitSummary is an accounting entry for summary debit for respondent ACH activity.
DNE Death Notification Entry - A code that United States Federal agencies (e.g.
ENR Automated Enrollment Entry - A code indicating enrollment of a person with an agency of the US government for a depository financial institution.
GLCredit is a credit to the receiver's general ledger (GL) account.
GLDebit is a debit to the receiver's general ledger (GL) account.
GLPrenoteCredit is a pre-notification of a credit to the receiver's general ledger (GL) account.
GLPrenoteDebit is a pre-notification of a debit to the receiver's general ledger (GL) account.
GLReturnNOCCredit is a return that credits the receiver's general ledger (GL) account.
GLReturnNOCDebit is a return that debits the receiver's general ledger (GL) account.
GLZeroDollarRemittanceCredit is a zero dollar remittance data credit to the receiver's general ledger (GL) account.
GLZeroDollarRemittanceDebit is a zero dollar remittance data debit to the receiver's general ledger (GL) account.
IAT International ACH Transaction - A code IAT indicating a credit or debit ACH entry that is part of a payment transaction involving a financial agency’s office (i.e., depository financial institution or business issuing money orders) that is not located in the territorial jurisdiction of the United States.
IATCOR is the valid value for IATBatchHeader.IATIndicator for IAT Notification Of Changr.
LoanCredit is a credit to the receiver's loan account.
LoanDebit is a debit (Reversal's Only) to the receiver's loan account.
LoanPrenoteCredit is a pre-notification of a credit to the receiver's loan account.
LoanReturnNOCCredit is a return that credits the receiver's loan account.
LoanReturnNOCDebit is a return that debits the receiver's loan account.
LoanZeroDollarRemittanceCredit is a zero dollar remittance data credit to the receiver's loan account.
MixedDebitsAndCredits indicates a batch can have debit and credit ACH entries.
MTE Machine Transfer Entry - A code that indicates when a consumer uses their debit card at an Automated Teller Machine (ATM) to withdraw cash.
POP Point of Purchase Entry - A code that indicates a check presented in-person to a merchant for purchase is presented as an ACH entry instead of a physical check.
POS Point of Sale Entry - A code that indicates a debit entry initiated at an “electronic terminal” to a consumer account of the receiver to pay an obligation incurred in a point-of-sale transaction, or to effect a point-of-sale terminal cash withdrawal.
PPD Prearranged Payment and Deposit Entry - A code tha indicates a an entry initiated by an organization based on a standing or a single entry authorization to transfer funds.
RCK Re-presented Check Entry - A code that indicates a physical check that was presented but returned because of insufficient funds may be represented as an ACH entry.
RecordLength character count of each line representing a letter in a file.
SavingsCredit is a credit to the receiver's savings account.
SavingsDebit is a debit to the receivers savings account.
SavingsPrenoteCredit is a pre-notification of a credit to the receiver's savings account.
SavingsPrenoteDebit is a pre-notification of a debit to the receiver's savings account.
SavingsReturnNOCCredit is a return that credits the receiver's savings account.
SavingsReturnNOCDebit is a return that debits the receiver's savings account.
SavingsZeroDollarRemittanceCredit is a zero dollar remittance data credit to a savings account for CCD and CTX entries.
SavingsZeroDollarRemittanceDebit is a zero dollar remittance data debit to a savings account for CCD and CTX entries.
SHR Shared Network Transaction - A code that indicates a debit Entry initiated at an “electronic terminal,” as that term is defined in Regulation E, to a Consumer Account of the Receiver to pay an obligation incurred in a point-of-sale transaction, or to effect a point-of-sale terminal cash withdrawal.
TEL Telephone Initiated Entry - A code indicating a Telephone-Initiated consumer debit transactions.
TRC Check Truncation Entry - is a code used to identify a debit entry of a truncated check.
TRX Check Truncation Entries Exchange - used to identify a debit entry exchange of a truncated checks (multiple).
Version Number.
WEB Internet-Initiated/Mobile Entry - A code indicating an entry submitted pursuant to an authorization obtained solely via the Internet or a mobile network.
XCK Destroyed Check Entry - A code indicating a debit entry initiated for a a destroyed check eligible items.

# Variables

ErrAddenda98ChangeCode is given when there's an invalid addenda change code.
ErrAddenda98CorrectedData is given when the corrected data does not corespond to the change code.
ErrAddenda99ReturnCode is given when there's an invalid return code.
ErrAddendaTypeCode is given when there's an invalid addenda type code.
ErrBatchAddendaCategory is the error given when the addenda isn't allowed for the batch's type and category.
ErrBatchAddendaIndicator is the error given when the addenda indicator is incorrectly set.
ErrBatchADVCount is the error given when an ADV batch has too many entries.
ErrBatchAmountNonZero is the error given when an entry for a non-zero amount is in a batch that requires zero amount entries.
ErrBatchAmountZero is the error given when an entry for zero amount is in a batch that requires non-zero amount entries.
ErrBatchCheckSerialNumber is the error given when a batch requires check serial numbers, but it is missing.
ErrBatchCompanyEntryDescriptionAutoenroll is the error given when the Company Entry Description is invalid (needs to be 'Autoenroll').
ErrBatchCompanyEntryDescriptionREDEPCHECK is the error given when the Company Entry Description is invalid (needs to be 'REDEPCHECK').
ErrBatchCORAddenda is given when an entry in a COR batch does not have an addenda98.
ErrBatchDebitOnly is the error given when a batch which can only have debits has a credit.
ErrBatchInvalidCardTransactionType is the error given when a card transaction type is invalid.
ErrBatchNoEntries is the error given when a batch doesn't have any entries.
ErrBatchOriginatorDNE is the error given when a non-government agency tries to originate a DNE.
ErrBatchSECType is the error given when the batch's header has the wrong SEC for its type.
ErrBatchServiceClassCode is the error given when the batch's header has the wrong SCC for its type.
ErrBatchTransactionCode is the error given when a batch has an invalid transaction code.
ErrBatchTransactionCodeAddenda is the error given when a batch has an addenda on a transaction code which doesn't allow it.
ErrBlockingFactor is given when there's an invalid blocking factor.
ErrCardTransactionType is given when there's an invalid card transaction type.
ErrConstructor is given when there's a mandatory field is not initialized correctly, and prompts to use the constructor.
ErrFieldInclusion is given when a field is mandatory and has a default value.
ErrFieldRequired is given when a field is required.
ErrFileAddendaOutsideEntry is the error given if an addenda is outside of an entry.
ErrFileADVOnly is the error given if an ADV only file has a non-ADV batch.
ErrFileBatchControlOutsideBatch is the error given if a batch control record is outside of a batch.
ErrFileBatchHeaderInsideBatch is the error given if a batch header record is inside of a batch.
ErrFileControl is the error given if there is the wrong number of file control records.
ErrFileEntryOutsideBatch is the error given if an entry is outside of a batch.
ErrFileHeader is the error given if there is the wrong number of file headers.
ErrFileIATSEC is the error given if an IAT batch uses the normal NewBatch.
ErrFileNoBatches is the error given if a file has no batches.
ErrFileTooLong is the error given when a file exceeds the maximum possible length.
ErrForeignExchangeIndicator is given when there's an invalid foreign exchange indicator.
ErrForeignExchangeReferenceIndicator is given when there's an invalid foreign exchange reference indicator.
ErrFormatCode is given when there's an invalid format code.
ErrIATBatchAddendaIndicator is given when there's an invalid addenda record for an IAT batch.
ErrIdentificationNumber is given when there's an invalid identification number.
ErrIDNumberQualifier is given when there's an invalid identification number qualifier.
ErrNonAlphanumeric is given when a field has non-alphanumeric characters.
ErrOrigStatusCode is given when there's an invalid originator status code.
ErrRecordSize is given when there's an invalid record size.
ErrSECCode is given when there's an invalid standard entry class code.
ErrServiceClass is given when there's an invalid service class code.
ErrTransactionCode is given when there's an invalid transaction code.
ErrTransactionTypeCode is given when there's an invalid transaction type code.
ErrUpperAlpha is given when a field is not in uppercase.
ErrValidDay is given when there's an invalid day.
ErrValidISO3166 is the error given when a field has an invalid ISO 3166-1-alpha-2 code.
ErrValidISO4217 is the error given when a field has an invalid ISO 4217 code.
ErrValidMonth is given when there's an invalid month.
ErrValidState is the error given when a field has an invalid US state or territory.
ErrValidYear is given when there's an invalid year.

# Structs

Addenda02 is a Addendumer addenda which provides business transaction information for Addenda Type Code 02 in a machine readable format.
Addenda05 is a Addendumer addenda which provides business transaction information for Addenda Type Code 05 in a machine readable format.
Addenda10 is an addenda which provides business transaction information for Addenda Type Code 10 in a machine readable format.
Addenda11 is an addenda which provides business transaction information for Addenda Type Code 11 in a machine readable format.
Addenda12 is an addenda which provides business transaction information for Addenda Type Code 12 in a machine readable format.
Addenda13 is an addenda which provides business transaction information for Addenda Type Code 13 in a machine readable format.
Addenda14 is an addenda which provides business transaction information for Addenda Type Code 14 in a machine readable format.
Addenda15 is an addenda which provides business transaction information for Addenda Type Code 15 in a machine readable format.
Addenda16 is an addenda which provides business transaction information for Addenda Type Code 16 in a machine readable format.
Addenda17 is an addenda which provides business transaction information for Addenda Type Code 17 in a machine readable format.
Addenda18 is an addenda which provides business transaction information for Addenda Type Code 18 in a machine readable format.
Addenda98 is a Addendumer addenda record format for Notification OF Change(98) The field contents for Notification of Change Entries must match the field contents of the original Entries.
Addenda99 utilized for Notification of Change Entry (COR) and Return types.
ADVBatchControl contains entry counts, dollar total and has totals for all entries contained in the preceding batch.
ADVEntryDetail contains the actual transaction data for an individual entry.
ADVFileControl record contains entry counts, dollar totals and hash totals accumulated from each batchADV control record in the file.
Batch holds the Batch Header and Batch Control and all Entry Records.
BatchACK is a batch file that handles SEC payment type ACK and ACK+.
BatchADV holds the Batch Header and Batch Control and all Entry Records for ADV Entries The ADV entry identifies a Non-Monetary Entry that is used by an ACH Operator to provide accounting information regarding an entry to participating DFI's.
BatchARC holds the BatchHeader and BatchControl and all EntryDetail for ARC Entries.
BatchATX holds the BatchHeader and BatchControl and all EntryDetail for ATX (Acknowledgment) Entries.
BatchBOC holds the BatchHeader and BatchControl and all EntryDetail for BOC Entries.
BatchCCD is a batch file that handles SEC payment type CCD and CCD+.
BatchCIE holds the BatchHeader and BatchControl and all EntryDetail for CIE Entries.
BatchControl contains entry counts, dollar total and has totals for all entries contained in the preceding batch.
BatchCOR COR - Automated Notification of Change (NOC) or Refused Notification of Change This Standard Entry Class Code is used by an RDFI or ODFI when originating a Notification of Change or Refused Notification of Change in automated format.
BatchCTX holds the BatchHeader and BatchControl and all EntryDetail for CTX Entries.
BatchDNE is a batch file that handles SEC code Death Notification Entry (DNE) United States Federal agencies (e.g.
BatchENR is a non-monetary entry that enrolls a person with an agency of the US government for a depository financial institution.
BatchError is an Error that describes batch validation issues.
BatchHeader identifies the originating entity and the type of transactions contained in the batch (i.e., the standard entry class, PPD for consumer, CCD or CTX for corporate).
BatchMTE holds the BatchHeader, BatchControl, and EntryDetail for Machine Transfer Entry (MTE) entries.
BatchPOP holds the BatchHeader and BatchControl and all EntryDetail for POP Entries.
BatchPOS holds the BatchHeader and BatchControl and all EntryDetail for POS Entries.
BatchPPD holds the Batch Header and Batch Control and all Entry Records for PPD Entries.
BatchRCK holds the BatchHeader and BatchControl and all EntryDetail for RCK Entries.
BatchSHR holds the BatchHeader and BatchControl and all EntryDetail for SHR Entries.
BatchTEL is a batch that handles SEC payment type Telephone-Initiated Entries (TEL) Telephone-Initiated Entries (TEL) are consumer debit transactions.
BatchTRC holds the BatchHeader and BatchControl and all EntryDetail for TRC Entries.
BatchTRX holds the BatchHeader and BatchControl and all EntryDetail for TRX Entries.
BatchWEB creates a batch file that handles SEC payment type WEB.
BatchXCK holds the BatchHeader and BatchControl and all EntryDetail for XCK Entries.
ENRPaymentInformation structure.
EntryDetail contains the actual transaction data for an individual entry.
ErrBatchAddendaCount is the error given when there are too many addenda than allowed for the batch type.
ErrBatchAddendaTraceNumber is the error given when the entry detail sequence number doesn't match the trace number.
ErrBatchAmount is the error given when the amount exceeds the batch type's limit.
ErrBatchAscending is the error given when the trace numbers in a batch are not in ascending order.
ErrBatchCalculatedControlEquality is the error given when the control record does not match the calculated value.
ErrBatchCategory is the error given when a batch has entires with two different categories.
ErrBatchExpectedAddendaCount is the error given when the batch type has entries with a field for the number of addenda, and a different number of addenda are foound.
ErrBatchHeaderControlEquality is the error given when the control record does not match the calculated value.
ErrBatchIATNOC is the error given when an IAT batch has an NOC, and there are invalid values.
ErrBatchRequiredAddendaCount is the error given when the batch type requires a certain number of addenda, which is not met.
ErrBatchServiceClassTranCode is the error given when the transaction code is not valid for the batch's service class.
ErrBatchTraceNumberNotODFI is the error given when a batch's ODFI does not match an entry's trace number.
ErrFileCalculatedControlEquality is the error given when the control record does not match the calculated value.
ErrFileUnknownSEC is the error given when a record does not have a known type.
ErrRecordType is the error given when the field does not have the right record type.
ErrUnknownRecordType is the error given when a record does not have a known type.
ErrValidCheckDigit is the error given when the observed check digit does not match the calculated one.
ErrValidFieldLength is the error given when the field does not have the correct length.
FieldError is returned for errors at a field level in a record.
File contains the structures of a parsed ACH File.
FileControl record contains entry counts, dollar totals and hash totals accumulated from each batch control record in the file.
FileError is an error describing issues validating a file.
FileHeader is a Record designating physical file characteristics and identify the origin (sending point) and destination (receiving point) of the entries contained in the file.
IATBatch holds the Batch Header and Batch Control and all Entry Records for an IAT batch An IAT entry is a credit or debit ACH entry that is part of a payment transaction involving a financial agency’s office (i.e., depository financial institution or business issuing money orders) that is not located in the territorial jurisdiction of the United States.
IATBatchHeader identifies the originating entity and the type of transactions contained in the batch for SEC Code IAT.
IATEntryDetail contains the actual transaction data for an individual entry.
Reader reads records from a ACH-encoded file.
RecordWrongLengthErr is the error given when a record is the wrong length.
A Writer writes an ach.file to a NACHA encoded file.

# Interfaces

Batcher abstract the different ACH batch types that can exist in a file.