ACH Transaction File

📘

This is an extension file

This file is an extension of the master Posted Transaction File and is meant to provide additional data points for ACH transactions. A single event will appear in both files and share the same TransactionId.

ACH Transaction File Definition

The ACH Transaction File is created by Helix on a daily basis. It has the following properties:

  1. Fixed-length
  2. ANSI encoded
  3. Line endings are Windows-style CarriageReturn + LineFeed (\r\n, or 0x0D0A)
  4. File will be available in the relative directory of /AchTransaction
  5. File name follows a specific, case-sensitive pattern of: yyyyMMddhhmm_ACHTRANSACTION.TXT

🚧

Format Disclaimer
Helix reserves the right to append new field(s) to the end of any Header or Content line without notice. This is to allow new data points to be added as needed in a timely fashion.

Implementation Note
Your code should be written such that unexpected characters after the "last" field but prior to the end of each line should be ignored. That is, if the file is documented as being 872 bytes per line, receiving a file with 984 bytes per line should not disrupt your processing. This applies to both Header and Content lines.

File Name Disclaimer
The date in file name should be used as a guideline for human eyes only. Any date-related programmatic dependencies should rely on the FileCreatedDate or FileEffectiveDate contained within the header line of each file, as these will be precise to the second and will be in the appropriate timezone.

Header Row

PropertyData Type (Length)AlignmentStart PositionDescription
RecordTypestring (1)Left1The flag for the header row. Will always be H.
FileNamestring (50)Left2The name of this request file excluding path.
Format: yyyyMMddhhmm_ACHTRANSACTION.TXT
Example: 201410210215_ACHTRANSACTION.TXT
RecordCountinteger (10)Right52The number of records represented within the file. This field is zero-padded on the left side.
Example: 0000000872
FileCreatedDatedatetime (34)Left62The date the file was created. Follows same format as API.
Example: 2014-10-20T10:30:31.456-05:00
See data format guidelines
FileEffectiveDatedatetime (34)Left96The date to which the data in the file pertains. Follows same format as API. Example: 2014-10-20T23:59:59.999-05:00
See data format guidelines

Content Row

PropertyData Type (Length)AlignmentStart PositionDescription
CustomerIdinteger (10)Right1The unique identifier for a customer. This field is zero-padded on the left side. e.g.: 0000000872
CustomerTagstring (50)Left11The client-supplied unique identifier for the customer, aka the tag property on the customer object. This may be empty as it is an optional property.
AccountIdinteger (10)Right61The unique identifier for the bank account from which funds will be withdrawn. This field is zero-padded on the left side. e.g.: 0008309285. This is NOT an account number. It is the accountId of an account object or an externalAccountId of an externalAccount object.
AccountTagstring (50)Left71The client-supplied unique identifier for the account, aka the tag property on the account object. This may be empty as it is an optional property.
AccountNamestring (50)Left121The name of the account or externalAccount.
TransactionIdlong integer (19)Right171The unique identifier for the transaction. This field is zero-padded on the left side. e.g.: 0008309285
TransactionTagstring (50)Left190The client-supplied unique identifier for the transaction. See transaction object definition for details.
TransactionTypeCodestring (6)Left240The typeCode of the transaction object.
TraceNumberstring (15)Left246The traceNumber of the Nacha file entry detail record.
StandardEntryClassCodestring (3)Left261The standardEntryClassCode of the Nacha file batch record.
CompanyNamestring (16)Left264The companyName of the Nacha file batch record.
CompanyDiscretionaryDatastring (20)Left280The companyDiscretionaryData of the Nacha file batch record.
CompanyEntryDescriptionstring (10)Left300The companyEntryDescription of the Nacha file batch record.
ReceivingCompanyNamestring (22)Left310The receivingCompanyName (Individual Name) of the Nacha file entry detail record.
IdentificationNumberstring (15)Left332The identificationNumber of the Nacha file entry detail record, positions 40-54
IsEarlyDepositstring(1)Left347The isEarlyDeposit indicator for the Nacha file entry detail record.
N indicates the ACH entry was not posted as an early ACH item
Y indicates the ACH entry was posted as an early ACH item
Amountstring(11)Right348The amount of the Nacha file entry detail record.
HeaderCompanyIdentificationstring(10)Left359The headerCompanyIdentification for the Nacha file entry detail record.
NachaSettledDatedatetime(34)Left369The nachaSettledDate exists only when IsEarlyDeposit is Y and indicates the Original Nacha Settlement Date from the ACH Batch Header record.
TransactionSettledDatedatetime(34)Left403The date in which the ACH item has settled in the Helix account. This date is also the Nacha Settlement Date from the ACH Batch Header record.
CompanyNameIATstring (35)Left437The companyName for the IAT transaction of the Nacha file batch record. This is populated only for ACH transactions with the IAT standard entry class (SEC) code.
ReceivingCompanyNameIATstring(35)Left472The receivingCompanyName for the IAT transaction (Individual Name) of the Nacha file entry detail record. This is populated only for ACH transactions with the IAT standard entry class (SEC) code.
NACHABatchIdinteger (19)Left507The TraceNumber of the batch.
ReturnCodestring (3)Left526Populates the return code only if the transaction is an ACH return. If the transaction is not a return, this field will be empty.

{ "file_type": "fixed_length" }