Create an ACH File

API documentation

See our API documentation for Moov ACH endpoints.

Setup our ACH file

Creating an Automated Clearing House (ACH) file can be done several ways:

Go Client

We have an example of using our Go client and uploading the JSON representation. The basic idea follows this structure:

  1. Create a BatchHeader record with ach.NewBatchHeader().
  2. Create an EntryDetail record with ach.NewEntryDetail().
  3. Create a Batch from our BatchHeader and EntryDetail.
  4. Using a constructor like batch := ach.NewBatchPPD(batchHeader) and adding the batch with batch.AddEntry(entry).
  5. Call and verify batch.Create() returns no error.
  6. Create our ACH File record file := ach.NewFile() and FileHeader with ach.NewFileHeader()
  7. Add the FileHeader (via file.SetHeader(fileHeader)) and Batch records to the file (via file.AddBatch(batch)).
  8. Call and verify file.Create() returns no error.
  9. Encode the File to JSON (via json.NewEncoder(&buf).Encode(&file)) for a net/http request.

Upload a JSON representation

In Ruby we have an example of creating an ACH file from JSON. The JSON structure corresponds to our api endpoint for creating files that the ACH HTTP server expects.

We have example ACH files in JSON.

Note: The header Content-Type: application/json must be set.

Upload a raw ACH file

Our ACH HTTP server also handles uploading raw ACH files which is the NACHA text format. We have example files in their NACHA format and example code for creating the files and reading the files

SEC Code Description Example ACH File Read Create
ACK Acknowledgment Entry for CCD Credit ACK Read ACK Create
ADV Automated Accounting Advice Prenote Debit ADV Read ADV Create
ARC Accounts Receivable Entry Debit ARC Read ARC Create
ATX Acknowledgment Entry for CTX Credit ATX Read ATX Create
BOC Back Office Conversion Debit BOC Read BOC Create
CCD Corporate credit or debit Debit CCD Read CCD Create
CIE Customer-Initiated Entry Credit CIE Read CIE Create
COR Automated Notification of Change(NOC) NOC COR Read COR Create
CTX Corporate Trade Exchange Debit CTX Read CTX Create
DNE Death Notification Entry DNE DNE Read DNE Create
ENR Automatic Enrollment Entry ENR ENR Read ENR Create
IAT International ACH Transactions Credit IAT Read IAT Create
MTE Machine Transfer Entry Credit MTE Read MTE Create
POP Point of Purchase Debit POP Read POP Create
POS Point of Sale Debit POS Read POS Create
PPD Prearranged payment and deposits Debit and Credit PPD Read PPD Create
RCK Represented Check Entries Debit RCK Read RCK Create
SHR Shared Network Entry Debit SHR Read SHR Create
TEL Telephone-Initiated Entry Debit TEL Read TEL Create
TRC Truncated Check Entry Debit TRC Read TRC Create
TRX Check Truncation Entries Exchange Debit TRX Read TRX Create
WEB Internet-initiated Entries Credit WEB Read WEB Create
XCK Destroyed Check Entry Debit XCK Read XCK Create

Note: The header Content-Type: text/plain should be set.