ACH API

Integrate ACH into your payment flow.

ACH (Automated Clearing House) is a US network that powers 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. You can accept and send ACH transfers using the Create Transaction API.

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

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

Popular Use Cases

  • Mobile payment application: Use the Create Transaction API to send P2P or Me2Me ACH payments.
  • Business invoicing: Use the Create Transaction API to offer ACH through your invoicing portal.
  • Industry focused platform: Use the Create Transaction API to build an industry targeted platform to send or accept ACH payments (e.g. gym subscriptions, AI platforms, streaming service).

ACH API Payment Flow

ACH via the API supports Next Day and Same Day ACH transactions.

ACH API example

ACH API example

  1. When a TabaPay client sends a Create Transaction request, the API will "batch" that transaction.
  2. Once the cut-off for Same Day, or 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.

📘

ACH Return Files

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.

  1. Any transactions that are received by the system after the cut-off time will be processed during the following "Next Day" window.

How Does ACH API 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. N is used for Next Day ACH and S for Same 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
    • S -> Same 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.
    2. Same Day: 7:30am PT
  3. SaIf a transaction missed the cutoff they will be moved to next window

📘

Reviewing the Processed File

Clients should 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 return codes go to ACH Return Codes.

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").