About ACH

ACH Network is the national automated clearing house (ACH) for electronic funds transfers. It processes financial transactions for consumers, businesses, and federal, state, and local governments. ACH processes large volumes of credit and debit transactions in batches. Short for "Automated Clearing House", ACH credit transfers include direct deposit for payroll, Social Security and other benefit payments, tax refunds, and vendor payments. ACH direct debit transfers include consumer payments on insurance premiums, mortgage loans, and other kinds of bills.

The rules and regulations that govern the ACH network are established by National Automated Clearinghouse Association (NACHA). In 2018, the network processed 23 billion transactions with a total value of $51.2 trillion.

Source: ACH Network

To learn more about the full ACH process please visit our Overview of ACH.

In addition to sending ACH transactions via batch files, TabaPay Clients are now able to send individual ACH transactions via the Create Transaction API. This makes for an easier integration and adoption of ACH from a Client's perspective.

๐Ÿ“˜

How to access the ACH API?

Please contact [email protected] to request access to the ACH API.

ACH API only supports the creation of transactions, a merchant will still need to be prepared to receive any output files to receive any rejections or returns.

Overview of TabaPay ACH API

ACH via the API only supports Next Day ACH transactions at this time (future updates will include Same Day ACH transactions as well).

  1. When a TabaPay client sends a Create Transaction request, the API will "batch" that transaction.
  2. Once the cut-off for Next Day transactions is met, the "batched" transactions will be processed by TabaPay.
    1. "Processed" means we construct a NACHA file and pass it on to the bank.
  3. At that point a merchant would receive a "processed" file with the status of each transaction. Some transactions may be rejected, and status codes will be provided to explain these rejections. For more information on the different files you might receive: ACH file types.
    1. In some cases, you may receive an Output file as well - this file is generated by some banks to let us know when the transaction was sent to the Fed. This file has the exact same format as the Processed file, and will include the Trace ID from the Fed. Might take up to 2 days to be sent.
    2. If there are any returns you will receive a Return file - this file contains a list of returned transactions. Can come back 6 to 7 days later.
  4. Any transactions that are received by the system after the cut-off time will be processed during the following "Next Day" window.

Example flow:

ACH API example

ACH API example

How does it work

Integration

ACH API integration can be broken up into two components:

  1. Backend integration -> Integrating with the TabaPay Create Transaction API.
    1. If you are using the Create Transaction API, then you do NOT need to send in an Input file.
  2. SFTP/File based integration -> You will need to be setup to receive files from TabaPay. Here is a list of the files you would receive from TabaPay ACH response and processed files.
    1. You can use the Retrieve Transaction API to retrieve the status of a "batched" or "processed" transaction. In the future, we will extend this functionality to support other status types (i.e. "returned", etc.).

Step 1: Create "ACH" Transaction

Request endpoint

You will be using the Create Transaction API.

Body Parameters

All ACH transactions are pulling or pushing funds to a bank account.

  1. One key field for you to include is the achOptions field. You would use N for Next Day ACH (RTP is also supported using the same field).
  2. The other key field for you to include is the achEntryType field. This is a new field, 3 characters long with only three options:
    1. CCD, PPD,WEB
  3. For a pull ACH transaction, you would fill in the bank object in the source account object.
  4. For a push ACH transaction, you would fill in the bank object in the destination account object.
  5. There are other additional fields common to all transactions (e.g. amount, etc.).
What is the bank object?

The bank object is available for the sourceAccount and destinationAccount objects. It contains the following information:

  1. routingNumber
    string
    required
    ABA routing transit number
  2. accountNumber
    string
    required
    Bank Account Number
  3. accountType
    string
    required
    Bank Account Type.
    • S Savings
    • C Checking
    • A Business Savings
    • B Business Checking
    • L Loan
Additional field:
  1. achOptions
    string
    required
    • N -> Next Day
  2. achEntryType
    string
    required
    • CCD
    • PPD
    • WEB

Step 2: TabaPay processes ACH transactions

  1. All transactions since last batch are processed.
  2. Cut-off times:
    1. Next day: 6pm PT.
  3. If a transaction missed the cutoff they will be moved to next window

๐Ÿ“˜

Please review the processed file

Please check the processed file to see which transactions were successfully submitted to the bank and which transactions were rejected by TabaPay (along with the corresponding error codes)

Step 3: TabaPay 'ACH Files'

๐Ÿ‘

TabaPay pushes ACH files via SFTP

Get in touch with us via [email protected] to get your setup going.

Security options can include:

  1. Merchant whitelists TabaPay IP
  2. SFTP ID and Password
  3. TabaPay public key for SFTP security (ID or ID+PW)
  4. File encryption using Merchant public PGP key

Additional details

๐Ÿ“˜

ACH Files

For file formats of the various ACH-related files TabaPay provides, please refer:

Processed Files

Return Files

For reference on ACH Return Codes, go here.

TabaPay output files, processed files, return files:

  1. Merchant pickup return files, Processed files, and Output files in the 'Outbox'
  2. Processed file delivered within minutes of ACH files being processed by bank; one file for each merchant batch.
  3. [Optional] Output file delivered next business day; same format as Processed file - with Trace ID and processed time from bank

Step 4: Retrieve transaction status (Optional)

You can use the TabaPay generated transactionID to retrieve the current status of a transaction using the Retrieve Transaction API. transactionID is only returned in the Create Transaction response.

๐Ÿ“˜

Supported status types

Retrieve Transaction API currently supports "BATCH" and "COMPLETE" statuses. If the API returns a "COMPLETE" status, that means that the transaction has been processed. You should check the subsequent processed.csv file to see if the transaction was sent off to the bank or rejected by TabaPay (e.g. "over the limit").

Currently you will need to receive the ACH response and processed files to see if a transaction was successfully processed or not.

In the future, Retrieve Transaction will support additional status types like "rejected", "returned", etc.

StatusDescription
"BATCH"The transaction is stored in our database, but it has not been processed yet.
"COMPLETE"If the API returns a "COMPLETE" status, that means that the transaction has been processed. You should check the subsequent processed.csv file to see if the transaction was sent off to the bank or rejected by TabaPay (e.g. "over the limit").

Example Flow