ACH via 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 request.
In addition to sending ACH transactions via batch files, TabaPay Clients can send individual ACH transactions via the Create Transaction API request. 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.
Request to enable at TabaPay Support or [email protected].
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. The following is a simplified ACH flow. and does not display the banks: ODFI or RDFI.
-
You initiate a Create Transaction API request.
-
TabaPay sends a JSON response to confirm the request. This does mean a completed transaction.
-
Once the cut-off for Same Day, or Next Day transactions is met, TabaPay batches all transactions to be processed and sent eventually to NACHA.
"Processed" means TabaPay constructs a NACHA file and pass it on in the ACH payment flow.
Note: Any transactions that are received by the system after the cut-off time will be processed during the following "Next Day" window.
- NACHA sends ACH returns to TabaPay 2-3 days after receiving the file.
- You receive a Transactions report with the status of each transaction for both ACH-Debit and ACH-Credit. If there are any ACH returns you will find them in the Exceptions Report. This contains a list of returned transactions, and can come back 6 to 7 days later.
- (Optional): You send the Retrieve Transaction Request for each individual ACH transaction.
- TabaPay sends the JSON response back with the current status and any detailed information
ACH ReturnsContact TabaPay Support to receive ACH Returns listed in Exceptions (Daily). This will include the corresponding ACH Return Code.
How ACH API Works
ACH API integration can be broken up into two components:
Integrating with the TabaPay Create Transaction API.
- If you are using the Create Transaction API, then you do NOT need to send in an Input file.
1. Create Transaction Request
You will be using the Create Transaction API with indicators to mark an ACH transaction.
Body Parameters
All ACH transactions are pulling or pushing funds to a bank account.
- One key field for you to include is the
achOptionsfield.Nis used for Next Day ACH andSfor Same Day ACH (RTP is also supported using the same field). - The other key field for you to include is the
achEntryTypefield. This is a new field, 3 characters long with only three options:CCD,PPD,WEB
- For a pull ACH transaction, you would fill in the
bankobject in the source account object. - For a push ACH transaction, you would fill in the
bankobject in the destination account object. - 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:
routingNumberstring required ABA routing transit numberaccountNumberstring required Bank Account NumberaccountTypestring required Bank Account Type.- S Savings
- C Checking
- A Business Savings
- B Business Checking
- L Loan
Additional Fields
achOptionsstring required
N-> Next DayS-> Same Day
achEntryTypestring requiredCCDPPDWEB
2. TabaPay processes ACH transactions
All transactions since last batch are processed. If a transaction missed the cut-off it will be moved to next window.
Cut-off times:
| ACH Input Type | Same Day | Next Day |
|---|---|---|
| API* | 12:00 PM PT | 5:30 PM PT |
*Files are still processed with ACH API initiated by Create Transaction API.
Reviewing the Processed FileClients 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).
3. TabaPay 'ACH Files'
TabaPay pushes ACH files via SFTPGet in touch with us via [email protected] to get your setup going.
Security options can include:
- Merchant whitelists TabaPay IP
- SFTP ID and Password
- TabaPay public key for SFTP security (ID or ID+PW)
- File encryption using Merchant public PGP key
Additional Details
ACH Files
You/client/merchant picks up Return files, Processed files, and Output files in the file sharing 'Outbox'
For file formats of the various ACH-related files TabaPay provides, please refer:
- Processed file delivered within minutes of ACH files being processed by bank; one file for each merchant batch.
[Optional] Output file delivered next business day; same format as Processed file - with Trace ID and processed time from bank
For return codes go to ACH Return Codes.
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 API response.
Supported Status Types
Retrieve Transaction API currently supports "BATCH" and "COMPLETE" statuses. If the API response includes 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 API will support additional status types like "rejected", "returned", etc.
| Status | Description |
|---|---|
| "BATCH" | The transaction is stored in our database, but it has not been processed yet. |
| "COMPLETE" | If the API response includes 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"). |
Recipes
Learn how the ACH API works in recipes.
Updated 9 days ago
