Same Day ACH API

Integrate same day ACH transfers 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.

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.

Popular Use Cases

  • Early Wage Access: Same day ACH API transfers can act as an affordable way to send payments between US bank accounts.
  • Urgent Me2Me transfers: Same day ACH API payments can provide a low-cost way to move your money between customers different accounts or investments.

ACH API Payment Flow

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

ACH API example

ACH API example

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

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

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 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
    • 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. Same day: 7:30 AM PT.
  3. If a transaction missed the cutoff they will be moved to next window

📘

Reviewing the Processed File

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